- if os.path.isabs(vdu.image):
- vnfc["VNFC image"] = vdu.image
- else:
- vnfc["image name"] = vdu.image
- if vdu.has_field("image_checksum"):
- vnfc["image checksum"] = vdu.image_checksum
-
- numa_node_policy = vdu.guest_epa.numa_node_policy
- if numa_node_policy.has_field("node"):
- numa_node = numa_node_policy.node[0]
-
- if numa_node.has_field("paired_threads"):
- if numa_node.paired_threads.has_field("num_paired_threads"):
- vnfc["numas"][0]["paired-threads"] = numa_node.paired_threads.num_paired_threads
- if len(numa_node.paired_threads.paired_thread_ids) > 0:
- vnfc["numas"][0]["paired-threads-id"] = []
- for pair in numa_node.paired_threads.paired_thread_ids:
- vnfc["numas"][0]["paired-threads-id"].append(
- [pair.thread_a, pair.thread_b]
- )
+ if vdu.vm_flavor.has_field("storage_gb") and vdu.vm_flavor.storage_gb:
+ vnfc["disk"] = vdu.vm_flavor.storage_gb
+
+ if vdu.has_field("image"):
+ if os.path.isabs(vdu.image):
+ vnfc["VNFC image"] = vdu.image
+ else:
+ vnfc["image name"] = vdu.image
+ if vdu.has_field("image_checksum"):
+ vnfc["image checksum"] = vdu.image_checksum
+
+ dedicated_int = False
+ for intf in list(vdu.internal_interface) + list(vdu.external_interface):
+ if intf.virtual_interface.type_yang in ["SR_IOV", "PCI_PASSTHROUGH"]:
+ dedicated_int = True
+ if vdu.guest_epa.has_field("numa_node_policy") or dedicated_int:
+ vnfc["numas"] = [{
+ "memory": max(int(vdu.vm_flavor.memory_mb/1024), 1),
+ "interfaces":[],
+ }]
+ numa_node_policy = vdu.guest_epa.numa_node_policy
+ if numa_node_policy.has_field("node"):
+ numa_node = numa_node_policy.node[0]
+
+ if numa_node.has_field("paired_threads"):
+ if numa_node.paired_threads.has_field("num_paired_threads"):
+ vnfc["numas"][0]["paired-threads"] = numa_node.paired_threads.num_paired_threads
+ if len(numa_node.paired_threads.paired_thread_ids) > 0:
+ vnfc["numas"][0]["paired-threads-id"] = []
+ for pair in numa_node.paired_threads.paired_thread_ids:
+ vnfc["numas"][0]["paired-threads-id"].append(
+ [pair.thread_a, pair.thread_b]
+ )
+
+ else:
+ if vdu.vm_flavor.has_field("vcpu_count"):
+ vnfc["numas"][0]["cores"] = max(vdu.vm_flavor.vcpu_count, 1)