diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 31fd563f6d18..e04b5f1133e5 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -172,7 +172,7 @@ def _format_block_device_mapping(bdm): ('deleteOnTermination', 'delete_on_termination')) ebs = {} for name, k in ebs_keys: - if k in bdm: + if bdm.get(k) is not None: if k == 'snapshot_id': ebs[name] = ec2utils.id_to_ec2_snap_id(bdm[k]) elif k == 'volume_id': diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py index db8a7177d819..d9ff15e2826f 100644 --- a/nova/tests/api/ec2/test_cloud.py +++ b/nova/tests/api/ec2/test_cloud.py @@ -1491,7 +1491,8 @@ class CloudTestCase(test.TestCase): mappings2 = [{'device': '/dev/sda1', 'virtual': 'root'}] block_device_mapping2 = [{'device_name': '/dev/sdb1', - 'snapshot_id': 'ccec42a2-c220-4806-b762-6b12fbb592e7'}] + 'snapshot_id': 'ccec42a2-c220-4806-b762-6b12fbb592e7', + 'volume_id': None}] image2 = { 'id': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6', 'name': 'fake_name',