blob: 014390846065b0416a8cbf165eb421fb0e47a0f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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()
|