diff options
author | 2020-07-16 19:16:42 +0200 | |
---|---|---|
committer | 2020-08-24 17:39:38 +0000 | |
commit | f9b0c349a5c83f9278f6b115d334598201d9d7e6 (patch) | |
tree | 474e0928dda4a7fd8340f27ab72bb5bee7683fce /src/onaptests/steps/onboard/vsp.py | |
parent | 9d674116f24285d68a80597202d393b74ac544ce (diff) |
First proposal for the structure for pythonsdk based scenarios
Issue-ID: TEST-240
Change-Id: Ic989b26442b868363af7b3872bff49dd70d78be0
Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl>
Diffstat (limited to 'src/onaptests/steps/onboard/vsp.py')
-rw-r--r-- | src/onaptests/steps/onboard/vsp.py | 62 |
1 files changed, 62 insertions, 0 deletions
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() |