aboutsummaryrefslogtreecommitdiffstats
path: root/src/onaptests/steps/instantiate/vf_module_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/vf_module_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/vf_module_ala_carte.py')
-rw-r--r--src/onaptests/steps/instantiate/vf_module_ala_carte.py55
1 files changed, 49 insertions, 6 deletions
diff --git a/src/onaptests/steps/instantiate/vf_module_ala_carte.py b/src/onaptests/steps/instantiate/vf_module_ala_carte.py
index b4ff002..3a22159 100644
--- a/src/onaptests/steps/instantiate/vf_module_ala_carte.py
+++ b/src/onaptests/steps/instantiate/vf_module_ala_carte.py
@@ -3,6 +3,7 @@ from typing import Iterable
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.so.instantiation import VnfParameter
@@ -10,7 +11,6 @@ from onapsdk.so.instantiation import VnfParameter
from ..base import YamlTemplateBaseStep
from .vnf_ala_carte import YamlTemplateVnfAlaCarteInstantiateStep
-
class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
"""Instantiate vf module a'la carte using YAML template."""
@@ -21,8 +21,10 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
- YamlTemplateVnfAlaCarteInstantiateStep.
"""
super().__init__(cleanup=cleanup)
+
self._yaml_template: dict = None
self._service_instance_name: str = None
+ self._service_instance: ServiceInstance = None
self.add_step(YamlTemplateVnfAlaCarteInstantiateStep(cleanup))
@property
@@ -107,12 +109,53 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
super().execute()
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)
- for vnf_instance in service_instance.vnf_instances:
- vf_module_instantiation = vnf_instance.add_vf_module(
- vnf_instance.vnf.vf_module,
- vnf_parameters= self.get_vnf_parameters(vnf_instance.vnf.name))
+ self._service_instance: ServiceInstance = service_subscription.get_service_instance_by_name(self.service_instance_name)
+ 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 vnf_instance in self._service_instance.vnf_instances:
+ # possible to have several moduels for 1 VNF
+ for vf_module in vnf_instance.vnf.vf_modules:
+ vf_module_instantiation = vnf_instance.add_vf_module(
+ vf_module,
+ cloud_region,
+ tenant,
+ self._service_instance_name,
+ vnf_parameters= self.get_vnf_parameters(vnf_instance.vnf.name))
while not vf_module_instantiation.finished:
time.sleep(10)
if vf_module_instantiation.failed:
raise Exception("Vf module instantiation failed")
+
+
+ def cleanup(self) -> None:
+ """Cleanup Vf module.
+
+ Raises:
+ Exception: Vf module cleaning failed
+
+ """
+ super().cleanup()
+ for vnf_instance in self._service_instance.vnf_instances:
+ self._logger.debug("VNF instance %s found in Service Instance ",
+ vnf_instance.name)
+ self._logger.info("Get VF Modules")
+ for vf_module in vnf_instance.vf_modules:
+ self._logger.info("Delete VF Module %s",
+ vf_module.name)
+ vf_module_deletion = vf_module.delete()
+ nb_try = 0
+ nb_try_max = 30
+
+ while not vf_module_deletion.finished and nb_try < nb_try_max:
+ self._logger.info("Wait for vf module deletion")
+ nb_try += 1
+ time.sleep(20)
+ if vf_module_deletion.finished:
+ self._logger.info("VfModule %s deleted", vf_module.name)
+ else:
+ self._logger.error("VfModule deletion %s failed", vf_module.name)
+ raise Exception("Vf module cleanup failed")