'ns': 'instances'}
mandatory_for_create = {
'tenant': ("name", ),
- 'vnfd': ("name", "id", "connection-point", "vdu"),
+ 'vnfd': ("name", "id"),
'nsd': ("name", "id"),
'ns': ("name", "scenario", "datacenter"),
'vim': ("name", "vim_url"),
"""
ns_info = {}
for vnf in ns_descriptor["vnfs"]:
- if not vnf.get("ip_address"):
+ if not vnf.get("ip_address") and vnf.get("vms"):
raise ROClientException("ns member_vnf_index '{}' has no IP address".format(
vnf["member_vnf_index"]), http_code=409)
vnfr_info = {
vnfd_RO.pop("_admin", None)
if new_id:
vnfd_RO["id"] = new_id
- for vdu in vnfd_RO["vdu"]:
+ for vdu in vnfd_RO.get("vdu", ()):
if "cloud-init-file" in vdu:
base_folder = vnfd["_admin"]["storage"]
clout_init_file = "{}/{}/cloud_init/{}".format(
elif vnfd["mgmt-interface"].get("cp"):
mgmt_cp = vnfd["mgmt-interface"]["cp"]
- for vdu in vnfd.get("vdu"):
+ for vdu in vnfd.get("vdu", ()):
if vdu.get("vdu-configuration"):
vdu_needed_access.append(vdu["id"])
elif mgmt_cp:
# Deploy charms for each VDU that supports one.
vdu_index = 0
- for vdu in vnfd['vdu']:
+ for vdu in vnfd.get('vdu', ()):
vdu_config = vdu.get('vdu-configuration')
proxy_charm = None
config_primitive = None