raise EngineException("Invalid parameter member_vnf_index='{}' is not one of the "
"nsd:constituent-vnfd".format(member_vnf_index))
+ def _check_vnf_instantiation_params(in_vnfd, vnfd):
+
+ for in_vdu in get_iterable(in_vnfd.get("vdu")):
+ for vdu in get_iterable(vnfd.get("vdu")):
+ if in_vdu["id"] == vdu["id"]:
+ for volume in get_iterable(in_vdu.get("volume")):
+ for volumed in get_iterable(vdu.get("volumes")):
+ if volumed["name"] == volume["name"]:
+ break
+ else:
+ raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:vdu[id='{}']:"
+ "volume:name='{}' is not present at vnfd:vdu:volumes list".
+ format(in_vnf["member-vnf-index"], in_vdu["id"],
+ volume["name"]))
+ for in_iface in get_iterable(in_vdu["interface"]):
+ for iface in get_iterable(vdu.get("interface")):
+ if in_iface["name"] == iface["name"]:
+ break
+ else:
+ raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:vdu[id='{}']:"
+ "interface[name='{}'] is not present at vnfd:vdu:interface"
+ .format(in_vnf["member-vnf-index"], in_vdu["id"],
+ in_iface["name"]))
+ break
+ else:
+ raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:vdu[id='{}'] is is not present "
+ "at vnfd:vdu".format(in_vnf["member-vnf-index"], in_vdu["id"]))
+
+ for in_ivld in get_iterable(in_vnfd.get("internal-vld")):
+ for ivld in get_iterable(vnfd.get("internal-vld")):
+ if in_ivld["name"] == ivld["name"] or in_ivld["name"] == ivld["id"]:
+ for in_icp in get_iterable(in_ivld["internal-connection-point"]):
+ for icp in ivld["internal-connection-point"]:
+ if in_icp["id-ref"] == icp["id-ref"]:
+ break
+ else:
+ raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:internal-vld[name"
+ "='{}']:internal-connection-point[id-ref:'{}'] is not present at "
+ "vnfd:internal-vld:name/id:internal-connection-point"
+ .format(in_vnf["member-vnf-index"], in_ivld["name"],
+ in_icp["id-ref"], vnfd["id"]))
+ break
+ else:
+ raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:internal-vld:name='{}'"
+ " is not present at vnfd '{}'".format(in_vnf["member-vnf-index"],
+ in_ivld["name"], vnfd["id"]))
+
def check_valid_vim_account(vim_account):
if vim_account in vim_accounts:
return
check_valid_vim_account(indata["vimAccountId"])
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)
if in_vnf.get("vimAccountId"):
check_valid_vim_account(in_vnf["vimAccountId"])
- for in_vdu in get_iterable(in_vnf.get("vdu")):
- for vdud in get_iterable(vnfd.get("vdu")):
- if vdud["id"] == in_vdu["id"]:
- for volume in get_iterable(in_vdu.get("volume")):
- for volumed in get_iterable(vdud.get("volumes")):
- if volumed["name"] == volume["name"]:
- break
- else:
- raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:vdu[id='{}']:"
- "volume:name='{}' is not present at vnfd:vdu:volumes list".
- format(in_vnf["member-vnf-index"], in_vdu["id"],
- volume["name"]))
- break
- else:
- raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:vdu:id='{}' is not "
- "present at vnfd".format(in_vnf["member-vnf-index"], in_vdu["id"]))
-
- for in_internal_vld in get_iterable(in_vnf.get("internal-vld")):
- for internal_vldd in get_iterable(vnfd.get("internal-vld")):
- if in_internal_vld["name"] == internal_vldd["name"] or \
- in_internal_vld["name"] == internal_vldd["id"]:
- break
- else:
- raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:internal-vld:name='{}'"
- " is not present at vnfd '{}'".format(in_vnf["member-vnf-index"],
- in_internal_vld["name"],
- vnfd["id"]))
+
for in_vld in get_iterable(indata.get("vld")):
for vldd in get_iterable(nsd.get("vld")):
if in_vld["name"] == vldd["name"] or in_vld["name"] == vldd["id"]: