Explorar el Código

Fix user data handling for empty values

This reverts commit 3a9558983b0f0b2f87c076db4478b343722d7702.
Nuwan Goonasekera hace 8 años
padre
commit
356036425f

+ 4 - 5
cloudbridge/cloud/providers/aws/helpers.py

@@ -12,15 +12,14 @@ from cloudbridge.cloud.base.resources import ServerPagedResultList
 
 def trim_empty_params(params_dict):
     """
-    Given a dict containing potentially empty values, trim out
-    all the empty values. This is to please Boto3, which throws
+    Given a dict containing potentially null values, trims out
+    all the null values. This is to please Boto, which throws
     a parameter validation exception for NoneType arguments.
     e.g. Given
         {
             'GroupName': 'abc',
             'Description': None,
             'VpcId': 'xyz',
-            'UserData: {}
         }
     returns:
         {
@@ -28,8 +27,8 @@ def trim_empty_params(params_dict):
             'VpcId': 'xyz'
         }
     """
-    log.debug("Removing empty values from %s", params_dict)
-    return {k: v for k, v in params_dict.items() if v}
+    log.debug("Removing null values from %s", params_dict)
+    return {k: v for k, v in params_dict.items() if v is not None}
 
 
 def find_tag_value(tags, key):

+ 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,
+                               UserData=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,
+            userdata=user_data or None,
             block_device_mapping_v2=bdm,
             nics=nics)
         return OpenStackInstance(self.provider, os_instance)