return quota
+ nonlocal indata
+
flavor_data = {
"disk": int(target_flavor["storage-gb"]),
"ram": int(target_flavor["memory-mb"]),
numa = {}
extended = {}
+ target_vdur = None
+ for vnf in indata.get("vnf", []):
+ for vdur in vnf.get("vdur", []):
+ if vdur.get("ns-flavor-id") == target_flavor["id"]:
+ target_vdur = vdur
+
+ for storage in target_vdur.get("virtual-storages", []):
+ if (
+ storage.get("type-of-storage")
+ == "etsi-nfv-descriptors:ephemeral-storage"
+ ):
+ flavor_data["ephemeral"] = int(
+ storage.get("size-of-storage", 0)
+ )
+ elif (
+ storage.get("type-of-storage")
+ == "etsi-nfv-descriptors:swap-storage"
+ ):
+ flavor_data["swap"] = int(storage.get("size-of-storage", 0))
+
if target_flavor.get("guest-epa"):
extended = {}
epa_vcpu_set = False
"dhcp_start_address": ip_profile.get("dhcp-params", {}).get(
"start-address", None
),
- "dhcp_count": ip_profile.get("dhcp-params", {}).get(
- "count", None
- ),
+ "dhcp_count": ip_profile.get("dhcp-params", {}).get("count", None),
}
if ip_profile.get("dns-server"):
continue # interface not connected to any vld
extra_dict["depends_on"].append(net_text)
+
+ if "port-security-enabled" in interface:
+ interface["port_security"] = interface.pop(
+ "port-security-enabled"
+ )
+
+ if "port-security-disable-strategy" in interface:
+ interface["port_security_disable_strategy"] = interface.pop(
+ "port-security-disable-strategy"
+ )
+
net_item = {
x: v
for x, v in interface.items()
if ssh_keys:
cloud_config["key-pairs"] = ssh_keys
+ disk_list = None
+ if target_vdu.get("virtual-storages"):
+ disk_list = [
+ {"size": disk["size-of-storage"]}
+ for disk in target_vdu["virtual-storages"]
+ if disk.get("type-of-storage")
+ == "persistent-storage:persistent-storage"
+ ]
+
extra_dict["params"] = {
"name": "{}-{}-{}-{}".format(
indata["name"][:16],
"flavor_id": "TASK-" + flavor_text,
"net_list": net_list,
"cloud_config": cloud_config or None,
- "disk_list": None, # TODO
+ "disk_list": disk_list,
"availability_zone_index": None, # TODO
"availability_zone_list": None, # TODO
}