X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_ro%2Fnfvo.py;h=f6ec56806166996a071ecfd64cf502d9d6231c24;hb=e18ba43ea07577aeebb54d4c2b5966f856f3063d;hp=e16f70902f1259fb638d6453f55a1e059dfb0bba;hpb=d2b560beb317500d1f9a3d67068c02fba29d8670;p=osm%2FRO.git diff --git a/osm_ro/nfvo.py b/osm_ro/nfvo.py index e16f7090..f6ec5680 100644 --- a/osm_ro/nfvo.py +++ b/osm_ro/nfvo.py @@ -803,6 +803,12 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor): db_flavors = [] uuid_list = [] vnfd_uuid_list = [] + vnfd_catalog_descriptor = vnf_descriptor.get("vnfd:vnfd-catalog") + if not vnfd_catalog_descriptor: + vnfd_catalog_descriptor = vnf_descriptor.get("vnfd-catalog") + vnfd_descriptor_list = vnfd_catalog_descriptor.get("vnfd") + if not vnfd_descriptor_list: + vnfd_descriptor_list = vnfd_catalog_descriptor.get("vnfd:vnfd") for vnfd_yang in myvnfd.vnfd_catalog.vnfd.itervalues(): vnfd = vnfd_yang.get() @@ -821,6 +827,10 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor): "descriptor": str(vnf_descriptor)[:60000] } + for vnfd_descriptor in vnfd_descriptor_list: + if vnfd_descriptor["id"] == str(vnfd["id"]): + break + # table nets (internal-vld) net_id2uuid = {} # for mapping interface with network for vld in vnfd.get("internal-vld").itervalues(): @@ -1025,9 +1035,12 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor): db_interface["external_name"] = get_str(cp, "name", 255) cp_name2iface_uuid[db_interface["external_name"]] = iface_uuid cp_name2vm_uuid[db_interface["external_name"]] = vm_uuid - if cp.get("port-security-enabled") == False: + for cp_descriptor in vnfd_descriptor["connection-point"]: + if cp_descriptor["name"] == db_interface["external_name"]: + break + if str(cp_descriptor.get("port-security-enabled")).lower() == "false": db_interface["port_security"] = 0 - elif cp.get("port-security-enabled") == True: + elif str(cp_descriptor.get("port-security-enabled")).lower() == "true": db_interface["port_security"] = 1 except KeyError: raise NfvoException("Error. Invalid VNF descriptor at 'vnfd[{vnf}]':'vdu[{vdu}]':" @@ -1042,9 +1055,12 @@ def new_vnfd_v3(mydb, tenant_id, vnf_descriptor): for cp in vld.get("internal-connection-point").itervalues(): if cp.get("id-ref") == iface.get("internal-connection-point-ref"): db_interface["net_id"] = net_id2uuid[vld.get("id")] - if cp.get("port-security-enabled") == False: + for cp_descriptor in vnfd_descriptor["connection-point"]: + if cp_descriptor["name"] == db_interface["external_name"]: + break + if str(cp_descriptor.get("port-security-enabled")).lower() == "false": db_interface["port_security"] = 0 - elif cp.get("port-security-enabled") == True: + elif str(cp_descriptor.get("port-security-enabled")).lower() == "true": db_interface["port_security"] = 1 break except KeyError: