#!/usr/bin/env python3 """Verify sys_metrics.py produces valid JSON output.""" import json import subprocess result = subprocess.run( ['python3', '/root/.hermes/wizard-outputs/spark/sys_metrics.py'], capture_output=True, text=True ) if result.returncode != 0: print(f"FAILED: Script exited with code {result.returncode}") exit(1) try: data = json.loads(result.stdout) except json.JSONDecodeError as e: print(f"FAILED: Invalid JSON - {e}") exit(1) required_keys = ['disk', 'memory', 'load_average', 'uptime_seconds'] for key in required_keys: if key not in data: print(f"FAILED: Missing key '{key}'") exit(1) # Verify disk has required fields disk_fields = ['total', 'used', 'free', 'percent_used'] for field in disk_fields: if field not in data['disk']: print(f"FAILED: Disk missing field '{field}'") exit(1) # Verify memory has required fields mem_fields = ['total', 'used', 'available', 'percent_used'] for field in mem_fields: if field not in data['memory']: print(f"FAILED: Memory missing field '{field}'") exit(1) # Verify load_average has required fields load_fields = ['1min', '5min', '15min'] for field in load_fields: if field not in data['load_average']: print(f"FAILED: Load average missing field '{field}'") exit(1) print("VERIFIED: sys_metrics.py produces valid JSON with all required fields") print(f"Keys: {list(data.keys())}") print(f"Disk usage: {data['disk']['percent_used']}%") print(f"Memory usage: {data['memory']['percent_used']}%") print(f"Load average: {data['load_average']['1min']}") print(f"Uptime: {data['uptime_seconds']} seconds")