fix/feat(relations): external connection point ref now works with multiple KDU 05/10405/6
authorbravof <fbravo@whitestack.com>
Thu, 25 Feb 2021 20:20:35 +0000 (17:20 -0300)
committersousaedu <eduardo.sousa@canonical.com>
Thu, 6 May 2021 21:02:06 +0000 (23:02 +0200)
Change-Id: I01fac4167617450670999c87200bd3d8179f7293
Signed-off-by: bravof <fbravo@whitestack.com>
osm_lcm/ns.py

index 6fd9e5a..443a09e 100644 (file)
@@ -2287,6 +2287,12 @@ class NsLcm(LcmBase):
 
             # Obtain management service info (if exists)
             vnfr_update_dict = {}
+            kdu_config = get_configuration(vnfd, kdud["name"])
+            if kdu_config:
+                target_ee_list = kdu_config.get("execution-environment-list", [])
+            else:
+                target_ee_list = []
+
             if services:
                 vnfr_update_dict["kdur.{}.services".format(kdu_index)] = services
                 mgmt_services = [service for service in kdud.get("service", []) if service.get("mgmt-service")]
@@ -2306,6 +2312,11 @@ class NsLcm(LcmBase):
                                 if deep_get(vnfd, ("mgmt-interface", "cp")) == service_external_cp:
                                     vnfr_update_dict["ip-address"] = ip
 
+                                if find_in_list(
+                                    target_ee_list,
+                                    lambda ee: ee.get("external-connection-point-ref", "") == service_external_cp
+                                ):
+                                    vnfr_update_dict["kdur.{}.ip-address".format(kdu_index)] = ip
                             break
                     else:
                         self.logger.warn("Mgmt service name: {} not found".format(mgmt_service["name"]))