From f0ce5cce6e1845f33fc221309a0465753562f6e0 Mon Sep 17 00:00:00 2001 From: Liang Chen Date: Thu, 12 Sep 2013 23:19:44 +0800 Subject: [PATCH] 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 --- heat/engine/resources/server.py | 6 +++--- heat/tests/test_server.py | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) 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', -- 2.45.2