Fix the error of contextArray is null
[vfc/gvnfm/vnflcm.git] / lcm / lcm / pub / vimapi / adaptor.py
index 5c8386b..b79aaac 100644 (file)
@@ -271,8 +271,11 @@ def create_port(vim_cache, res_cache, data, port, do_notify, res_type):
         fixed_ip_address = ignore_case_get(l3_address_data, "fixed_ip_address")
         ip_address.extend(fixed_ip_address)
     for one_virtual_network_interface in port["properties"].get("virtual_network_interface_requirements", []):
-        interfaceTypeString = one_virtual_network_interface["network_interface_requirements"]["interfaceType"]
-        interfaceType = json.loads(interfaceTypeString)["configurationValue"]
+        network_interface_requirements = one_virtual_network_interface["network_interface_requirements"]
+        interfaceTypeString = ignore_case_get(network_interface_requirements, "interfaceType")
+        interfaceType = ""
+        if interfaceTypeString != "":
+            interfaceType = json.loads(interfaceTypeString)["configurationValue"]
         vnic_type = ignore_case_get(port["properties"], "vnic_type")
         if vnic_type == "":
             if interfaceType == "SR-IOV":
@@ -387,7 +390,7 @@ def create_vm(vim_cache, res_cache, data, vm, do_notify, res_type):
         param["nicArray"].append({
             "portId": get_res_id(res_cache, RES_PORT, cp_id)
         })
-    param["contextArray"] = ignore_case_get(vm["properties"], "inject_files")
+    param["contextArray"] = ignore_case_get(vm["properties"], "inject_files", [])
     logger.debug("contextArray:%s", param["contextArray"])
     for vol_data in ignore_case_get(vm, "volume_storages"):
         vol_id = vol_data["volume_storage_id"]
@@ -404,6 +407,8 @@ def create_vm(vim_cache, res_cache, data, vm, do_notify, res_type):
 
     ret = api.create_vm(vim_id, tenant_id, param)
     ret["ports"] = [nic.get("portId") for nic in param["nicArray"]]
+    ret["vimId"] = vim_id
+    ret["tenantId"] = tenant_id
     do_notify(res_type, ret)
     vm_id = ret["id"]
     if ignore_case_get(ret, "name"):