in performance_prediction/util/util.py [0:0]
def summarize_packing_plans(packing_plan) -> Dict[int, tuple]:
# We assume that the resources of all instances are the same
# TODO: How do we factors in different container sizes + padding?
instance_count = {}
instance_cpu = {}
instance_ram = {}
instance_disk = {}
instance_task_ids = defaultdict(list)
result = {}
container_plans = packing_plan["container_plans"]
for container_plan in container_plans:
for instance in container_plan["instances"]:
comp_name = instance["component_name"]
count = instance_count.get(comp_name, 0) + 1
instance_count[comp_name] = count
if comp_name not in instance_cpu:
instance_cpu[comp_name] = instance["instance_resources"]["cpu"]
instance_ram[comp_name] = instance["instance_resources"]["ram"]
instance_disk[comp_name] = instance["instance_resources"]["disk"]
instance_task_ids[comp_name] = [instance["task_id"]]
else:
instance_task_ids[comp_name].append(instance["task_id"])
for comp_name in instance_count:
result[comp_name] = InstanceInfo(instance_count[comp_name], instance_cpu[comp_name],
instance_ram[comp_name], instance_disk[comp_name],
instance_task_ids[comp_name])
return result