Pin pylint version to 3.1.1 in tox.ini
[osm/LCM.git] / osm_lcm / ns.py
index 2fecb5d..25ae038 100644 (file)
@@ -3964,25 +3964,12 @@ class NsLcm(LcmBase):
                 )
             )
             ee_descriptor_id = ee_item.get("id")
-            if ee_item.get("juju"):
-                vca_name = ee_item["juju"].get("charm")
-                if get_charm_name:
-                    charm_name = self.find_charm_name(db_nsr, str(vca_name))
-                vca_type = (
-                    "lxc_proxy_charm"
-                    if ee_item["juju"].get("charm") is not None
-                    else "native_charm"
-                )
-                if ee_item["juju"].get("cloud") == "k8s":
-                    vca_type = "k8s_proxy_charm"
-                elif ee_item["juju"].get("proxy") is False:
-                    vca_type = "native_charm"
-            elif ee_item.get("helm-chart"):
-                vca_name = ee_item["helm-chart"]
-                vca_type = "helm-v3"
-            else:
+            vca_name, charm_name, vca_type = self.get_vca_info(
+                ee_item, db_nsr, get_charm_name
+            )
+            if not vca_type:
                 self.logger.debug(
-                    logging_text + "skipping non juju neither charm configuration"
+                    logging_text + "skipping, non juju/charm/helm configuration"
                 )
                 continue
 
@@ -4535,25 +4522,25 @@ class NsLcm(LcmBase):
             if nsr_deployed.get("VCA"):
                 stage[1] = "Deleting all execution environments."
                 self.logger.debug(logging_text + stage[1])
-                vca_id = self.get_vca_id({}, db_nsr)
-                task_delete_ee = asyncio.ensure_future(
-                    asyncio.wait_for(
-                        self._delete_all_N2VC(db_nsr=db_nsr, vca_id=vca_id),
-                        timeout=self.timeout.charm_delete,
+                helm_vca_list = get_deployed_vca(db_nsr, {"type": "helm-v3"})
+                if helm_vca_list:
+                    # Delete Namespace and Certificates
+                    await self.vca_map["helm-v3"].delete_tls_certificate(
+                        namespace=db_nslcmop["nsInstanceId"],
+                        certificate_name=self.EE_TLS_NAME,
                     )
-                )
-                # task_delete_ee = asyncio.ensure_future(self.n2vc.delete_namespace(namespace="." + nsr_id))
-                tasks_dict_info[task_delete_ee] = "Terminating all VCA"
-
-            # Delete Namespace and Certificates if necessary
-            if check_helm_ee_in_ns(list(db_vnfds_from_member_index.values())):
-                await self.vca_map["helm-v3"].delete_tls_certificate(
-                    namespace=db_nslcmop["nsInstanceId"],
-                    certificate_name=self.EE_TLS_NAME,
-                )
-                await self.vca_map["helm-v3"].delete_namespace(
-                    namespace=db_nslcmop["nsInstanceId"],
-                )
+                    await self.vca_map["helm-v3"].delete_namespace(
+                        namespace=db_nslcmop["nsInstanceId"],
+                    )
+                else:
+                    vca_id = self.get_vca_id({}, db_nsr)
+                    task_delete_ee = asyncio.ensure_future(
+                        asyncio.wait_for(
+                            self._delete_all_N2VC(db_nsr=db_nsr, vca_id=vca_id),
+                            timeout=self.timeout.charm_delete,
+                        )
+                    )
+                    tasks_dict_info[task_delete_ee] = "Terminating all VCA"
 
             # Delete from k8scluster
             stage[1] = "Deleting KDUs."
@@ -6346,7 +6333,11 @@ class NsLcm(LcmBase):
                     nsr_id,
                     {
                         "_admin.scaling-group": [
-                            {"name": scaling_group, "nb-scale-op": 0}
+                            {
+                                "name": scaling_group,
+                                "vnf_index": vnf_index,
+                                "nb-scale-op": 0,
+                            }
                         ]
                     },
                 )
@@ -6355,7 +6346,10 @@ class NsLcm(LcmBase):
                 for admin_scale_index, admin_scale_info in enumerate(
                     db_nsr["_admin"]["scaling-group"]
                 ):
-                    if admin_scale_info["name"] == scaling_group:
+                    if (
+                        admin_scale_info["name"] == scaling_group
+                        and admin_scale_info["vnf_index"] == vnf_index
+                    ):
                         nb_scale_op = admin_scale_info.get("nb-scale-op", 0)
                         break
                 else:  # not found, set index one plus last element and add new entry with the name
@@ -6363,6 +6357,9 @@ class NsLcm(LcmBase):
                     db_nsr_update[
                         "_admin.scaling-group.{}.name".format(admin_scale_index)
                     ] = scaling_group
+                    db_nsr_update[
+                        "_admin.scaling-group.{}.vnf_index".format(admin_scale_index)
+                    ] = vnf_index
 
             vca_scaling_info = []
             scaling_info = {"scaling_group_name": scaling_group, "vdu": [], "kdu": []}
@@ -8307,25 +8304,12 @@ class NsLcm(LcmBase):
                 )
             )
             ee_descriptor_id = ee_item.get("id")
-            if ee_item.get("juju"):
-                vca_name = ee_item["juju"].get("charm")
-                if get_charm_name:
-                    charm_name = self.find_charm_name(db_nsr, str(vca_name))
-                vca_type = (
-                    "lxc_proxy_charm"
-                    if ee_item["juju"].get("charm") is not None
-                    else "native_charm"
-                )
-                if ee_item["juju"].get("cloud") == "k8s":
-                    vca_type = "k8s_proxy_charm"
-                elif ee_item["juju"].get("proxy") is False:
-                    vca_type = "native_charm"
-            elif ee_item.get("helm-chart"):
-                vca_name = ee_item["helm-chart"]
-                vca_type = "helm-v3"
-            else:
+            vca_name, charm_name, vca_type = self.get_vca_info(
+                ee_item, db_nsr, get_charm_name
+            )
+            if not vca_type:
                 self.logger.debug(
-                    logging_text + "skipping non juju neither charm configuration"
+                    logging_text + "skipping, non juju/charm/helm configuration"
                 )
                 continue