VDU scaling
Change-Id: Iece9e0b9daad27144a2ca50add72c66366e107fa
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
diff --git a/osm_nbi/engine.py b/osm_nbi/engine.py
index 50d1bd1..aaa94f0 100644
--- a/osm_nbi/engine.py
+++ b/osm_nbi/engine.py
@@ -342,16 +342,22 @@
:param indata: descriptor with the parameters of the operation
:return: None
"""
+ def check_valid_vnf_member_index(member_vnf_index):
+ for vnf in nsr["nsd"]["constituent-vnfd"]:
+ if member_vnf_index == vnf["member-vnf-index"]:
+ break
+ else:
+ raise EngineException("Invalid parameter member_vnf_index='{}' is not one of the "
+ "nsd:constituent-vnfd".format(member_vnf_index))
+
if operation == "action":
if indata.get("vnf_member_index"):
indata["member_vnf_index"] = indata.pop("vnf_member_index") # for backward compatibility
- for vnf in nsr["nsd"]["constituent-vnfd"]:
- if indata["member_vnf_index"] == vnf["member-vnf-index"]:
- # TODO get vnfd, check primitives
- break
- else:
- raise EngineException("Invalid parameter member_vnf_index='{}' is not one of the nsd "
- "constituent-vnfd".format(indata["member_vnf_index"]))
+ check_valid_vnf_member_index(indata["member_vnf_index"])
+ # TODO get vnfd, check primitives
+ if operation == "scale":
+ check_valid_vnf_member_index(indata["scaleVnfData"]["scaleByStepData"]["member-vnf-index"])
+ # TODO check vnf scaling primitives
def _format_new_data(self, session, item, indata):
now = time()
@@ -624,9 +630,11 @@
vdur = {
"id": vdur_id,
"vdu-id-ref": vdu["id"],
+ # TODO "name": "" Name of the VDU in the VIM
"ip-address": None, # mgmt-interface filled by LCM
# "vim-id", "flavor-id", "image-id", "management-ip" # filled by LCM
"internal-connection-point": [],
+ "interfaces": [],
}
# TODO volumes: name, volume-id
for icp in vdu.get("internal-connection-point", ()):
@@ -638,6 +646,13 @@
# vim-id # TODO it would be nice having a vim port id
}
vdur["internal-connection-point"].append(vdu_icp)
+ for iface in vdu.get("interface", ()):
+ vdu_iface = {
+ "name": iface.get("name"),
+ # "ip-address", "mac-address" # filled by LCM
+ # vim-id # TODO it would be nice having a vim port id
+ }
+ vdur["interfaces"].append(vdu_iface)
vnfr_descriptor["vdur"].append(vdur)
step = "creating vnfr vnfd-id='{}' constituent-vnfd='{}' at database".format(