From: Liang Chen Date: Thu, 12 Sep 2013 15:19:44 +0000 (+0800) Subject: Use strings for block device mapping info X-Git-Tag: 2014.1~36^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f0ce5cce6e1845f33fc221309a0465753562f6e0;p=openstack-build%2Fheat-build.git Use strings for block device mapping info Nova client receives colon separated strings for block device mapping info instead of a list. Fixes bug #1221693 Change-Id: I321001d406f620d5f8a21e0f28cf706579ad64ad --- diff --git a/heat/engine/resources/server.py b/heat/engine/resources/server.py index 5061352f..5db2e9cd 100644 --- a/heat/engine/resources/server.py +++ b/heat/engine/resources/server.py @@ -267,10 +267,10 @@ class Server(resource.Resource): if (mapping.get('volume_size') or mapping.get('delete_on_termination')): - mapping_parts.append(mapping.get('volume_size', 0)) + mapping_parts.append(mapping.get('volume_size', '0')) if mapping.get('delete_on_termination'): - mapping_parts.append(mapping.get('delete_on_termination')) - bdm_dict[mapping.get('device_name')] = mapping_parts + mapping_parts.append(str(mapping.get('delete_on_termination'))) + bdm_dict[mapping.get('device_name')] = ':'.join(mapping_parts) return bdm_dict diff --git a/heat/tests/test_server.py b/heat/tests/test_server.py index 45849856..f39c1449 100644 --- a/heat/tests/test_server.py +++ b/heat/tests/test_server.py @@ -777,21 +777,21 @@ class ServersTest(HeatTestCase): None, servers.Server._build_block_device_mapping(None)) self.assertEqual({ - 'vda': ['1234', ''], - 'vdb': ['1234', 'snap'], + 'vda': '1234:', + 'vdb': '1234:snap', }, servers.Server._build_block_device_mapping([ {'device_name': 'vda', 'volume_id': '1234'}, {'device_name': 'vdb', 'snapshot_id': '1234'}, ])) self.assertEqual({ - 'vdc': ['1234', '', 10], - 'vdd': ['1234', 'snap', 0, True] + 'vdc': '1234::10', + 'vdd': '1234:snap:0:True' }, servers.Server._build_block_device_mapping([ { 'device_name': 'vdc', 'volume_id': '1234', - 'volume_size': 10 + 'volume_size': '10' }, { 'device_name': 'vdd',