]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Use strings for block device mapping info
authorLiang Chen <cbjchen@cn.ibm.com>
Thu, 12 Sep 2013 15:19:44 +0000 (23:19 +0800)
committerLiang Chen <cbjchen@cn.ibm.com>
Fri, 13 Sep 2013 08:12:00 +0000 (16:12 +0800)
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
heat/tests/test_server.py

index 5061352fa1f8a15b3b70109bab20381732f9c3f5..5db2e9cd8d4f5cb3b64df46e1dc964a1e3b4dbf2 100644 (file)
@@ -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
 
index 458498568670ea12e9c000b8f9a0783e088597ca..f39c1449ea5b15fc60a035ca6e4fa2202ac893c6 100644 (file)
@@ -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',