Fix 1475 - Incorrect description in instantiating error
[osm/RO.git] / RO / osm_ro / nfvo.py
index ca73a09..74cfbf0 100644 (file)
@@ -1198,8 +1198,9 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor):
                                 vdu_id2cp_name[vdu_id] = db_interface["external_name"]
 
                             # port security
-                            if str(cp_descriptor.get("port-security-enabled")).lower() == "false":
+                            if "port-security-disable-strategy" in cp_descriptor or str(cp_descriptor.get("port-security-enabled")).lower() == "false":
                                 db_interface["port_security"] = 0
+                                db_interface["port_security_disable_strategy"] = cp_descriptor.get("port-security-disable-strategy", "full")
                             elif str(cp_descriptor.get("port-security-enabled")).lower() == "true":
                                 db_interface["port_security"] = 1
                         except KeyError:
@@ -1233,8 +1234,9 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor):
                                     ("SR-IOV", "PCI-PASSTHROUGH"):
                                 db_nets[net_id2index[icp_vld.get("id")]]["type"] = "data"
                             db_interface["net_id"] = net_id2uuid[icp_vld.get("id")]
-                            if str(icp_descriptor.get("port-security-enabled")).lower() == "false":
+                            if "port-security-disable-strategy" in icp_descriptor or str(icp_descriptor.get("port-security-enabled")).lower() == "false":
                                 db_interface["port_security"] = 0
+                                db_interface["port_security_disable_strategy"] = icp_descriptor.get("port-security-disable-strategy", "full")
                             elif str(icp_descriptor.get("port-security-enabled")).lower() == "true":
                                 db_interface["port_security"] = 1
                             if icp.get("ip-address"):
@@ -4115,6 +4117,8 @@ def instantiate_vnf(mydb, sce_vnf, params, params_out, rollbackList):
                 netDict['ip_address'] = iface['ip_address']
             if iface.get("port-security") is not None:
                 netDict['port_security'] = iface['port-security']
+            if iface.get("port_security_disable_strategy") is not None:
+                netDict['port_security_disable_strategy'] = iface['port_security_disable_strategy']
             if iface.get("floating-ip") is not None:
                 netDict['floating_ip'] = iface['floating-ip']
             netDict['name'] = iface['internal_name']
@@ -4181,7 +4185,9 @@ def instantiate_vnf(mydb, sce_vnf, params, params_out, rollbackList):
         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]})
+                                                      {"user-data": vm["instance_parameters"]["cloud_init"][vm_index]})
+            else:
+                cloud_config_vm_ = cloud_config_vm
 
             vm_name = myVMDict['name'] + "-" + str(vm_index+1)
             vm_networks = deepcopy(myVMDict['networks'])
@@ -4932,8 +4938,8 @@ def instance_action(mydb,nfvo_tenant,instance_id, action_dict):
                                 "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 {}
-                    cloud_config_vm.pop("user-data", None)
                     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]: