from collections import Counter from openstack.connection import Connection def get_flavor_list(connection: Connection) -> dict: servers = list(connection.compute.servers(all_projects=True)) flavor_ids = [s.flavor["id"] for s in servers if "id" in s.flavor] flavor_count = Counter(flavor_ids).most_common() flavors = list(flavor_count) result = {} placeholder = {"name": "—", "count": 0} for idx, prefix in [(0, "first"), (1, "second"), (2, "third")]: if len(flavors) > idx: result[f"{prefix}_common_flavor"] = {"name": flavors[idx][0], "count": flavors[idx][1]} else: result[f"{prefix}_common_flavor"] = placeholder return result