ns_request["nsr_id"] = nsr_id
if ns_request and ns_request.get("config-units"):
nsr_descriptor["config-units"] = ns_request["config-units"]
-
# Create vld
if nsd.get("virtual-link-desc"):
nsr_vld = deepcopy(nsd.get("virtual-link-desc", []))
additional_params, vdu_params = self._format_additional_params(
ns_request, vnf_index, vdu_id=vdu["id"], descriptor=vnfd
)
+
+ try:
+ vdu_virtual_storage_descriptors = utils.filter_in_list(
+ vnfd.get("virtual-storage-desc", []),
+ lambda stg_desc: stg_desc["id"] in vdu["virtual-storage-desc"]
+ )
+ except Exception:
+ vdu_virtual_storage_descriptors = []
vdur = {
"vdu-id-ref": vdu["id"],
# TODO "name": "" Name of the VDU in the VIM
"interfaces": [],
"additionalParams": additional_params,
"vdu-name": vdu["name"],
+ "virtual-storages": vdu_virtual_storage_descriptors
}
if vdu_params and vdu_params.get("config-units"):
vdur["config-units"] = vdu_params["config-units"]
)
vim_accounts.append(vim_account)
+ def _get_vim_account(self, vim_id: str, session):
+ try:
+ db_filter = self._get_project_filter(session)
+ db_filter["_id"] = vim_id
+ return self.db.get_one("vim_accounts", db_filter)
+ except Exception:
+ raise EngineException(
+ "Invalid vimAccountId='{}' not present for the project".format(
+ vim_id
+ )
+ )
+
def _check_valid_wim_account(self, wim_account, wim_accounts, session):
if not isinstance(wim_account, str):
return
# update vim-account-id
vim_account = indata["vimAccountId"]
- vca_id = indata.get("vcaId")
+ vca_id = self._get_vim_account(vim_account, session).get("vca")
# check instantiate parameters
for vnf_inst_params in get_iterable(indata.get("vnf")):
if vnf_inst_params["member-vnf-index"] != member_vnf_index:
continue
if vnf_inst_params.get("vimAccountId"):
vim_account = vnf_inst_params.get("vimAccountId")
- if vnf_inst_params.get("vcaId"):
- vca_id = vnf_inst_params.get("vcaId")
+ vca_id = self._get_vim_account(vim_account, session).get("vca")
# get vnf.vdu.interface instantiation params to update vnfr.vdur.interfaces ip, mac
for vdu_inst_param in get_iterable(vnf_inst_params.get("vdu")):