From f48a2e1a68cca1ef147279b2ddf713635f494bc0 Mon Sep 17 00:00:00 2001 From: MotoKen Date: Wed, 1 May 2013 14:05:58 +0800 Subject: Fix EC2 instance bdm response Make the bdm response respect Amazon EC2 spec: * use ec2 volume id instead of uuid * use volume attach_status instead of status References: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-ItemType-EbsInstanceBlockDeviceMappingResponseType.html Resolves bug 1165973. Change-Id: Ib68397b79f63e01e92ed4bebbc245ba5e0a3ad11 --- nova/tests/api/ec2/test_cinder_cloud.py | 24 ++++++++++++------------ nova/tests/api/ec2/test_cloud.py | 4 ++-- nova/tests/fake_volume.py | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/api/ec2/test_cinder_cloud.py b/nova/tests/api/ec2/test_cinder_cloud.py index 605f903cb..4a21f7fad 100644 --- a/nova/tests/api/ec2/test_cinder_cloud.py +++ b/nova/tests/api/ec2/test_cinder_cloud.py @@ -486,34 +486,34 @@ class CinderCloudTestCase(test.TestCase): _expected_block_device_mapping0 = [ {'deviceName': '/dev/sdb1', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': False, - 'volumeId': '2', + 'volumeId': 'vol-00000002', }}, {'deviceName': '/dev/sdb2', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': False, - 'volumeId': '3', + 'volumeId': 'vol-00000003', }}, {'deviceName': '/dev/sdb3', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': True, - 'volumeId': '5', + 'volumeId': 'vol-00000005', }}, {'deviceName': '/dev/sdb4', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': False, - 'volumeId': '7', + 'volumeId': 'vol-00000007', }}, {'deviceName': '/dev/sdb5', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': False, - 'volumeId': '9', + 'volumeId': 'vol-00000009', }}, {'deviceName': '/dev/sdb6', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': False, - 'volumeId': '11', }}] + 'volumeId': 'vol-0000000b', }}] # NOTE(yamahata): swap/ephemeral device case isn't supported yet. _expected_instance_bdm2 = { diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py index 19a11b3ee..c6ec305c6 100644 --- a/nova/tests/api/ec2/test_cloud.py +++ b/nova/tests/api/ec2/test_cloud.py @@ -2293,9 +2293,9 @@ class CloudTestCase(test.TestCase): 'rootDeviceType': 'ebs', 'blockDeviceMapping': [ {'deviceName': '/dev/sdh', - 'ebs': {'status': 'in-use', + 'ebs': {'status': 'attached', 'deleteOnTermination': True, - 'volumeId': 87654321, + 'volumeId': 'vol-05397fb1', 'attachTime': '13:56:24'}}]} expected_bdm['blockDeviceMapping'].sort() self.assertEqual(bdm, expected_bdm) diff --git a/nova/tests/fake_volume.py b/nova/tests/fake_volume.py index 607f1444d..9d9eb1fb6 100644 --- a/nova/tests/fake_volume.py +++ b/nova/tests/fake_volume.py @@ -166,6 +166,7 @@ class API(object): if volume_id == 87654321: return {'id': volume_id, 'attach_time': '13:56:24', + 'attach_status': 'attached', 'status': 'in-use'} for v in self.volume_list: -- cgit