+ 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"]))
+