X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Futils%2Fvnfd.py;h=1a81e639a818bfd561b4094cb61b87eea86ac1b7;hb=4584f8e86a492d67d120bfea1195eff1475c0a65;hp=234d8649bbafbd82c029758716e7136dee9ed288;hpb=93f1b1305cef4f52581c80dbbe2ed6ccef1bbeab;p=osm%2FPOL.git diff --git a/osm_policy_module/utils/vnfd.py b/osm_policy_module/utils/vnfd.py index 234d864..1a81e63 100644 --- a/osm_policy_module/utils/vnfd.py +++ b/osm_policy_module/utils/vnfd.py @@ -25,17 +25,15 @@ from osm_policy_module.core.exceptions import ManagementVduNotFound class VnfdUtils: - @staticmethod def get_mgmt_vdu(vnfd: dict): - if 'cp' in vnfd['mgmt-interface']: - for vdu in vnfd['vdu']: - for interface in vdu['interface']: - if 'external-connection-point-ref' in interface: - if interface['external-connection-point-ref'] == vnfd['mgmt-interface']['cp']: - return vdu - elif 'vdu-id' in vnfd['mgmt-interface']: - for vdu in vnfd['vdu']: - if vdu['id'] == vnfd['mgmt-interface']['vdu-id']: + if "mgmt-cp" in vnfd: + mgmt_cp = vnfd["mgmt-cp"] + mgmt_cp_vdu_id = None + for cpd in vnfd.get("ext-cpd", ()): + if cpd.get("id") == mgmt_cp: + mgmt_cp_vdu_id = cpd.get("int-cpd", {}).get("vdu-id") + for vdu in vnfd.get("vdu", ()): + if vdu.get("id") == mgmt_cp_vdu_id: return vdu - raise ManagementVduNotFound("Management vdu not founr in vnfd %s", vnfd['id']) + raise ManagementVduNotFound("Management vdu not found in vnfd %s", vnfd["id"])