aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Jagiello <michal.jagiello@t-mobile.pl>2021-05-11 07:56:34 +0000
committerMorgan Richomme <morgan.richomme@orange.com>2021-05-17 16:39:04 +0000
commit1aeb51c2501c863bbea2e1332e878795f264df5a (patch)
tree19b5988f739b5d98dc5ca46040920195457c9352
parent44c4437d52355a4ba371f80ce68a12a7967b2cb4 (diff)
[TEST] Do not try to recreate already created SDC resources
When try to recreate SDC resources like VF, PNF or Service it's API returns errors. Check before onboarding if resource we want to create already exists. Issue-ID: TEST-333 Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl> Change-Id: Idcedfa18331ec898fa446d6d7689885a485a1a86 (cherry picked from commit 060210803b263b681e696bc40bdbe9f254d729db)
-rw-r--r--src/onaptests/configuration/basic_vm_macro_settings.py3
-rw-r--r--src/onaptests/steps/onboard/pnf.py40
-rw-r--r--src/onaptests/steps/onboard/service.py34
-rw-r--r--src/onaptests/steps/onboard/vf.py28
4 files changed, 58 insertions, 47 deletions
diff --git a/src/onaptests/configuration/basic_vm_macro_settings.py b/src/onaptests/configuration/basic_vm_macro_settings.py
index 7bce5db..adf3cd3 100644
--- a/src/onaptests/configuration/basic_vm_macro_settings.py
+++ b/src/onaptests/configuration/basic_vm_macro_settings.py
@@ -1,6 +1,7 @@
import os
import openstack
from pathlib import Path
+from uuid import uuid4
from yaml import load
@@ -57,4 +58,4 @@ try:
except (FileNotFoundError, ValueError):
raise onap_test_exceptions.TestConfigurationException
-SERVICE_INSTANCE_NAME = "basic_vm_macro_service_instance"
+SERVICE_INSTANCE_NAME = f"basic_macro_{str(uuid4())}"
diff --git a/src/onaptests/steps/onboard/pnf.py b/src/onaptests/steps/onboard/pnf.py
index 547e0c0..01f2248 100644
--- a/src/onaptests/steps/onboard/pnf.py
+++ b/src/onaptests/steps/onboard/pnf.py
@@ -49,14 +49,15 @@ class PnfOnboardStep(BaseStep):
super().execute()
vendor: Vendor = Vendor(name=settings.VENDOR_NAME)
pnf: Pnf = Pnf(name=settings.PNF_NAME, vendor=vendor)
- pnf.create()
- pnf.add_deployment_artifact(
- artifact_type=settings.PNF_ARTIFACT_TYPE,
- artifact_name=settings.PNF_ARTIFACT_NAME,
- artifact_label=settings.PNF_ARTIFACT_LABEL,
- artifact=settings.PNF_ARTIFACT_FILE_PATH
- )
- pnf.onboard()
+ if not pnf.created():
+ pnf.create()
+ pnf.add_deployment_artifact(
+ artifact_type=settings.PNF_ARTIFACT_TYPE,
+ artifact_name=settings.PNF_ARTIFACT_NAME,
+ artifact_label=settings.PNF_ARTIFACT_LABEL,
+ artifact=settings.PNF_ARTIFACT_FILE_PATH
+ )
+ pnf.onboard()
class YamlTemplatePnfOnboardStep(YamlTemplateBaseStep):
@@ -104,12 +105,17 @@ class YamlTemplatePnfOnboardStep(YamlTemplateBaseStep):
if "pnfs" in self.yaml_template:
vendor: Vendor = Vendor(name=settings.VENDOR_NAME)
for pnf in self.yaml_template["pnfs"]:
- pnf_obj: Pnf = Pnf(name=pnf["pnf_name"], vendor=vendor)
- pnf_obj.create()
- pnf_obj.add_deployment_artifact(
- artifact_type=pnf["pnf_artifact_type"],
- artifact_name=pnf["pnf_artifact_name"],
- artifact_label=pnf["pnf_artifact_label"],
- artifact=pnf["pnf_artifact_file_path"]
- )
- pnf_obj.onboard()
+ if "heat_files_to_upload" in pnf:
+ vsp: Vsp = Vsp(name=f"{pnf['pnf_name']}_VSP")
+ else:
+ vsp = None
+ pnf_obj: Pnf = Pnf(name=pnf["pnf_name"], vendor=vendor, vsp=vsp)
+ if not pnf_obj.created():
+ pnf_obj.create()
+ pnf_obj.add_deployment_artifact(
+ artifact_type=pnf["pnf_artifact_type"],
+ artifact_name=pnf["pnf_artifact_name"],
+ artifact_label=pnf["pnf_artifact_label"],
+ artifact=pnf["pnf_artifact_file_path"]
+ )
+ pnf_obj.onboard()
diff --git a/src/onaptests/steps/onboard/service.py b/src/onaptests/steps/onboard/service.py
index 6300a43..8a7303b 100644
--- a/src/onaptests/steps/onboard/service.py
+++ b/src/onaptests/steps/onboard/service.py
@@ -55,16 +55,17 @@ class ServiceOnboardStep(BaseStep):
"""
super().execute()
service: Service = Service(name=settings.SERVICE_NAME, instantiation_type=settings.SERVICE_INSTANTIATION_TYPE)
- service.create()
- if settings.VL_NAME != "":
- vl: Vl = Vl(name=settings.VL_NAME)
- service.add_resource(vl)
- if settings.VF_NAME != "":
- vf: Vf = Vf(name=settings.VF_NAME)
- service.add_resource(vf)
- if settings.PNF_NAME != "":
- pnf: Pnf = Pnf(name=settings.PNF_NAME)
- service.add_resource(pnf)
+ if not service.created():
+ service.create()
+ if settings.VL_NAME != "":
+ vl: Vl = Vl(name=settings.VL_NAME)
+ service.add_resource(vl)
+ if settings.VF_NAME != "":
+ vf: Vf = Vf(name=settings.VF_NAME)
+ service.add_resource(vf)
+ if settings.PNF_NAME != "":
+ pnf: Pnf = Pnf(name=settings.PNF_NAME)
+ service.add_resource(pnf)
# If the service is already distributed, do not try to checkin/onboard (replay of tests)
# checkin is done if needed
# If service is replayed, no need to try to re-onboard the model
@@ -141,12 +142,13 @@ class YamlTemplateServiceOnboardStep(YamlTemplateBaseStep):
else:
instantiation_type: ServiceInstantiationType = ServiceInstantiationType.A_LA_CARTE
service: Service = Service(name=self.service_name, instantiation_type=instantiation_type)
- service.create()
- self.declare_resources(service)
- self.assign_properties(service)
- # If the service is already distributed, do not try to checkin/onboard (replay of tests)
- # checkin is done if needed
- # If service is replayed, no need to try to re-onboard the model
+ if not service.created():
+ service.create()
+ self.declare_resources(service)
+ self.assign_properties(service)
+ # If the service is already distributed, do not try to checkin/onboard (replay of tests)
+ # checkin is done if needed
+ # If service is replayed, no need to try to re-onboard the model
if not service.distributed:
try:
service.checkin()
diff --git a/src/onaptests/steps/onboard/vf.py b/src/onaptests/steps/onboard/vf.py
index 5f5fc4d..c6582dd 100644
--- a/src/onaptests/steps/onboard/vf.py
+++ b/src/onaptests/steps/onboard/vf.py
@@ -40,7 +40,8 @@ class VfOnboardStep(BaseStep):
super().execute()
vsp: Vsp = Vsp(name=settings.VSP_NAME)
vf: Vf = Vf(name=settings.VF_NAME, vsp=vsp)
- vf.onboard()
+ if not vf.created():
+ vf.onboard()
class YamlTemplateVfOnboardStep(YamlTemplateBaseStep):
@@ -85,15 +86,16 @@ class YamlTemplateVfOnboardStep(YamlTemplateBaseStep):
for vnf in self.yaml_template["vnfs"]:
vsp: Vsp = Vsp(name=f"{vnf['vnf_name']}_VSP")
vf: Vf = Vf(name=vnf['vnf_name'], vsp=vsp)
- if all([x in vnf for x in ["vnf_artifact_type",
- "vnf_artifact_name",
- "vnf_artifact_label",
- "vnf_artifact_file_path"]]):
- vf.create()
- vf.add_deployment_artifact(
- artifact_type=vnf["vnf_artifact_type"],
- artifact_name=vnf["vnf_artifact_name"],
- artifact_label=vnf["vnf_artifact_label"],
- artifact=vnf["vnf_artifact_file_path"]
- )
- vf.onboard()
+ if not vf.created():
+ if all([x in vnf for x in ["vnf_artifact_type",
+ "vnf_artifact_name",
+ "vnf_artifact_label",
+ "vnf_artifact_file_path"]]):
+ vf.create()
+ vf.add_deployment_artifact(
+ artifact_type=vnf["vnf_artifact_type"],
+ artifact_name=vnf["vnf_artifact_name"],
+ artifact_label=vnf["vnf_artifact_label"],
+ artifact=vnf["vnf_artifact_file_path"]
+ )
+ vf.onboard()