diff options
Diffstat (limited to 'src/onaptests/steps/onboard')
-rw-r--r-- | src/onaptests/steps/onboard/__init__.py | 0 | ||||
-rw-r--r-- | src/onaptests/steps/onboard/service.py | 88 | ||||
-rw-r--r-- | src/onaptests/steps/onboard/vendor.py | 19 | ||||
-rw-r--r-- | src/onaptests/steps/onboard/vf.py | 65 | ||||
-rw-r--r-- | src/onaptests/steps/onboard/vsp.py | 62 |
5 files changed, 234 insertions, 0 deletions
diff --git a/src/onaptests/steps/onboard/__init__.py b/src/onaptests/steps/onboard/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/onaptests/steps/onboard/__init__.py diff --git a/src/onaptests/steps/onboard/service.py b/src/onaptests/steps/onboard/service.py new file mode 100644 index 0000000..0143908 --- /dev/null +++ b/src/onaptests/steps/onboard/service.py @@ -0,0 +1,88 @@ +from yaml import load + +from onapsdk.configuration import settings +from onapsdk.sdc.service import Service +from onapsdk.sdc.vf import Vf + +from ..base import BaseStep, YamlTemplateBaseStep +from .vf import VfOnboardStep, YamlTemplateVfOnboardStep + + +class ServiceOnboardStep(BaseStep): + """Service onboard step.""" + + def __init__(self, cleanup=False): + """Initialize step. + + Substeps: + - VfOnboardStep. + """ + super().__init__(cleanup=cleanup) + self.add_step(VfOnboardStep(cleanup=cleanup)) + + def execute(self): + """Onboard service. + + Use settings values: + - VF_NAME, + - SERVICE_NAME. + + """ + super().execute() + vf: Vf = Vf(name=settings.VF_NAME) + service: Service = Service(name=settings.SERVICE_NAME, resources=[vf]) + service.onboard() + + +class YamlTemplateServiceOnboardStep(YamlTemplateBaseStep): + """Service onboard using YAML template step.""" + + def __init__(self, cleanup=False): + """Initialize step. + + Substeps: + - YamlTemplateVfOnboardStep. + """ + super().__init__(cleanup=cleanup) + self._yaml_template: dict = None + self.add_step(YamlTemplateVfOnboardStep(cleanup=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())) + else: + return self.parent.service_name + + def execute(self): + """Onboard service.""" + super().execute() + service: Service = Service(name=self.service_name, + resources=[Vf(name=vnf["vnf_name"]) \ + for vnf in self.yaml_template[self.name]["vnfs"]]) + service.onboard() diff --git a/src/onaptests/steps/onboard/vendor.py b/src/onaptests/steps/onboard/vendor.py new file mode 100644 index 0000000..8a4cb48 --- /dev/null +++ b/src/onaptests/steps/onboard/vendor.py @@ -0,0 +1,19 @@ +from onapsdk.configuration import settings +from onapsdk.sdc.vendor import Vendor + +from ..base import BaseStep + + +class VendorOnboardStep(BaseStep): + """Vendor onboard step.""" + + def execute(self): + """Onboard vendor. + + Use settings values: + - VENDOR_NAME. + + """ + super().execute() + vendor: Vendor = Vendor(name=settings.VENDOR_NAME) + vendor.onboard() diff --git a/src/onaptests/steps/onboard/vf.py b/src/onaptests/steps/onboard/vf.py new file mode 100644 index 0000000..6d19b9a --- /dev/null +++ b/src/onaptests/steps/onboard/vf.py @@ -0,0 +1,65 @@ +from onapsdk.configuration import settings +from onapsdk.sdc.vf import Vf +from onapsdk.sdc.vsp import Vsp + +from ..base import BaseStep, YamlTemplateBaseStep +from .vsp import VspOnboardStep, YamlTemplateVspOnboardStep + + +class VfOnboardStep(BaseStep): + """Vf onboard step.""" + + def __init__(self, cleanup=False): + """Initialize step. + + Substeps: + - VspOnboardStep. + """ + super().__init__(cleanup=cleanup) + self.add_step(VspOnboardStep(cleanup=cleanup)) + + def execute(self): + """Onboard Vf. + + Use settings values: + - VSP_NAME, + - VF_NAME. + + """ + super().execute() + vsp: Vsp = Vsp(name=settings.VSP_NAME) + vf: Vf = Vf(name=settings.VF_NAME, vsp=vsp) + vf.onboard() + + +class YamlTemplateVfOnboardStep(YamlTemplateBaseStep): + """Vf onboard using YAML template step.""" + + def __init__(self, cleanup=False) -> None: + """Initialize step. + + Substeps: + - YamlTemplateVspOnboardStep. + """ + super().__init__(cleanup=cleanup) + self.add_step(YamlTemplateVspOnboardStep(cleanup=cleanup)) + + @property + def yaml_template(self) -> dict: + """YAML template. + + Get YAML template from parent using it's name. + + Returns: + dict: YAML template + + """ + return self.parent.yaml_template[self.parent.name] + + def execute(self): + """Onboard Vfs from YAML template.""" + super().execute() + 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) + vf.onboard() diff --git a/src/onaptests/steps/onboard/vsp.py b/src/onaptests/steps/onboard/vsp.py new file mode 100644 index 0000000..f1eec1f --- /dev/null +++ b/src/onaptests/steps/onboard/vsp.py @@ -0,0 +1,62 @@ +from onapsdk.configuration import settings +from onapsdk.sdc.vendor import Vendor +from onapsdk.sdc.vsp import Vsp + +from ..base import BaseStep, YamlTemplateBaseStep +from .vendor import VendorOnboardStep + + +class VspOnboardStep(BaseStep): + """Vsp onboard step.""" + + def __init__(self, cleanup=False): + """Initialize step. + + Substeps: + - VendorOnboardStep. + """ + super().__init__(cleanup=cleanup) + self.add_step(VendorOnboardStep(cleanup=cleanup)) + + def execute(self): + """Onboard Vsp. + + Use settings values: + - VSP_NAME, + - VSP_FILE_PATH, + - VENDOR_NAME. + + """ + super().execute() + vendor: Vendor = Vendor(name=settings.VENDOR_NAME) + vsp: Vsp = Vsp(name=settings.VSP_NAME, vendor=vendor, package=open(settings.VSP_FILE_PATH, "rb")) + vsp.onboard() + + +class YamlTemplateVspOnboardStep(VspOnboardStep, YamlTemplateBaseStep): + """Vsp onboard using YAML template step.""" + + @property + def yaml_template(self) -> dict: + """YAML template. + + Get YAML template from parent. + + Returns: + dict: YAML template + + """ + return self.parent.yaml_template + + def execute(self): + """Onboard Vsps from YAML template. + + Use settings values: + - VENDOR_NAME. + """ + super().execute() + vendor: Vendor = Vendor(name=settings.VENDOR_NAME) + for vnf in self.yaml_template["vnfs"]: + with open(vnf["heat_files_to_upload"], "rb") as package: + vsp: Vsp = Vsp(name=f"{vnf['vnf_name']}_VSP", vendor=vendor, package=package) + vsp.onboard() |