running Pike, Cinder is configured with disabled NAS security and enabled snapshots in NFS driver.
While trying to make a snapshot nova-api reports:
2017-10-24 13:36:16.558 39 INFO nova.osapi_compute.wsgi.server [req-e6c3dec2-40ea-4858-af91-3d77395d6978 6f4347f3c1b34d69946b17592aaf5b7f aeb3218c5fdc4d58b1094a4d360a2a96 - default default] 10.196.245.222,10.196.245.203 "GET /v2.1/ HTTP/1.1" status: 200 len: 763 time: 0.0097859
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions [req-cb2a54c0-6103-41ca-a5dc-587e301bfbb1 6f4347f3c1b34d69946b17592aaf5b7f aeb3218c5fdc4d58b1094a4d360a2a96 - default default] Unexpected exception in API method: AttributeError: 'BlockDeviceMapping' object has no attribute 'uuid'
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions Traceback (most recent call last):
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/api/openstack/extensions.py", line 336, in wrapped
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions return f(*args, **kwargs)
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/api/validation/__init__.py", line 108, in wrapper
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions return func(*args, **kwargs)
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/api/openstack/compute/assisted_volume_snapshots.py", line 52, in create
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions create_info)
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/compute/api.py", line 4165, in volume_snapshot_create
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions return do_volume_snapshot_create(self, context, bdm.instance)
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 67, in getter
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions self.obj_load_attr(name)
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/objects/block_device.py", line 288, in obj_load_attr
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions 'uuid': self.uuid,
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions AttributeError: 'BlockDeviceMapping' object has no attribute 'uuid'
2017-10-24 13:36:17.315 39 ERROR nova.api.openstack.extensions
2017-10-24 13:36:17.317 39 INFO nova.api.openstack.wsgi [req-cb2a54c0-6103-41ca-a5dc-587e301bfbb1 6f4347f3c1b34d69946b17592aaf5b7f aeb3218c5fdc4d58b1094a4d360a2a96 - default default] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<type 'exceptions.AttributeError'>
Yup the problem is right here, and it's been around since 2014:
https:/ /github. com/openstack/ nova/blob/ 16.0.0/ nova/objects/ block_device. py#L291
The regression that hits it is this:
https:/ /review. openstack. org/#/c/ 429476/
Before that, that code didn't lazy-load bdm.instance and hit that code. And it would only fail if you're running nova-api with debug logging enabled (which isn't uncommon really).
Apparently we aren't hitting this in CI - probably because we don't gate on the NFS job.