mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 03:26:17 +00:00
Update flask_server.py
This commit is contained in:
@@ -266,7 +266,7 @@ def get_intel_gpu_processes_from_text():
|
|||||||
'engines': engines
|
'engines': engines
|
||||||
}
|
}
|
||||||
processes.append(process_info)
|
processes.append(process_info)
|
||||||
print(f"[v0] Found process from text: {name} (PID: {pid}) with {len(engines)} active engines", flush=True)
|
|
||||||
except (ValueError, IndexError) as e:
|
except (ValueError, IndexError) as e:
|
||||||
print(f"[v0] Error parsing process line: {e}", flush=True)
|
print(f"[v0] Error parsing process line: {e}", flush=True)
|
||||||
continue
|
continue
|
||||||
@@ -323,7 +323,7 @@ def get_vm_lxc_names():
|
|||||||
'type': 'lxc' if vm_type == 'lxc' else 'vm',
|
'type': 'lxc' if vm_type == 'lxc' else 'vm',
|
||||||
'status': status
|
'status': status
|
||||||
}
|
}
|
||||||
print(f"[v0] Found {vm_type} {vmid}: {name} ({status})")
|
|
||||||
else:
|
else:
|
||||||
print(f"[v0] pvesh command failed: {result.stderr}")
|
print(f"[v0] pvesh command failed: {result.stderr}")
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
@@ -2241,16 +2241,15 @@ def get_detailed_gpu_info(gpu):
|
|||||||
try:
|
try:
|
||||||
json_data = json.loads(buffer)
|
json_data = json.loads(buffer)
|
||||||
json_objects.append(json_data)
|
json_objects.append(json_data)
|
||||||
print(f"[v0] Found JSON object #{len(json_objects)} ({len(buffer)} chars)", flush=True)
|
|
||||||
print(f"[v0] JSON keys: {list(json_data.keys())}", flush=True)
|
|
||||||
|
|
||||||
if 'clients' in json_data:
|
if 'clients' in json_data:
|
||||||
client_count = len(json_data['clients'])
|
client_count = len(json_data['clients'])
|
||||||
print(f"[v0] *** FOUND CLIENTS SECTION with {client_count} client(s) ***", flush=True)
|
|
||||||
for client_id, client_data in json_data['clients'].items():
|
for client_id, client_data in json_data['clients'].items():
|
||||||
client_name = client_data.get('name', 'Unknown')
|
client_name = client_data.get('name', 'Unknown')
|
||||||
client_pid = client_data.get('pid', 'Unknown')
|
client_pid = client_data.get('pid', 'Unknown')
|
||||||
print(f"[v0] - Client: {client_name} (PID: {client_pid})", flush=True)
|
|
||||||
else:
|
else:
|
||||||
print(f"[v0] No 'clients' key in this JSON object", flush=True)
|
print(f"[v0] No 'clients' key in this JSON object", flush=True)
|
||||||
|
|
||||||
@@ -3890,9 +3889,7 @@ def api_network_interface_metrics(interface_name):
|
|||||||
try:
|
try:
|
||||||
timeframe = request.args.get('timeframe', 'day') # hour, day, week, month, year
|
timeframe = request.args.get('timeframe', 'day') # hour, day, week, month, year
|
||||||
|
|
||||||
print(f"[v0] ===== NETWORK INTERFACE METRICS REQUEST =====")
|
|
||||||
print(f"[v0] Interface: {interface_name}")
|
|
||||||
print(f"[v0] Timeframe: {timeframe}")
|
|
||||||
|
|
||||||
# Validate timeframe
|
# Validate timeframe
|
||||||
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
||||||
@@ -3955,7 +3952,7 @@ def api_network_interface_metrics(interface_name):
|
|||||||
print(f"[v0] ERROR: Failed to get RRD data for node")
|
print(f"[v0] ERROR: Failed to get RRD data for node")
|
||||||
print(f"[v0] stderr: {rrd_result.stderr}")
|
print(f"[v0] stderr: {rrd_result.stderr}")
|
||||||
|
|
||||||
print(f"[v0] ===== NETWORK INTERFACE METRICS REQUEST SUCCESS =====")
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'interface': interface_name,
|
'interface': interface_name,
|
||||||
'type': interface_type,
|
'type': interface_type,
|
||||||
@@ -3964,8 +3961,7 @@ def api_network_interface_metrics(interface_name):
|
|||||||
})
|
})
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"[v0] EXCEPTION in api_network_interface_metrics: {e}")
|
|
||||||
print(f"[v0] ===== NETWORK INTERFACE METRICS REQUEST EXCEPTION =====")
|
|
||||||
return jsonify({'error': str(e)}), 500
|
return jsonify({'error': str(e)}), 500
|
||||||
|
|
||||||
# ... existing code ...
|
# ... existing code ...
|
||||||
@@ -3982,9 +3978,7 @@ def api_vm_metrics(vmid):
|
|||||||
try:
|
try:
|
||||||
timeframe = request.args.get('timeframe', 'week') # hour, day, week, month, year
|
timeframe = request.args.get('timeframe', 'week') # hour, day, week, month, year
|
||||||
|
|
||||||
print(f"[v0] ===== METRICS REQUEST =====")
|
|
||||||
print(f"[v0] VMID: {vmid}")
|
|
||||||
print(f"[v0] Timeframe: {timeframe}")
|
|
||||||
|
|
||||||
# Validate timeframe
|
# Validate timeframe
|
||||||
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
||||||
@@ -4009,7 +4003,7 @@ def api_vm_metrics(vmid):
|
|||||||
capture_output=True, text=True, timeout=10)
|
capture_output=True, text=True, timeout=10)
|
||||||
if result.returncode == 0:
|
if result.returncode == 0:
|
||||||
vm_type = 'lxc'
|
vm_type = 'lxc'
|
||||||
print(f"[v0] Found as LXC")
|
|
||||||
else:
|
else:
|
||||||
print(f"[v0] ERROR: VM/LXC {vmid} not found")
|
print(f"[v0] ERROR: VM/LXC {vmid} not found")
|
||||||
return jsonify({'error': f'VM/LXC {vmid} not found'}), 404
|
return jsonify({'error': f'VM/LXC {vmid} not found'}), 404
|
||||||
@@ -4023,11 +4017,9 @@ def api_vm_metrics(vmid):
|
|||||||
capture_output=True, text=True, timeout=10)
|
capture_output=True, text=True, timeout=10)
|
||||||
|
|
||||||
if rrd_result.returncode == 0:
|
if rrd_result.returncode == 0:
|
||||||
print(f"[v0] RRD data fetched successfully")
|
|
||||||
print(f"[v0] RRD output length: {len(rrd_result.stdout)} bytes")
|
|
||||||
rrd_data = json.loads(rrd_result.stdout)
|
rrd_data = json.loads(rrd_result.stdout)
|
||||||
print(f"[v0] RRD data points: {len(rrd_data)}")
|
|
||||||
print(f"[v0] ===== METRICS REQUEST SUCCESS =====")
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'vmid': vmid,
|
'vmid': vmid,
|
||||||
'type': vm_type,
|
'type': vm_type,
|
||||||
@@ -4035,14 +4027,11 @@ def api_vm_metrics(vmid):
|
|||||||
'data': rrd_data
|
'data': rrd_data
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
print(f"[v0] ERROR: Failed to get RRD data")
|
|
||||||
print(f"[v0] stderr: {rrd_result.stderr}")
|
|
||||||
print(f"[v0] ===== METRICS REQUEST FAILED =====")
|
|
||||||
return jsonify({'error': f'Failed to get RRD data: {rrd_result.stderr}'}), 500
|
return jsonify({'error': f'Failed to get RRD data: {rrd_result.stderr}'}), 500
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"[v0] EXCEPTION in api_vm_metrics: {e}")
|
|
||||||
print(f"[v0] ===== METRICS REQUEST EXCEPTION =====")
|
|
||||||
return jsonify({'error': str(e)}), 500
|
return jsonify({'error': str(e)}), 500
|
||||||
|
|
||||||
@app.route('/api/node/metrics', methods=['GET'])
|
@app.route('/api/node/metrics', methods=['GET'])
|
||||||
@@ -4051,8 +4040,7 @@ def api_node_metrics():
|
|||||||
try:
|
try:
|
||||||
timeframe = request.args.get('timeframe', 'week') # hour, day, week, month, year
|
timeframe = request.args.get('timeframe', 'week') # hour, day, week, month, year
|
||||||
|
|
||||||
print(f"[v0] ===== NODE METRICS REQUEST =====")
|
|
||||||
print(f"[v0] Timeframe: {timeframe}")
|
|
||||||
|
|
||||||
# Validate timeframe
|
# Validate timeframe
|
||||||
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
valid_timeframes = ['hour', 'day', 'week', 'month', 'year']
|
||||||
@@ -4071,25 +4059,20 @@ def api_node_metrics():
|
|||||||
capture_output=True, text=True, timeout=10)
|
capture_output=True, text=True, timeout=10)
|
||||||
|
|
||||||
if rrd_result.returncode == 0:
|
if rrd_result.returncode == 0:
|
||||||
print(f"[v0] RRD data fetched successfully")
|
|
||||||
print(f"[v0] RRD output length: {len(rrd_result.stdout)} bytes")
|
|
||||||
rrd_data = json.loads(rrd_result.stdout)
|
rrd_data = json.loads(rrd_result.stdout)
|
||||||
print(f"[v0] RRD data points: {len(rrd_data)}")
|
|
||||||
print(f"[v0] ===== NODE METRICS REQUEST SUCCESS =====")
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'node': local_node,
|
'node': local_node,
|
||||||
'timeframe': timeframe,
|
'timeframe': timeframe,
|
||||||
'data': rrd_data
|
'data': rrd_data
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
print(f"[v0] ERROR: Failed to get RRD data")
|
|
||||||
print(f"[v0] stderr: {rrd_result.stderr}")
|
|
||||||
print(f"[v0] ===== NODE METRICS REQUEST FAILED =====")
|
|
||||||
return jsonify({'error': f'Failed to get RRD data: {rrd_result.stderr}'}), 500
|
return jsonify({'error': f'Failed to get RRD data: {rrd_result.stderr}'}), 500
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"[v0] EXCEPTION in api_node_metrics: {e}")
|
|
||||||
print(f"[v0] ===== NODE METRICS REQUEST EXCEPTION =====")
|
|
||||||
return jsonify({'error': str(e)}), 500
|
return jsonify({'error': str(e)}), 500
|
||||||
|
|
||||||
@app.route('/api/logs', methods=['GET'])
|
@app.route('/api/logs', methods=['GET'])
|
||||||
@@ -4613,7 +4596,7 @@ def get_task_log(upid):
|
|||||||
for filename in available_files:
|
for filename in available_files:
|
||||||
if filename.startswith(upid_prefix):
|
if filename.startswith(upid_prefix):
|
||||||
matched_file = f"{tasks_dir}/{filename}"
|
matched_file = f"{tasks_dir}/{filename}"
|
||||||
print(f"[v0] Found matching file by prefix: {matched_file}")
|
|
||||||
with open(matched_file, 'r', encoding='utf-8', errors='ignore') as f:
|
with open(matched_file, 'r', encoding='utf-8', errors='ignore') as f:
|
||||||
log_text = f.read()
|
log_text = f.read()
|
||||||
print(f"[v0] Successfully read {len(log_text)} bytes from matched file")
|
print(f"[v0] Successfully read {len(log_text)} bytes from matched file")
|
||||||
|
|||||||
Reference in New Issue
Block a user