aboutsummaryrefslogtreecommitdiffstats
path: root/src/onaptests/steps/instantiate/vnf_ala_carte.py
diff options
context:
space:
mode:
authormrichomme <morgan.richomme@orange.com>2020-09-14 18:16:26 +0200
committermrichomme <morgan.richomme@orange.com>2020-09-16 17:54:32 +0200
commitb6f965609e956d9d26f3359b75ef2aaf1d596a5f (patch)
tree2204eb1557e22b2a46645ffa7566da3efe7d8ea8 /src/onaptests/steps/instantiate/vnf_ala_carte.py
parenta85a306fb5ee8259b09c392c03ac499c828b5597 (diff)
Add cleanup function
Issue-ID: TEST-240 Signed-off-by: mrichomme <morgan.richomme@orange.com> Change-Id: I784e958f869a0cbee702c915509fe80d37d44b65 Signed-off-by: mrichomme <morgan.richomme@orange.com>
Diffstat (limited to 'src/onaptests/steps/instantiate/vnf_ala_carte.py')
-rw-r--r--src/onaptests/steps/instantiate/vnf_ala_carte.py41
1 files changed, 39 insertions, 2 deletions
diff --git a/src/onaptests/steps/instantiate/vnf_ala_carte.py b/src/onaptests/steps/instantiate/vnf_ala_carte.py
index 7701630..f52857d 100644
--- a/src/onaptests/steps/instantiate/vnf_ala_carte.py
+++ b/src/onaptests/steps/instantiate/vnf_ala_carte.py
@@ -2,6 +2,7 @@ import time
from uuid import uuid4
from yaml import load
+from onapsdk.aai.cloud_infrastructure import CloudRegion, Tenant
from onapsdk.aai.business import Customer, ServiceInstance, ServiceSubscription
from onapsdk.configuration import settings
from onapsdk.sdc.service import Service
@@ -23,6 +24,7 @@ class YamlTemplateVnfAlaCarteInstantiateStep(YamlTemplateBaseStep):
super().__init__(cleanup=cleanup)
self._yaml_template: dict = None
self._service_instance_name: str = None
+ self._service_instance: ServiceInstance = None
self.add_step(YamlTemplateServiceAlaCarteInstantiateStep(cleanup))
@property
@@ -88,12 +90,47 @@ class YamlTemplateVnfAlaCarteInstantiateStep(YamlTemplateBaseStep):
service: Service = Service(self.service_name)
customer: Customer = Customer.get_by_global_customer_id(settings.GLOBAL_CUSTOMER_ID)
service_subscription: ServiceSubscription = customer.get_service_subscription_by_service_type(self.service_name)
- service_instance: ServiceInstance = service_subscription.get_service_instance_by_name(self.service_instance_name)
+ self._service_instance: ServiceInstance = service_subscription.get_service_instance_by_name(self.service_instance_name)
line_of_business: LineOfBusiness = LineOfBusiness(settings.LINE_OF_BUSINESS)
platform: Platform = Platform(settings.PLATFORM)
+ cloud_region: CloudRegion = CloudRegion.get_by_id(
+ cloud_owner=settings.CLOUD_REGION_CLOUD_OWNER,
+ cloud_region_id=settings.CLOUD_REGION_ID,
+ )
+ tenant: Tenant = cloud_region.get_tenant(settings.TENANT_ID)
for idx, vnf in enumerate(service.vnfs):
- vnf_instantiation = service_instance.add_vnf(vnf, line_of_business, platform, f"{self.service_instance_name}_vnf_{idx}")
+ vnf_instantiation = self._service_instance.add_vnf(
+ vnf,
+ line_of_business,
+ platform,
+ cloud_region,
+ tenant,
+ f"{self.service_instance_name}_vnf_{idx}")
while not vnf_instantiation.finished:
time.sleep(10)
if vnf_instantiation.failed:
raise Exception("Vnf instantiation failed")
+
+ def cleanup(self) -> None:
+ """Cleanup VNF.
+
+ Raises:
+ Exception: VNF cleaning failed
+
+ """
+ super().cleanup()
+
+ for vnf_instance in self._service_instance.vnf_instances:
+ vnf_deletion = vnf_instance.delete()
+ nb_try = 0
+ nb_try_max = 30
+
+ while not vnf_deletion.finished and nb_try < nb_try_max:
+ self._logger.info("Wait for vnf deletion")
+ nb_try += 1
+ time.sleep(15)
+ if vnf_deletion.finished:
+ self._logger.info("VNF %s deleted", vnf_instance.name)
+ else:
+ self._logger.error("VNF deletion %s failed", vnf_instance.name)
+ raise Exception("VNF Cleanup failed")