Refactor dashboard data serialization and mock context for improved clarity
Some checks failed
CI / ci (push) Has been cancelled
Some checks failed
CI / ci (push) Has been cancelled
- Introduced `serialize_audit_for_response` and `serialize_current_cluster_for_template` functions to handle JSON serialization of audit and cluster data, enhancing data consistency for API responses and template rendering. - Updated `get_mock_context` in `mock_data.py` to utilize the new serialization functions, simplifying the mock data structure and improving readability. - Refactored `collect_context` and `collect_audits` in `views.py` to leverage the new serialization methods, ensuring a cleaner and more maintainable codebase. - Added unit tests for the new serialization functions to ensure correctness and reliability of data formatting.
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import json
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.http import JsonResponse
|
||||
@@ -10,6 +8,10 @@ from dashboard.openstack_utils.audits import get_audits, get_current_cluster_cpu
|
||||
from dashboard.openstack_utils.connect import check_openstack, get_connection
|
||||
from dashboard.openstack_utils.flavor import get_flavor_list
|
||||
from dashboard.prometheus_utils.query import check_prometheus, fetch_dashboard_metrics
|
||||
from dashboard.serializers import (
|
||||
serialize_audit_for_response,
|
||||
serialize_current_cluster_for_template,
|
||||
)
|
||||
from dashboard.stats import (
|
||||
CACHE_KEY_AUDITS,
|
||||
CACHE_KEY_CURRENT_CLUSTER,
|
||||
@@ -44,17 +46,9 @@ def collect_context():
|
||||
audits = get_audits(connection=connection)
|
||||
metrics = fetch_dashboard_metrics()
|
||||
context = build_stats(metrics, region_name, flavors)
|
||||
context["audits"] = audits
|
||||
context["audits"] = [serialize_audit_for_response(a) for a in audits]
|
||||
current_cluster = get_current_cluster_cpu(connection)
|
||||
context["current_cluster"] = {
|
||||
"host_labels": json.dumps(current_cluster["host_labels"]),
|
||||
"cpu_current": json.dumps(current_cluster["cpu_current"]),
|
||||
}
|
||||
for audit in context["audits"]:
|
||||
audit["migrations"] = json.dumps(audit["migrations"])
|
||||
audit["host_labels"] = json.dumps(audit["host_labels"])
|
||||
audit["cpu_current"] = json.dumps(audit["cpu_current"])
|
||||
audit["cpu_projected"] = json.dumps(audit["cpu_projected"])
|
||||
context["current_cluster"] = serialize_current_cluster_for_template(current_cluster)
|
||||
return context
|
||||
|
||||
|
||||
@@ -71,12 +65,7 @@ def collect_audits():
|
||||
"""Build audits list with serialized fields for frontend."""
|
||||
connection = get_connection()
|
||||
audits = get_audits(connection=connection)
|
||||
for audit in audits:
|
||||
audit["migrations"] = json.dumps(audit["migrations"])
|
||||
audit["host_labels"] = json.dumps(audit["host_labels"])
|
||||
audit["cpu_current"] = json.dumps(audit["cpu_current"])
|
||||
audit["cpu_projected"] = json.dumps(audit["cpu_projected"])
|
||||
return audits
|
||||
return [serialize_audit_for_response(a) for a in audits]
|
||||
|
||||
|
||||
def _skeleton_context():
|
||||
|
||||
Reference in New Issue
Block a user