diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 796505b57d31..2ee8fa1572fc 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -131,11 +131,10 @@ def _parse_block_device_mapping(bdm): if ebs: ec2_id = ebs.pop('snapshot_id', None) if ec2_id: - id = ec2utils.ec2_vol_id_to_uuid(ec2_id) if ec2_id.startswith('snap-'): - bdm['snapshot_id'] = id + bdm['snapshot_id'] = ec2utils.ec2_snap_id_to_uuid(ec2_id) elif ec2_id.startswith('vol-'): - bdm['volume_id'] = id + bdm['volume_id'] = ec2utils.ec2_vol_id_to_uuid(ec2_id) ebs.setdefault('delete_on_termination', True) bdm.update(ebs) return bdm diff --git a/nova/tests/test_bdm.py b/nova/tests/test_bdm.py index 2d0349534eba..558eeeb66daf 100644 --- a/nova/tests/test_bdm.py +++ b/nova/tests/test_bdm.py @@ -29,14 +29,18 @@ class BlockDeviceMappingEc2CloudTestCase(test.TestCase): """Test Case for Block Device Mapping""" def fake_ec2_vol_id_to_uuid(obj, ec2_id): + if ec2_id == 'vol-87654321': + return '22222222-3333-4444-5555-666666666666' + elif ec2_id == 'vol-98765432': + return '77777777-8888-9999-0000-aaaaaaaaaaaa' + else: + return 'OhNoooo' + + def fake_ec2_snap_id_to_uuid(obj, ec2_id): if ec2_id == 'snap-12345678': return '00000000-1111-2222-3333-444444444444' elif ec2_id == 'snap-23456789': return '11111111-2222-3333-4444-555555555555' - elif ec2_id == 'vol-87654321': - return '22222222-3333-4444-5555-666666666666' - elif ec2_id == 'vol-98765432': - return '77777777-8888-9999-0000-aaaaaaaaaaaa' else: return 'OhNoooo' @@ -48,7 +52,9 @@ class BlockDeviceMappingEc2CloudTestCase(test.TestCase): self.stubs.Set(ec2utils, 'ec2_vol_id_to_uuid', self.fake_ec2_vol_id_to_uuid) - + self.stubs.Set(ec2utils, + 'ec2_snap_id_to_uuid', + self.fake_ec2_snap_id_to_uuid) bdm_list = [ ({'device_name': '/dev/fake0', 'ebs': {'snapshot_id': 'snap-12345678',