X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Futils%2Fvnfd.py;h=0ecbda1a247d919224d5b2ef102d6887de55f055;hb=7ce998f3da2c7f10d95508ff2f410075ae2a8757;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..0ecbda1 100644 --- a/osm_policy_module/utils/vnfd.py +++ b/osm_policy_module/utils/vnfd.py @@ -28,14 +28,13 @@ 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'])