Add cleanup to sdc resources ondboarding step 21/132921/7
authorMichal Jagiello <michal.jagiello@t-mobile.pl>
Mon, 16 Jan 2023 15:17:01 +0000 (15:17 +0000)
committerMichal Jagiello <michal.jagiello@t-mobile.pl>
Wed, 15 Mar 2023 10:18:22 +0000 (10:18 +0000)
Delete SDC resources on cleanup
Bump onapsdk requirements to 10.4.2

Issue-ID: INT-2193
Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl>
Change-Id: Id9e51f07a9c91a02b67a87eb897a2a4d19fa6738

requirements.txt
run_basic_onboard.py
src/onaptests/configuration/basic_onboard_settings.py
src/onaptests/configuration/settings.py
src/onaptests/scenario/basic_onboard.py
src/onaptests/steps/onboard/pnf.py
src/onaptests/steps/onboard/service.py
src/onaptests/steps/onboard/vendor.py
src/onaptests/steps/onboard/vf.py
src/onaptests/steps/onboard/vsp.py

index 3ff4276..ed997bd 100644 (file)
@@ -2,6 +2,6 @@ cryptography==38.0.4
 xtesting==0.91.0
 avionix>=0.4.5
 openstacksdk>=0.61.0
-onapsdk==10.4.1
+onapsdk==10.4.2
 jinja2>3
 kubernetes>=22.6.0
index 835c661..8b00699 100644 (file)
@@ -15,6 +15,7 @@ if __name__ == "__main__":
         cleanup=settings.CLEANUP_FLAG)
     try:
         basic_vm_onboard.execute()
+        basic_vm_onboard.cleanup()
     except onap_test_exceptions.TestConfigurationException:
         logger.error("Basic Onboard configuration error")
     basic_vm_onboard.reports_collection.generate_report()
index 8975fa8..de8d95c 100644 (file)
@@ -63,7 +63,6 @@ except (FileNotFoundError, ValueError):
 #CLEANUP_ACTIVITY_TIMER = 10  # nb of seconds before cleanup in case cleanup option is set
 VENDOR_NAME = "basic_onboard_vendor"
 
-VF_NAME = "basic_onboard_vf"
-VSP_NAME = "basic_onboard_vsp"
-
 MODEL_YAML_TEMPLATE = None
+CLEANUP_FLAG = True
+SDC_CLEANUP = True
index e6f894d..482be9e 100644 (file)
@@ -38,6 +38,10 @@ LOG_CONFIG = {
     }
 }
 CLEANUP_FLAG = False
+# Additional flag to enable SDC resources cleanup
+# Added as SDC's VSP deletion is broken and most tests fail due to that
+# Should be removed as soon as SDC resource deletion is fixed
+SDC_CLEANUP = False
 
 REPORTING_FILE_PATH = "/tmp/reporting.html"
 K8S_REGION_TYPE = "k8s"
index ac4c933..37947f0 100644 (file)
@@ -32,6 +32,7 @@ class BasicOnboard(testcase.TestCase):
         self.__logger.debug("start time")
         try:
             self.test.execute()
+            self.test.cleanup()
             self.__logger.info("VNF basic_vm successfully onboarded")
             self.result = 100
         except OnapTestException as exc:
index 4e3303e..75fdbcf 100644 (file)
@@ -60,6 +60,12 @@ class PnfOnboardStep(BaseStep):
             )
             pnf.onboard()
 
+    @BaseStep.store_state(cleanup=True)
+    def cleanup(self):
+        pnf: Pnf = Pnf(name=settings.PNF_NAME)
+        pnf.delete()
+        super().cleanup()
+
 
 class YamlTemplatePnfOnboardStep(YamlTemplateBaseStep):
     """PNF onboard using YAML template step."""
@@ -124,3 +130,11 @@ class YamlTemplatePnfOnboardStep(YamlTemplateBaseStep):
                         artifact=pnf["pnf_artifact_file_path"]
                     )
                     pnf_obj.onboard()
+
+    @YamlTemplateBaseStep.store_state(cleanup=True)
+    def cleanup(self):
+        if "pnfs" in self.yaml_template:
+            for pnf in self.yaml_template["pnfs"]:
+                pnf_obj: Pnf = Pnf(name=pnf["pnf_name"])
+                pnf_obj.delete()
+        super().cleanup()
index fa21d2c..60ac279 100644 (file)
@@ -82,6 +82,13 @@ class ServiceOnboardStep(BaseStep):
                     service.checkin()
             service.onboard()
 
+    @BaseStep.store_state
+    def cleanup(self) -> None:
+        """Cleanup service onboard step."""
+        service: Service = Service(name=settings.SERVICE_NAME)
+        service.delete()
+        super().cleanup()
+
 
 class YamlTemplateServiceOnboardStep(YamlTemplateBaseStep):
     """Service onboard using YAML template step."""
@@ -253,3 +260,10 @@ class YamlTemplateServiceOnboardStep(YamlTemplateBaseStep):
         for property_name, property_value in component_properties.items():
             prop: ComponentProperty = component.get_property(property_name)
             prop.value = property_value
+
+    @YamlTemplateBaseStep.store_state(cleanup=True)
+    def cleanup(self) -> None:
+        """Cleanup service onboard step."""
+        service: Service = Service(name=self.service_name)
+        service.delete()
+        super().cleanup()
index 71b28b9..980a245 100644 (file)
@@ -28,3 +28,10 @@ class VendorOnboardStep(BaseStep):
         super().execute()
         vendor: Vendor = Vendor(name=settings.VENDOR_NAME)
         vendor.onboard()
+
+    @BaseStep.store_state(cleanup=True)
+    def cleanup(self) -> None:
+        vendor: Vendor = Vendor(name=settings.VENDOR_NAME)
+        vendor.archive()
+        vendor.delete()
+        super().cleanup()
index 852cb82..f77f9af 100644 (file)
@@ -47,6 +47,12 @@ class VfOnboardStep(BaseStep):
         if not vf.created():
             vf.onboard()
 
+    @BaseStep.store_state(cleanup=True)
+    def cleanup(self):
+        vf: Vf = Vf(name=settings.VF_NAME)
+        vf.delete()
+        super().cleanup()
+
 
 class YamlTemplateVfOnboardStep(YamlTemplateBaseStep):
     """Vf onboard using YAML template step."""
@@ -122,3 +128,11 @@ class YamlTemplateVfOnboardStep(YamlTemplateBaseStep):
                         )
                     time.sleep(10)
                     vf.onboard()
+
+    @YamlTemplateBaseStep.store_state(cleanup=True)
+    def cleanup(self):
+        if "vnfs" in self.yaml_template:
+            for vnf in self.yaml_template["vnfs"]:
+                vf_obj: Vf = Vf(name=vnf["vnf_name"])
+                vf_obj.delete()
+        super().cleanup()
index f898268..a7fcf9f 100644 (file)
@@ -44,6 +44,13 @@ class VspOnboardStep(BaseStep):
         vsp: Vsp = Vsp(name=settings.VSP_NAME, vendor=vendor, package=open(settings.VSP_FILE_PATH, "rb"))
         vsp.onboard()
 
+    @BaseStep.store_state(cleanup=True)
+    def cleanup(self):
+        vsp: Vsp = Vsp(name=settings.VSP_NAME)
+        vsp.archive()
+        vsp.delete()
+        super().cleanup()
+
 
 class YamlTemplateVspOnboardStep(YamlTemplateBaseStep):
     """Vsp onboard using YAML template step."""
@@ -118,3 +125,17 @@ class YamlTemplateVspOnboardStep(YamlTemplateBaseStep):
                                     vendor=vendor,
                                     package=package)
                         vsp.onboard()
+
+    @YamlTemplateBaseStep.store_state(cleanup=True)
+    def cleanup(self) -> None:
+        if "vnfs" in self.yaml_template:
+            for vnf in self.yaml_template["vnfs"]:
+                vsp: Vsp = Vsp(name=f"{vnf['vnf_name']}_VSP")
+                vsp.archive()
+                vsp.delete()
+        elif "pnfs" in self.yaml_template:
+            for pnf in self.yaml_template["pnfs"]:
+                vsp: Vsp = Vsp(name=f"{pnf['pnf_name']}_VSP")
+                vsp.archive()
+                vsp.delete()
+        super().cleanup()