"""
vnfds = {}
vim_accounts = []
+ wim_accounts = []
nsd = nsr["nsd"]
def check_valid_vnf_member_index(member_vnf_index):
raise EngineException("Invalid vimAccountId='{}' not present for the project".format(vim_account))
vim_accounts.append(vim_account)
+ def check_valid_wim_account(wim_account):
+ if not isinstance(wim_account, str):
+ return
+ elif wim_account in wim_accounts:
+ return
+ try:
+ db_filter = self._get_project_filter(session, write=False, show_all=True)
+ db_filter["_id"] = wim_account
+ self.db.get_one("wim_accounts", db_filter)
+ except Exception:
+ raise EngineException("Invalid wimAccountId='{}' not present for the project".format(wim_account))
+ wim_accounts.append(wim_account)
+
if operation == "action":
# check vnf_member_index
if indata.get("vnf_member_index"):
if operation == "instantiate":
# check vim_account
check_valid_vim_account(indata["vimAccountId"])
+ check_valid_wim_account(indata.get("wimAccountId"))
for in_vnf in get_iterable(indata.get("vnf")):
vnfd = check_valid_vnf_member_index(in_vnf["member-vnf-index"])
_check_vnf_instantiation_params(in_vnf, vnfd)
check_valid_vim_account(in_vnf["vimAccountId"])
for in_vld in get_iterable(indata.get("vld")):
+ check_valid_wim_account(in_vld.get("wimAccountId"))
for vldd in get_iterable(nsd.get("vld")):
if in_vld["name"] == vldd["name"] or in_vld["name"] == vldd["id"]:
break
indata_ns["vimAccountId"] = slice_request.get("vimAccountId")
indata_ns["nsDescription"] = service["description"]
indata_ns["key-pair-ref"] = None
- for additional_params_subnet in get_iterable(slice_request.get("additionalParamsForSubnet")):
- if additional_params_subnet["id"] == service["id"]:
- if additional_params_subnet.get("additionalParamsForNs"):
- indata_ns["additionalParamsForNs"] = additional_params_subnet["additionalParamsForNs"]
- if additional_params_subnet.get("additionalParamsForVnf"):
- indata_ns["additionalParamsForVnf"] = additional_params_subnet["additionalParamsForVnf"]
- break
# NsrTopic(rollback, session, indata_ns, kwargs, headers, force)
# Overwriting ns_params filtering by nsName == netslice-subnet.id
copy_ns_param = deepcopy(ns_param)
del copy_ns_param["id"]
indata_ns.update(copy_ns_param)
- # TODO: Improve network selection via networkID
+ break
+
# Override the instantiation parameters for netslice-vld provided by user
if nsi_vlds:
indata_ns_list = []