fix 1238. Fix error introduced at commit 9405d17
[osm/RO.git] / RO / osm_ro / nfvo.py
index e346699..d63ebf5 100644 (file)
@@ -4172,17 +4172,21 @@ def instantiate_vnf(mydb, sce_vnf, params, params_out, rollbackList):
             if RO_pub_key:
                 cloud_config_vm = unify_cloud_config(cloud_config_vm, {"key-pairs": [RO_pub_key]})
         if vm.get("boot_data"):
-            cloud_config_vm = unify_cloud_config(vm["boot_data"], cloud_config_vm)
+            cloud_config_vm_ = cloud_config_vm = unify_cloud_config(vm["boot_data"], cloud_config_vm)
 
         if myVMDict.get('availability_zone'):
             av_index = vnf_availability_zones.index(myVMDict['availability_zone'])
         else:
             av_index = None
         for vm_index in range(0, vm.get('count', 1)):
+            if vm.get("instance_parameters") and vm["instance_parameters"].get("cloud_init"):
+                cloud_config_vm_ = unify_cloud_config(cloud_config_vm,
+                                                     {"user-data": vm["instance_parameters"]["cloud_init"][vm_index]})
+
             vm_name = myVMDict['name'] + "-" + str(vm_index+1)
             vm_networks = deepcopy(myVMDict['networks'])
             task_params = (vm_name, myVMDict['description'], myVMDict.get('start', None),
-                           myVMDict['imageRef'], myVMDict['flavorRef'], vm_networks, cloud_config_vm,
+                           myVMDict['imageRef'], myVMDict['flavorRef'], vm_networks, cloud_config_vm_,
                            myVMDict['disks'], av_index, vnf_availability_zones)
 
             vm_uuid = str(uuid4())
@@ -4927,6 +4931,11 @@ def instance_action(mydb,nfvo_tenant,instance_id, action_dict):
                             db_vim_actions.append({"TO-UPDATE": {}, "WHERE": {
                                 "item": "instance_wim_nets", "item_id": db_vm_iface["instance_wim_net_id"]}})
                     task_params_copy = deepcopy(task_params)
+                    cloud_config_vm = task_params_copy[6] or {}
+                    if vdu.get("cloud_init"):
+                        cloud_config_vm.pop("user-data", None)
+                        cloud_config_vm_ = unify_cloud_config(cloud_config_vm, {"user-data": vdu["cloud_init"][index]})
+                        task_params_copy[6] = cloud_config_vm_
                     for iface in task_params_copy[5]:
                         iface["uuid"] = iface2iface[iface["uuid"]]
                         # increment ip_address