Fix 1533 (nscharms): read juju from descriptor 09/10909/1
authorDavid Garcia <david.garcia@canonical.com>
Fri, 28 May 2021 10:08:18 +0000 (12:08 +0200)
committerDavid Garcia <david.garcia@canonical.com>
Fri, 28 May 2021 10:08:18 +0000 (12:08 +0200)
In the VNFD, the juju section has been removed and included inside the
execution environment list. Since then basic_12 (nscharms) has not been
properly working because we are only looking for the
execution-environment-liist key inside the descriptor, but that does not
apply to the NSD.

Additionally, I fixed the deletion of the nscharm, that was failing due
to the member-vnf-index key not existing in the deployed VCA.

Change-Id: Icb3220f28e373cf8ac3f978c9a3a83b179540512
Signed-off-by: David Garcia <david.garcia@canonical.com>
osm_lcm/ns.py

index ddd827e..0d15378 100644 (file)
@@ -3282,6 +3282,8 @@ class NsLcm(LcmBase):
         )
         if "execution-environment-list" in descriptor_config:
             ee_list = descriptor_config.get("execution-environment-list", [])
+        elif "juju" in descriptor_config:
+            ee_list = [descriptor_config]  # ns charms
         else:  # other types as script are not supported
             ee_list = []
 
@@ -4035,8 +4037,13 @@ class NsLcm(LcmBase):
 
             for vca_index, vca in enumerate(get_iterable(nsr_deployed, "VCA")):
                 config_descriptor = None
-
-                vca_id = self.get_vca_id(db_vnfrs_dict[vca["member-vnf-index"]], db_nsr)
+                vca_member_vnf_index = vca.get("member-vnf-index")
+                vca_id = self.get_vca_id(
+                    db_vnfrs_dict.get(vca_member_vnf_index)
+                    if vca_member_vnf_index
+                    else None,
+                    db_nsr,
+                )
                 if not vca or not vca.get("ee_id"):
                     continue
                 if not vca.get("member-vnf-index"):