"""Mock context for dashboard when USE_MOCK_DATA is enabled (no OpenStack/Prometheus).""" import json def get_mock_context(): """Return a context dict with the same structure as collect_context(), render-ready.""" hosts_total = 6 pcpu_total = 48 pcpu_usage = 12.5 vcpu_allocated = 96 vcpu_overcommit_max = 2.0 pram_total = 256 * 1024**3 # 256 GB in bytes pram_usage = 120 * 1024**3 vram_allocated = 192 * 1024**3 vram_overcommit_max = 1.5 vm_count = 24 vm_active = 22 vcpu_total = pcpu_total * vcpu_overcommit_max vram_total = pram_total * vram_overcommit_max # Two sample audits with serialized fields for JS host_labels = ["compute-0", "compute-1", "compute-2", "compute-3", "compute-4", "compute-5"] cpu_current = [45.2, 38.1, 52.0, 41.3, 29.8, 48.5] cpu_projected = [42.0, 40.0, 48.0, 44.0, 35.0, 46.0] audits = [ { "id": "mock-audit-uuid-1", "name": "Mock audit (balanced)", "created_at": "2025-02-01T10:00:00", "strategy": "Balanced", "goal": "BALANCED", "type": "ONESHOT", "scope": "Full Cluster", "cpu_weight": "1.0", "ram_weight": "1.0", "migrations": json.dumps([ { "instanceName": "instance-1", "source": "compute-0", "destination": "compute-3", "flavor": "m1.small", "impact": "Low", } ]), "host_labels": json.dumps(host_labels), "cpu_current": json.dumps(cpu_current), "cpu_projected": json.dumps(cpu_projected), }, { "id": "mock-audit-uuid-2", "name": "Mock audit (workload consolidation)", "created_at": "2025-02-02T14:30:00", "strategy": "Workload consolidation", "goal": "WORKLOAD_CONSOLIDATION", "type": "ONESHOT", "scope": "Full Cluster", "cpu_weight": "1.0", "ram_weight": "1.0", "migrations": json.dumps([]), "host_labels": json.dumps(host_labels), "cpu_current": json.dumps(cpu_current), "cpu_projected": json.dumps([40.0, 42.0, 50.0, 43.0, 36.0, 45.0]), }, ] return { "region": { "name": "mock-region", "hosts_total": hosts_total, }, "pcpu": { "total": pcpu_total, "usage": pcpu_usage, "free": pcpu_total - pcpu_usage, "used_percentage": pcpu_usage / pcpu_total * 100, }, "vcpu": { "total": int(vcpu_total), "allocated": vcpu_allocated, "free": int(vcpu_total) - vcpu_allocated, "allocated_percentage": vcpu_allocated / vcpu_total * 100, "overcommit_ratio": vcpu_allocated / pcpu_total, "overcommit_max": vcpu_overcommit_max, }, "pram": { "total": pram_total, "usage": pram_usage, "free": pram_total - pram_usage, "used_percentage": pram_usage / pram_total * 100, }, "vram": { "total": vram_total, "allocated": vram_allocated, "free": vram_total - vram_allocated, "allocated_percentage": vram_allocated / vram_total * 100, "overcommit_ratio": vram_allocated / pram_total, "overcommit_max": vram_overcommit_max, }, "vm": { "count": vm_count, "active": vm_active, "stopped": vm_count - vm_active, "avg_cpu": vcpu_allocated / vm_count if vm_count else 0, "avg_ram": vram_allocated / vm_count if vm_count else 0, "density": vm_count / hosts_total, }, "flavors": { "first_common_flavor": {"name": "m1.small", "count": 12}, "second_common_flavor": {"name": "m1.medium", "count": 8}, "third_common_flavor": {"name": "m1.large", "count": 4}, }, "audits": audits, }