- Updated .dockerignore and .gitignore for better file management. - Introduced .env.example for environment variable configuration. - Added docker-compose.dev.yml for development with mock data and live reload. - Enhanced Dockerfile to include necessary dependencies and entrypoint script. - Created mock_data.py to provide sample data for testing without OpenStack/Prometheus. - Added unit tests for template filters in dashboard. - Cleaned up various files for consistency and improved readability.
24 lines
779 B
Python
24 lines
779 B
Python
from openstack.connection import Connection
|
|
|
|
from collections import Counter
|
|
|
|
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
|