Some checks failed
CI / ci (push) Failing after 14s
- Standardized string quotes across multiple files to use double quotes for consistency. - Improved formatting of JSON dumps in mock data for better readability. - Enhanced the structure of various functions and data definitions for clarity. - Updated test cases to reflect changes in data structure and ensure accuracy.
22 lines
732 B
Python
22 lines
732 B
Python
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
|