from http import HTTPStatus
from time import time
from copy import copy, deepcopy
-from validation import validate_input, ValidationError, ns_instantiate, ns_action, ns_scale, nsi_instantiate
-from base_topic import BaseTopic, EngineException, get_iterable
+from osm_nbi.validation import validate_input, ValidationError, ns_instantiate, ns_action, ns_scale, nsi_instantiate
+from osm_nbi.base_topic import BaseTopic, EngineException, get_iterable
# from descriptor_topics import DescriptorTopic
from yaml import safe_dump
from osm_common.dbbase import DbException
raise EngineException("Invalid parameter member_vnf_index='{}' is not one of the "
"nsd:constituent-vnfd".format(member_vnf_index))
+ def check_valid_vdu(vnfd, vdu_id):
+ for vdud in get_iterable(vnfd.get("vdu")):
+ if vdud["id"] == vdu_id:
+ return vdud
+ else:
+ raise EngineException("Invalid parameter vdu_id='{}' not present at vnfd:vdu:id".format(vdu_id))
+
def _check_vnf_instantiation_params(in_vnfd, vnfd):
for in_vdu in get_iterable(in_vnfd.get("vdu")):
indata["member_vnf_index"] = indata.pop("vnf_member_index") # for backward compatibility
if indata.get("member_vnf_index"):
vnfd = check_valid_vnf_member_index(indata["member_vnf_index"])
- descriptor_configuration = vnfd.get("vnf-configuration", {}).get("config-primitive")
+ if indata.get("vdu_id"):
+ vdud = check_valid_vdu(vnfd, indata["vdu_id"])
+ descriptor_configuration = vdud.get("vdu-configuration", {}).get("config-primitive")
+ else:
+ descriptor_configuration = vnfd.get("vnf-configuration", {}).get("config-primitive")
else: # use a NSD
descriptor_configuration = nsd.get("ns-configuration", {}).get("config-primitive")
# check primitive