aboutsummaryrefslogtreecommitdiffstats
path: root/src/onaptests/steps/instantiate
diff options
context:
space:
mode:
Diffstat (limited to 'src/onaptests/steps/instantiate')
-rw-r--r--src/onaptests/steps/instantiate/k8s_profile_create.py165
-rw-r--r--src/onaptests/steps/instantiate/service_ala_carte.py2
-rw-r--r--src/onaptests/steps/instantiate/vf_module_ala_carte.py14
-rw-r--r--src/onaptests/steps/instantiate/vnf_ala_carte.py3
4 files changed, 7 insertions, 177 deletions
diff --git a/src/onaptests/steps/instantiate/k8s_profile_create.py b/src/onaptests/steps/instantiate/k8s_profile_create.py
deleted file mode 100644
index 375aa2c..0000000
--- a/src/onaptests/steps/instantiate/k8s_profile_create.py
+++ /dev/null
@@ -1,165 +0,0 @@
-from typing import Iterable
-from uuid import uuid4
-from yaml import load
-
-from onapsdk.aai.business import Customer, ServiceInstance, ServiceSubscription
-from onapsdk.configuration import settings
-from onapsdk.msb.k8s import Definition
-from onapsdk.so.instantiation import VnfParameter
-
-from ..base import BaseStep
-from .vnf_ala_carte import YamlTemplateVnfAlaCarteInstantiateStep
-
-class K8SProfileStep(BaseStep):
- """CreateK8sProfileStep."""
-
- def __init__(self, cleanup=False):
- """Initialize step.
- """
- 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
- def yaml_template(self) -> dict:
- """Step YAML template.
-
- Load from file if it's a root step, get from parent otherwise.
-
- Returns:
- dict: Step YAML template
-
- """
- if self.is_root:
- if not self._yaml_template:
- with open(settings.SERVICE_YAML_TEMPLATE, "r") as yaml_template:
- self._yaml_template: dict = load(yaml_template)
- return self._yaml_template
- return self.parent.yaml_template
-
- @property
- def service_name(self) -> str:
- """Service name.
-
- Get from YAML template if it's a root step, get from parent otherwise.
-
- Returns:
- str: Service name
-
- """
- if self.is_root:
- return next(iter(self.yaml_template.keys()))
- return self.parent.service_name
-
- @property
- def service_instance_name(self) -> str:
- """Service instance name.
-
- Generate using `service_name` and `uuid4()` function if it's a root step,
- get from parent otherwise.
-
- Returns:
- str: Service instance name
-
- """
- if self.is_root:
- if not self._service_instance_name:
- self._service_instance_name: str = f"{self.service_name}-{str(uuid4())}"
- return self._service_instance_name
- return self.parent.service_instance_name
-
- def get_vnf_parameters(self, vnf_name: str) -> Iterable[VnfParameter]:
- """Get VNF parameters from YAML template.
-
- Args:
- vnf_name (str): VNF name to get parameters for.
-
- Yields:
- Iterator[Iterable[VnfParameter]]: VNF parameter
-
- """
-
- # workaround, as VNF name differs from model name (added " 0")
- vnf_name = vnf_name.split()[0]
- for vnf in self.yaml_template[self.service_name]["vnfs"]:
- if vnf["vnf_name"] == vnf_name:
- for vnf_parameter in vnf["vnf_parameters"]:
- yield VnfParameter(
- name=vnf_parameter["name"],
- value=vnf_parameter["value"]
- )
-
- @BaseStep.store_state
- def execute(self):
- """Creation of k8s profile for resource bundle definition
-
- Use settings values:
- - GLOBAL_CUSTOMER_ID
- - K8S_PROFILE_K8S_VERSION
- - K8S_PROFILE_ARTIFACT_PATH.
- """
- 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)
- self._service_instance: ServiceInstance = service_subscription.get_service_instance_by_name(self.service_instance_name)
-
- for vnf_instance in self._service_instance.vnf_instances:
- # possible to have several modules for 1 VNF
- for vf_module in vnf_instance.vnf.vf_modules:
- # Define profile (rb_profile) for resource bundle definition
- # Retrieve resource bundle definition (rbdef) corresponding to vf module
- rbdef_name = vf_module.metadata["vfModuleModelInvariantUUID"]
- rbdef_version = vf_module.metadata["vfModuleModelUUID"]
- rbdef = Definition.get_definition_by_name_version(rbdef_name, rbdef_version)
- # Get k8s profile name from yaml service template
- vnf_parameters = self.get_vnf_parameters(vnf_instance.vnf.name)
- k8s_profile_name = ""
- k8s_profile_namespace = ""
- for param in vnf_parameters:
- if param.name == "k8s-rb-profile-name":
- k8s_profile_name = param.value
- if param.name == "k8s-rb-profile-namespace":
- k8s_profile_namespace = param.value
- if k8s_profile_name == "" or k8s_profile_namespace == "":
- raise Exception("Vf module instantiation failed, missing rb profile information")
- ######## Check profile for Definition ###################################
- try:
- rbdef.get_profile_by_name(k8s_profile_name)
- except ValueError:
- ######## Create profile for Definition ###################################
- profile = rbdef.create_profile(k8s_profile_name,
- k8s_profile_namespace,
- settings.K8S_PROFILE_K8S_VERSION)
- ####### Upload artifact for created profile ##############################
- profile.upload_artifact(open(settings.K8S_PROFILE_ARTIFACT_PATH, 'rb').read())
-
- def cleanup(self) -> None:
- """Cleanup K8S profiles.
- """
- self._logger.info("*Clean the k8s profile *")
- for vnf_instance in self._service_instance.vnf_instances:
- # possible to have several modules for 1 VNF
- for vf_module in vnf_instance.vnf.vf_modules:
- # Retrieve resource bundle definition (rbdef) corresponding to vf module
- rbdef_name = vf_module.metadata["vfModuleModelInvariantUUID"]
- rbdef_version = vf_module.metadata["vfModuleModelUUID"]
- rbdef = Definition.get_definition_by_name_version(rbdef_name, rbdef_version)
- # Get k8s profile name from yaml service template
- vnf_parameters = self.get_vnf_parameters(vnf_instance.vnf.name)
- k8s_profile_name = ""
- for param in vnf_parameters:
- if param.name == "k8s-rb-profile-name":
- k8s_profile_name = param.value
- if k8s_profile_name == "":
- raise Exception("K8s profile deletion failed, missing rb profile name")
- ######## Delete profile for Definition ###################################
- try:
- profile = rbdef.get_profile_by_name(k8s_profile_name)
- profile.delete()
- except ValueError:
- self._logger.error("K8s profile deletion %s failed", k8s_profile_name)
- raise Exception("K8s profile deletion failed")
- super().cleanup()
diff --git a/src/onaptests/steps/instantiate/service_ala_carte.py b/src/onaptests/steps/instantiate/service_ala_carte.py
index 80473b7..b3b56c4 100644
--- a/src/onaptests/steps/instantiate/service_ala_carte.py
+++ b/src/onaptests/steps/instantiate/service_ala_carte.py
@@ -219,6 +219,7 @@ class YamlTemplateServiceAlaCarteInstantiateStep(YamlTemplateBaseStep):
Exception: Service cleaning failed
"""
+ super().cleanup()
service_deletion = self._service_instance.delete()
nb_try = 0
nb_try_max = 30
@@ -231,4 +232,3 @@ class YamlTemplateServiceAlaCarteInstantiateStep(YamlTemplateBaseStep):
else:
self._logger.error("Service deletion %s failed", self._service_instance_name)
raise Exception("Service cleanup failed")
- super().cleanup()
diff --git a/src/onaptests/steps/instantiate/vf_module_ala_carte.py b/src/onaptests/steps/instantiate/vf_module_ala_carte.py
index c1b2e23..14ef2d8 100644
--- a/src/onaptests/steps/instantiate/vf_module_ala_carte.py
+++ b/src/onaptests/steps/instantiate/vf_module_ala_carte.py
@@ -10,7 +10,6 @@ from onapsdk.so.instantiation import VnfParameter
from ..base import YamlTemplateBaseStep
from .vnf_ala_carte import YamlTemplateVnfAlaCarteInstantiateStep
-from .k8s_profile_create import K8SProfileStep
class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
"""Instantiate vf module a'la carte using YAML template."""
@@ -26,12 +25,7 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
self._yaml_template: dict = None
self._service_instance_name: str = None
self._service_instance: ServiceInstance = None
- if settings.CLOUD_REGION_TYPE == "k8s":
- self.add_step(K8SProfileStep(cleanup))
- else:
- self.add_step(YamlTemplateVnfAlaCarteInstantiateStep(cleanup))
-
-
+ self.add_step(YamlTemplateVnfAlaCarteInstantiateStep(cleanup))
@property
def yaml_template(self) -> dict:
@@ -93,7 +87,7 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
"""
# workaround, as VNF name differs from model name (added " 0")
- vnf_name = vnf_name.split()[0]
+ vnf_name=vnf_name.split()[0]
for vnf in self.yaml_template[self.service_name]["vnfs"]:
if vnf["vnf_name"] == vnf_name:
for vnf_parameter in vnf["vnf_parameters"]:
@@ -131,7 +125,7 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
cloud_region,
tenant,
self._service_instance_name,
- vnf_parameters=self.get_vnf_parameters(vnf_instance.vnf.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:
@@ -145,6 +139,7 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
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)
@@ -165,4 +160,3 @@ class YamlTemplateVfModuleAlaCarteInstantiateStep(YamlTemplateBaseStep):
else:
self._logger.error("VfModule deletion %s failed", vf_module.name)
raise Exception("Vf module cleanup failed")
- super().cleanup()
diff --git a/src/onaptests/steps/instantiate/vnf_ala_carte.py b/src/onaptests/steps/instantiate/vnf_ala_carte.py
index 9fa7576..0ab498d 100644
--- a/src/onaptests/steps/instantiate/vnf_ala_carte.py
+++ b/src/onaptests/steps/instantiate/vnf_ala_carte.py
@@ -119,6 +119,8 @@ class YamlTemplateVnfAlaCarteInstantiateStep(YamlTemplateBaseStep):
Exception: VNF cleaning failed
"""
+ super().cleanup()
+
for vnf_instance in self._service_instance.vnf_instances:
vnf_deletion = vnf_instance.delete()
nb_try = 0
@@ -133,4 +135,3 @@ class YamlTemplateVnfAlaCarteInstantiateStep(YamlTemplateBaseStep):
else:
self._logger.error("VNF deletion %s failed", vnf_instance.name)
raise Exception("VNF Cleanup failed")
- super().cleanup()