Reviewed:  https://review.openstack.org/140873
Committed: 
https://git.openstack.org/cgit/openstack/tempest/commit/?id=ab667960ef337538cf777bb0f325cb5d0e865d76
Submitter: Jenkins
Branch:    master

commit ab667960ef337538cf777bb0f325cb5d0e865d76
Author: Mitsuhiro Tanino <mitsuhiro.tan...@hds.com>
Date:   Wed Dec 10 15:52:08 2014 -0500

    Actually attach a volume to an instance before taking snapshot
    
    In the test test_snapshot_create_with_volume_in_use, the test calls Cinder
    "os-attach" for attaching a volume. The "os-attach" to tell Cinder the
    volume is attached, but the API doesn't actually attach the volume to an
    instance.(Only update volume status in DB)
    
    This is not right test case for taking a snapshot with in-use volume.
    In this test, Nova "os-volume_attachment" should be called for volume
    attachment.
    
    Also, some Cinder drivers fails assisted snapshot due to this problem.
    In order to perform the snapshot properly, this fix is needed.
    
    Closes-Bug #1401110
    Change-Id: Ib31e351fe7c3d27824241cf142c213eae287483f


** Changed in: tempest
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1401110

Title:
   Volume Block Device Mapping cannot be found

Status in OpenStack Compute (Nova):
  Confirmed
Status in Tempest:
  Fix Released

Bug description:
  In Short:
  Block Device Mapping cannot be found for Tempest online snapshot test on 
devstack with remote file system driver.

  More Detailed:
  Testing Environment is plain kilo head devstack with the included Tempest 
testsuite and a new remotefs based cinder driver.
  The test:
       
tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_with_volume_in_use
  produces an error in Nova, stacktrace:

  2014-12-10 11:14:42.329 ^[[00;32mDEBUG nova.api.openstack.wsgi 
[^[[01;36mreq-5a0e0e46-2455-41ee-a36a-6c14de0d1627 
^[[00;36mVolumesV1SnapshotTestJSON-2078362258 
VolumesV1SnapshotTestJSON-1658640019^[[00;32m] ^[[01;35m^[[00;32mCalling method 
'<bound method Controller.show of 
<nova.api.openstack.compute.servers.Controller object at 
0x7fbd794a0690>>'^[[00m ^[[00;33mfrom (pid=12485) _process_stack 
/opt/stack/nova/nova/api/openstack/wsgi.py:963^[[00m^M
  2014-12-10 11:14:42.374 ^[[00;36mINFO nova.osapi_compute.wsgi.server 
[^[[01;36mreq-5a0e0e46-2455-41ee-a36a-6c14de0d1627 
^[[00;36mVolumesV1SnapshotTestJSON-2078362258 
VolumesV1SnapshotTestJSON-1658640019^[[00;36m] ^[[01;35m^[[00;36m192.168.122.67 
"GET 
/v2/e152b27ee9d641e6a57bec75ab29c924/servers/4fb9afd5-18a9-416e-b955-d161ebbc436f
 HTTP/1.1" status: 200 len: 1609 time: 0.0979590^[[00m^M
  2014-12-10 11:14:43.381 ^[[00;32mDEBUG nova.api.openstack.wsgi 
[^[[01;36mreq-02efe9e9-c7cb-46bf-8ab4-0b70a9b84f6d 
^[[00;36mVolumesV1SnapshotTestJSON-2078362258 
VolumesV1SnapshotTestJSON-1658640019^[[00;32m] ^[[01;35m^[[00;32mCalling method 
'<bound method Controller.show of 
<nova.api.openstack.compute.servers.Controller object at 
0x7fbd794a0690>>'^[[00m ^[[00;33mfrom (pid=12487) _process_stack 
/opt/stack/nova/nova/api/openstack/wsgi.py:963^[[00m^M
  2014-12-10 11:14:43.423 ^[[00;36mINFO nova.osapi_compute.wsgi.server 
[^[[01;36mreq-02efe9e9-c7cb-46bf-8ab4-0b70a9b84f6d 
^[[00;36mVolumesV1SnapshotTestJSON-2078362258 
VolumesV1SnapshotTestJSON-1658640019^[[00;36m] ^[[01;35m^[[00;36m192.168.122.67 
"GET 
/v2/e152b27ee9d641e6a57bec75ab29c924/servers/4fb9afd5-18a9-416e-b955-d161ebbc436f
 HTTP/1.1" status: 200 len: 1749 time: 0.0428371^[[00m^M
  2014-12-10 11:14:43.995 ^[[00;32mDEBUG nova.api.openstack.wsgi 
[^[[01;36mreq-023897db-cfd9-4259-b7c4-3621722a5eec 
^[[00;36mVolumesV2SnapshotTestJSON-1786381329 
VolumesV2SnapshotTestJSON-2048796393^[[00;32m] ^[[01;35m^[[00;32mAction: 
'create', calling method: <bound method 
AssistedVolumeSnapshotsController.create of 
<nova.api.openstack.compute.contrib.assisted_volume_snapshots.AssistedVolumeSnapshotsController
 object at 0x7fbd792ef490>>, body: {"snapshot": {"create_info": {"snapshot_id": 
"cf916b1a-e797-41e3-bde8-39c9615aa622", "type": "qcow2", "new_file": 
"volume-9f7ec09d-4ff2-4ef9-96dc-2bdc07471a65.cf916b1a-e797-41e3-bde8-39c9615aa622"},
 "volume_id": "9f7ec09d-4ff2-4ef9-96dc-2bdc07471a65"}}^[[00m ^[[00;33mfrom 
(pid=12487) _process_stack 
/opt/stack/nova/nova/api/openstack/wsgi.py:960^[[00m^M
  2014-12-10 11:14:43.995 ^[[01;36mAUDIT 
nova.api.openstack.compute.contrib.assisted_volume_snapshots 
[^[[01;36mreq-023897db-cfd9-4259-b7c4-3621722a5eec 
^[[00;36mVolumesV2SnapshotTestJSON-1786381329 
VolumesV2SnapshotTestJSON-2048796393^[[01;36m] ^[[01;35m^[[01;36mCreate 
assisted snapshot from volume 9f7ec09d-4ff2-4ef9-96dc-2bdc07471a65^[[00m^M
  2014-12-10 11:14:44.007 ^[[01;31mERROR nova.api.openstack 
[^[[01;36mreq-023897db-cfd9-4259-b7c4-3621722a5eec 
^[[00;36mVolumesV2SnapshotTestJSON-1786381329 
VolumesV2SnapshotTestJSON-2048796393^[[01;31m] ^[[01;35m^[[01;31mCaught error: 
No volume Block Device Mapping with id 
9f7ec09d-4ff2-4ef9-96dc-2bdc07471a65.^[[00m^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack 
^[[01;35m^[[00mTraceback (most recent call last):^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/api/openstack/__init__.py", line 125, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return req.get_response(self.application)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1320, in send^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
application, catch_exc_info=False)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1284, in 
call_application^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
app_iter = application(self.environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return resp(environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", 
line 793, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return self._call_app(env, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", 
line 726, in _call_app^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return self._app(env, _fake_start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return resp(environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return resp(environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 131, 
in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
response = self.app(environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return resp(environ, start_response)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
resp = self.call_func(req, *args, **self.kwargs)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return self.func(req, *args, **kwargs)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 936, in __call__^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
content_type, body, accept)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1001, in 
_process_stack^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
action_result = self.dispatch(meth, request, action_args)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1086, in dispatch^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return method(req=request, **action_args)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File 
"/opt/stack/nova/nova/api/openstack/compute/contrib/assisted_volume_snapshots.py",
 line 71, in create^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
create_info)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/compute/api.py", line 226, in wrapped^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
return func(self, context, target, *args, **kwargs)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/compute/api.py", line 3263, in 
volume_snapshot_create^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
context, volume_id, expected_attrs=['instance'])^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/objects/base.py", line 156, in wrapper^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
result = fn(cls, context, *args, **kwargs)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m  
File "/opt/stack/nova/nova/objects/block_device.py", line 164, in 
get_by_volume_id^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m    
raise exception.VolumeBDMNotFound(volume_id=volume_id)^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack 
^[[01;35m^[[00mVolumeBDMNotFound: No volume Block Device Mapping with id 
9f7ec09d-4ff2-4ef9-96dc-2bdc07471a65.^M
  ^[[01;31m2014-12-10 11:14:44.007 TRACE nova.api.openstack ^[[01;35m^[[00m^M

  Testing the tests individual steps via manual cli commands (create instance, 
attach volume, create online snapshot) works without errors in any of the 
involved components.
  The error occurs with our Quobyte Driver (in development, see 
https://blueprints.launchpad.net/cinder/+spec/quobyte-usp-driver) and 
apparently with the existing GlusterFS driver. Both are closely related 
(Quobyte build on top of GlusterFS impl) and derived from the remotefs driver. 
I don't know if other setups are affected.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1401110/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to