Просмотр исходного кода

Add test to make sure user data is converted to str

Nuwan Goonasekera 8 лет назад
Родитель
Сommit
66eb2a0705

+ 1 - 1
cloudbridge/cloud/providers/aws/services.py

@@ -408,7 +408,7 @@ class AWSInstanceService(BaseInstanceService):
                                MaxCount=1,
                                KeyName=key_pair_name,
                                SecurityGroupIds=vm_firewall_ids or None,
-                               UserData=user_data or None,
+                               UserData=str(user_data) or None,
                                InstanceType=vm_size,
                                Placement=placement,
                                BlockDeviceMappings=bdm,

+ 1 - 1
cloudbridge/cloud/providers/openstack/services.py

@@ -649,7 +649,7 @@ class OpenStackInstanceService(BaseInstanceService):
             availability_zone=zone_id,
             key_name=key_pair_name,
             security_groups=sg_name_list,
-            userdata=user_data or None,
+            userdata=str(user_data) or None,
             block_device_mapping_v2=bdm,
             nics=nics)
         return OpenStackInstance(self.provider, os_instance)

+ 6 - 4
test/helpers/__init__.py

@@ -125,7 +125,7 @@ def delete_test_network(network):
 
 def create_test_instance(
         provider, instance_name, subnet, launch_config=None,
-        key_pair=None, vm_firewalls=None):
+        key_pair=None, vm_firewalls=None, user_data=None):
     return provider.compute.instances.create(
         instance_name,
         get_provider_test_data(provider, 'image'),
@@ -134,11 +134,12 @@ def create_test_instance(
         zone=get_provider_test_data(provider, 'placement'),
         key_pair=key_pair,
         vm_firewalls=vm_firewalls,
-        launch_config=launch_config)
+        launch_config=launch_config,
+        user_data=user_data)
 
 
 def get_test_instance(provider, name, key_pair=None, vm_firewalls=None,
-                      subnet=None):
+                      subnet=None, user_data=None):
     launch_config = None
     instance = create_test_instance(
         provider,
@@ -146,7 +147,8 @@ def get_test_instance(provider, name, key_pair=None, vm_firewalls=None,
         subnet=subnet,
         key_pair=key_pair,
         vm_firewalls=vm_firewalls,
-        launch_config=launch_config)
+        launch_config=launch_config,
+        user_data=user_data)
     instance.wait_till_ready()
     return instance
 

+ 3 - 1
test/test_compute_service.py

@@ -26,8 +26,10 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         subnet = None
 
         def create_inst(name):
+            # Also test whether sending in an empty_dict for user_data
+            # results in an automatic conversion to string.
             return helpers.get_test_instance(self.provider, name,
-                                             subnet=subnet)
+                                             subnet=subnet, user_data={})
 
         def cleanup_inst(inst):
             inst.delete()