From 07a4a7084d7fc149b8a491b5ef342cb8a9ca8e32 Mon Sep 17 00:00:00 2001 From: Michal Jagiello Date: Mon, 12 Apr 2021 09:08:46 +0000 Subject: [PATCH] Wait for pnf simulator Add VSP for PNF Issue-ID: TEST-280 Signed-off-by: Michal Jagiello Change-Id: If2476f5f9f9fc8d4c14c5dd398a8a659e7fe3e9a --- src/onaptests/configuration/pnf_macro_settings.py | 50 +++++++++ src/onaptests/steps/onboard/pnf.py | 13 ++- src/onaptests/steps/onboard/vsp.py | 9 ++ .../simulator/pnf_simulator_cnf/pnf_register.py | 118 +++++++++++++++++++++ src/onaptests/templates/artifacts/pNF.csar | Bin 0 -> 22327 bytes .../templates/vnf-services/pnf-service.yaml | 13 +++ 6 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 src/onaptests/configuration/pnf_macro_settings.py create mode 100644 src/onaptests/steps/simulator/pnf_simulator_cnf/pnf_register.py create mode 100755 src/onaptests/templates/artifacts/pNF.csar create mode 100644 src/onaptests/templates/vnf-services/pnf-service.yaml diff --git a/src/onaptests/configuration/pnf_macro_settings.py b/src/onaptests/configuration/pnf_macro_settings.py new file mode 100644 index 0000000..e979188 --- /dev/null +++ b/src/onaptests/configuration/pnf_macro_settings.py @@ -0,0 +1,50 @@ +from pathlib import Path +from uuid import uuid4 + +from .settings import * # pylint: disable=W0614 + +ONLY_INSTANTIATE = False +CLEANUP_FLAG = True +USE_MULTICLOUD = False + +VENDOR_NAME = "pnf_macro_vendor" +SERVICE_NAME = "test_pnf_macro" +SERVICE_INSTANCE_NAME = "TestPNFMacroInstantiation" +SERVICE_YAML_TEMPLATE = Path(Path(__file__).parent.parent, + "templates/vnf-services/pnf-service.yaml") + +CDS_DD_FILE = Path(Path(__file__).parent.parent, + "templates/artifacts/dd.json") +CDS_CBA_UNENRICHED = Path(Path(__file__).parent.parent, + "templates/artifacts/PNF_DEMO.zip") +CDS_CBA_ENRICHED = "/tmp/PNF_DEMO_enriched.zip" + +CLOUD_REGION_CLOUD_OWNER = "basicnf-owner" # must not contain _ +CLOUD_REGION_ID = "k8sregion" +CLOUD_REGION_TYPE = "k8s" +CLOUD_REGION_VERSION = "1.0" +CLOUD_OWNER_DEFINED_TYPE = "N/A" +COMPLEX_PHYSICAL_LOCATION_ID = "sdktests" +GLOBAL_CUSTOMER_ID = "pnf_macrocustomer" +OWNING_ENTITY = "pnf_macro_owning_entity" +PROJECT = "pnf_macro_project" +LINE_OF_BUSINESS = "pnf_macro_line_of_business" +PLATFORM = "pnf_macro_platform" + +INSTANTIATION_TIMEOUT = 600 + +PNF_DEFINITION_ATRIFACT_FILE_PATH = Path(Path(__file__).parent.parent, + "templates/artifacts/pnf-simulator.tar.gz") +PNF_RB_NAME = f"pnf-cnf-rb-{str(uuid4())}" +PNF_RB_VERSION = "v1" +PNF_PROFILE_ARTIFACT_FILE_PATH = Path(Path(__file__).parent.parent, + "templates/artifacts/profile.tar.gz") +PNF_PROFILE_NAME = f"pnf-cnf-profile-{str(uuid4())}" +K8S_VERSION = "1.0" +K8S_CONFIG = str(Path(Path(__file__).parent.parent, "templates/artifacts/config")) + +SERVICE_INSTANCE_NAME = "TestPNFMacroInstantiation" + +DCAE_VES_COLLECTOR_POD_NAME = "xdcae-ves-collector" +PNF_WAIT_TIME = 60.0 +PNF_REGISTRATION_NUMBER_OF_TRIES = 5 diff --git a/src/onaptests/steps/onboard/pnf.py b/src/onaptests/steps/onboard/pnf.py index 12f2561..458ba56 100644 --- a/src/onaptests/steps/onboard/pnf.py +++ b/src/onaptests/steps/onboard/pnf.py @@ -3,8 +3,9 @@ from onapsdk.configuration import settings from onapsdk.sdc.pnf import Pnf from onapsdk.sdc.vendor import Vendor +from onapsdk.sdc.vsp import Vsp from ..base import BaseStep, YamlTemplateBaseStep -from .vendor import VendorOnboardStep +from .vsp import VspOnboardStep, YamlTemplateVspOnboardStep class PnfOnboardStep(BaseStep): @@ -21,7 +22,7 @@ class PnfOnboardStep(BaseStep): """ super().__init__(cleanup=cleanup) - self.add_step(VendorOnboardStep(cleanup=cleanup)) + self.add_step(VspOnboardStep(cleanup=cleanup)) @property def description(self) -> str: @@ -72,7 +73,7 @@ class YamlTemplatePnfOnboardStep(YamlTemplateBaseStep): """ super().__init__(cleanup=cleanup) - self.add_step(VendorOnboardStep(cleanup=cleanup)) + self.add_step(YamlTemplateVspOnboardStep(cleanup=cleanup)) @property def description(self) -> str: @@ -103,7 +104,11 @@ 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) + 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) pnf_obj.create() pnf_obj.add_deployment_artifact( artifact_type=pnf["pnf_artifact_type"], diff --git a/src/onaptests/steps/onboard/vsp.py b/src/onaptests/steps/onboard/vsp.py index 18f73d8..6f8fbf6 100644 --- a/src/onaptests/steps/onboard/vsp.py +++ b/src/onaptests/steps/onboard/vsp.py @@ -96,3 +96,12 @@ class YamlTemplateVspOnboardStep(YamlTemplateBaseStep): vendor=vendor, package=package) vsp.onboard() + elif "pnfs" in self.yaml_template: + for pnf in self.yaml_template["pnfs"]: + if "heat_files_to_upload" in pnf: + with open( + sys.path[-1] + "/" + pnf["heat_files_to_upload"], "rb") as package: + vsp: Vsp = Vsp(name=f"{pnf['pnf_name']}_VSP", + vendor=vendor, + package=package) + vsp.onboard() diff --git a/src/onaptests/steps/simulator/pnf_simulator_cnf/pnf_register.py b/src/onaptests/steps/simulator/pnf_simulator_cnf/pnf_register.py new file mode 100644 index 0000000..c1d76b0 --- /dev/null +++ b/src/onaptests/steps/simulator/pnf_simulator_cnf/pnf_register.py @@ -0,0 +1,118 @@ +# http://www.apache.org/licenses/LICENSE-2.0 +"""PNF simulator registration module.""" + +import time +from typing import Tuple + +import requests +from kubernetes import client, config, watch +from onapsdk.configuration import settings + +from onaptests.steps.base import BaseStep +from onaptests.steps.instantiate.msb_k8s import CreateInstanceStep +from onaptests.utils.exceptions import EnvironmentPreparationException, OnapTestException + + +class PnfSimulatorCnfRegisterStep(BaseStep): + """PNF simulator registration step.""" + + def __init__(self, cleanup: bool = False) -> None: + """Initialize step. + + Substeps: + - CreateInstanceStep. + """ + super().__init__(cleanup=cleanup) + self.add_step(CreateInstanceStep(cleanup=cleanup)) + + @property + def description(self) -> str: + """Step description.""" + return "Register PNF simulator with VES." + + @property + def component(self) -> str: + """Component name.""" + return "Environment" + + @staticmethod + def is_pnf_pod_running(timeout_seconds=120) -> bool: + """Check if PNF simulator pod is running. + + Args: + timeout_seconds (int, optional): Timeout. Defaults to 120. + + Returns: + bool: True if PNF simulator pod is running, False otherwise + + """ + config.load_kube_config(settings.K8S_CONFIG) + k8s_client: "CoreV1API" = client.CoreV1Api() + k8s_watch: "Watch" = watch.Watch() + for event in k8s_watch.stream(k8s_client.list_namespaced_pod, + namespace=settings.K8S_NAMESPACE, + timeout_seconds=timeout_seconds): + if event["object"].metadata.name == "pnf-simulator": + if not event["object"].status.phase in ["Pending", "Running"]: + # Invalid pod state + return False + return event["object"].status.phase == "Running" + return False + + @staticmethod + def get_ves_ip_and_port() -> Tuple[str, str]: + """Static method to get VES ip address and port. + + Raises: + EnvironmentPreparationException: VES pod is not running + + Returns: + Tuple[str, str]: VES IP and port + + """ + config.load_kube_config(settings.K8S_CONFIG) + k8s_client: "CoreV1API" = client.CoreV1Api() + for service in k8s_client.list_namespaced_service(namespace=settings.K8S_NAMESPACE).items: + if service.metadata.name == settings.DCAE_VES_COLLECTOR_POD_NAME: + return service.spec.cluster_ip, service.spec.ports[0].port + raise EnvironmentPreparationException("Couldn't get VES ip and port") + + @BaseStep.store_state + def execute(self) -> None: + """Send PNF registration event.""" + super().execute() + if not self.is_pnf_pod_running(): + EnvironmentPreparationException("PNF simulator is not running") + time.sleep(settings.PNF_WAIT_TIME) # Let's still wait for PNF simulator to make sure it's initialized + ves_ip, ves_port = self.get_ves_ip_and_port() + registration_number: int = 0 + registered_successfully: bool = False + while registration_number < settings.PNF_REGISTRATION_NUMBER_OF_TRIES and not registered_successfully: + try: + response = requests.post( + "http://portal.api.simpledemo.onap.org:30999/simulator/start", + json={ + "simulatorParams": { + "repeatCount": 9999, + "repeatInterval": 30, + "vesServerUrl": f"https://{ves_ip}:{ves_port}/eventListener/v7" + }, + "templateName": "registration.json", + "patch": { + "event": { + "commonEventHeader": { + "sourceName": settings.SERVICE_INSTANCE_NAME + } + } + } + } + ) + response.raise_for_status() + registered_successfully = True + self._logger.info(f"PNF registered with {settings.SERVICE_INSTANCE_NAME} source name") + except requests.HTTPError as http_error: + self._logger.debug(f"Can't connect with PNF simulator: {str(http_error)}") + registration_number = registration_number + 1 + time.sleep(settings.PNF_WAIT_TIME) + if not registered_successfully: + raise OnapTestException("PNF not registered successfully") diff --git a/src/onaptests/templates/artifacts/pNF.csar b/src/onaptests/templates/artifacts/pNF.csar new file mode 100755 index 0000000000000000000000000000000000000000..76935069a4f7949b60dab2e58587502170fe7076 GIT binary patch literal 22327 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 Dyo>2T literal 0 HcmV?d00001 diff --git a/src/onaptests/templates/vnf-services/pnf-service.yaml b/src/onaptests/templates/vnf-services/pnf-service.yaml new file mode 100644 index 0000000..2dcdfbb --- /dev/null +++ b/src/onaptests/templates/vnf-services/pnf-service.yaml @@ -0,0 +1,13 @@ +--- +test_pnf_macro: + tosca_file_from_SDC: service-basic_network-template + version: "1.0" + subscription_type: "net" + instantiation_type: "Macro" + pnfs: + - pnf_name: "test-pnf" + heat_files_to_upload: onaptests/templates/artifacts/pNF.csar + pnf_artifact_type: "CONTROLLER_BLUEPRINT_ARCHIVE" + pnf_artifact_name: "CBA_enriched.zip" + pnf_artifact_label: "cbapnf" + pnf_artifact_file_path: "/tmp/PNF_DEMO_enriched.zip" -- 2.16.6