diff options
author | Michal Jagiello <michal.jagiello@t-mobile.pl> | 2020-11-18 11:20:59 +0000 |
---|---|---|
committer | Morgan Richomme <morgan.richomme@orange.com> | 2020-12-04 07:53:29 +0000 |
commit | 0d1b490d0eb95948354a18bfced173f4f0a5c516 (patch) | |
tree | c31aad33ab61c6d19e9a98ce3ddaee659de967be /src/onaptests/steps | |
parent | 18fc0fe4de8fefc9ca5ed97abb3a7249bf12a07f (diff) |
CDS onboarding steps and simple CBA enrichment scenarion.
Steps for data dictionary upload and CBA enrichment
Issue-ID: TEST-245
Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl>
Change-Id: If7f3346c79ae97e35b21e919435270a0c54f77dd
(cherry picked from commit ac7ed508cd0ae434ac9237196a42045c5e7d6e92)
Diffstat (limited to 'src/onaptests/steps')
-rw-r--r-- | src/onaptests/steps/onboard/cds.py | 129 | ||||
-rw-r--r-- | src/onaptests/steps/reports_collection.py | 4 |
2 files changed, 131 insertions, 2 deletions
diff --git a/src/onaptests/steps/onboard/cds.py b/src/onaptests/steps/onboard/cds.py new file mode 100644 index 0000000..ed381ad --- /dev/null +++ b/src/onaptests/steps/onboard/cds.py @@ -0,0 +1,129 @@ +# http://www.apache.org/licenses/LICENSE-2.0 +"""CDS onboard module.""" + +from abc import ABC +from pathlib import Path + +from kubernetes import client, config +from onapsdk.cds import Blueprint, DataDictionarySet +from onapsdk.cds.blueprint_processor import Blueprintprocessor +from onapsdk.configuration import settings + +from ..base import BaseStep + + +class CDSBaseStep(BaseStep, ABC): + """Abstract CDS base step.""" + + @property + def component(self) -> str: + """Component name.""" + return "CDS" + + +class ExposeCDSBlueprintprocessorNodePortStep(CDSBaseStep): + """Expose CDS blueprintsprocessor port.""" + + @property + def description(self) -> str: + """Step description.""" + return "Expose CDS blueprintsprocessor NodePort." + + @BaseStep.store_state + def execute(self) -> None: + """Expose CDS blueprintprocessor port using kubernetes client. + + Use settings values: + - K8S_CONFIG, + - K8S_NAMESPACE. + + """ + super().execute() + config.load_kube_config(settings.K8S_CONFIG) + k8s_client = client.CoreV1Api() + k8s_client.patch_namespaced_service( + "cds-blueprints-processor-http", + settings.K8S_NAMESPACE, + {"spec": {"ports": [{"port": 8080, "nodePort": 30449}], "type": "NodePort"}} + ) + + +class BootstrapBlueprintprocessor(CDSBaseStep): + """Bootstrap blueprintsprocessor.""" + + def __init__(self, cleanup: bool = False) -> None: + super().__init__(cleanup=cleanup) + self.add_step(ExposeCDSBlueprintprocessorNodePortStep(cleanup=cleanup)) + + @property + def description(self) -> str: + """Step description.""" + return "Bootstrap CDS blueprintprocessor" + + @BaseStep.store_state + def execute(self) -> None: + """Bootsrap CDS blueprintprocessor""" + super().execute() + Blueprintprocessor.bootstrap() + + +class DataDictionaryUploadStep(CDSBaseStep): + """Upload data dictionaries to CDS step.""" + + def __init__(self, cleanup: bool = False) -> None: + """Initialize data dictionary upload step.""" + super().__init__(cleanup=cleanup) + self.add_step(BootstrapBlueprintprocessor(cleanup=cleanup)) + + @property + def description(self) -> str: + """Step description.""" + return "Upload data dictionaries to CDS." + + @BaseStep.store_state + def execute(self) -> None: + """Upload data dictionary to CDS. + + Use settings values: + - CDS_DD_FILE. + + """ + super().execute() + dd_set: DataDictionarySet = DataDictionarySet.load_from_file(settings.CDS_DD_FILE) + dd_set.upload() + + +class CbaEnrichStep(CDSBaseStep): + """Enrich CBA file step.""" + + def __init__(self, cleanup=False) -> None: + """Initialize CBA enrichment step.""" + super().__init__(cleanup=cleanup) + self.add_step(DataDictionaryUploadStep(cleanup=cleanup)) + + @property + def description(self) -> str: + """Step description.""" + return "Enrich CBA file." + + @BaseStep.store_state + def execute(self) -> None: + """Enrich CBA file. + + Use settings values: + - CDS_DD_FILE. + + """ + super().execute() + blueprint: Blueprint = Blueprint.load_from_file(settings.CDS_CBA_UNENRICHED) + blueprint.enrich() + blueprint.save(settings.CDS_CBA_ENRICHED) + + def cleanup(self) -> None: + """Cleanup enrichment step. + + Delete enriched CBA file. + + """ + super().cleanup() + Path(settings.CDA_CBA_ENRICHED).unlink() diff --git a/src/onaptests/steps/reports_collection.py b/src/onaptests/steps/reports_collection.py index e1eae51..4e19012 100644 --- a/src/onaptests/steps/reports_collection.py +++ b/src/onaptests/steps/reports_collection.py @@ -63,12 +63,12 @@ class ReportsCollection: usecase = settings.SERVICE_NAME try: details = settings.SERVICE_DETAILS - except (KeyError, NameError): + except (KeyError, AttributeError): details = "" try: components = settings.SERVICE_COMPONENTS - except (KeyError, NameError): + except (KeyError, AttributeError): components = "" jinja_env = Environment( |