Refactor Docker setup and add mock data support
- 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.
This commit is contained in:
115
dashboard/mock_data.py
Normal file
115
dashboard/mock_data.py
Normal file
@@ -0,0 +1,115 @@
|
||||
"""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,
|
||||
}
|
||||
Reference in New Issue
Block a user