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:
@@ -12,6 +12,7 @@ import psutil
|
|||||||
import subprocess
|
import subprocess
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
import socket
|
import socket
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
@@ -37,8 +38,7 @@ CORS(app) # Enable CORS for Next.js frontend
|
|||||||
|
|
||||||
app.register_blueprint(auth_bp)
|
app.register_blueprint(auth_bp)
|
||||||
|
|
||||||
# app = Flask(__name__)
|
|
||||||
# CORS(app) # Enable CORS for Next.js frontend
|
|
||||||
|
|
||||||
def identify_gpu_type(name, vendor=None, bus=None, driver=None):
|
def identify_gpu_type(name, vendor=None, bus=None, driver=None):
|
||||||
"""
|
"""
|
||||||
@@ -2204,7 +2204,7 @@ def get_proxmox_vms():
|
|||||||
# print(f"[v0] Error getting VM/LXC info: {e}")
|
# print(f"[v0] Error getting VM/LXC info: {e}")
|
||||||
pass
|
pass
|
||||||
return {
|
return {
|
||||||
'error': f'Unable to access VM information: {str(e)}',
|
'error': 'Unable to access VM information: {str(e)}',
|
||||||
'vms': []
|
'vms': []
|
||||||
}
|
}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -3282,22 +3282,22 @@ def get_detailed_gpu_info(gpu):
|
|||||||
# print(f"[v0] Temperature: {detailed_info['temperature']}°C", flush=True)
|
# print(f"[v0] Temperature: {detailed_info['temperature']}°C", flush=True)
|
||||||
pass
|
pass
|
||||||
data_retrieved = True
|
data_retrieved = True
|
||||||
|
|
||||||
# Parse power draw (GFX Power or average_socket_power)
|
# Parse power draw (GFX Power or average_socket_power)
|
||||||
if 'GFX Power' in sensors:
|
if 'GFX Power' in sensors:
|
||||||
gfx_power = sensors['GFX Power']
|
gfx_power = sensors['GFX Power']
|
||||||
if 'value' in gfx_power:
|
if 'value' in gfx_power:
|
||||||
detailed_info['power_draw'] = f"{gfx_power['value']:.2f} W"
|
detailed_info['power_draw'] = f"{gfx_power['value']:.2f} W"
|
||||||
# print(f"[v0] Power Draw: {detailed_info['power_draw']}", flush=True)
|
# print(f"[v0] Power Draw: {detailed_info['power_draw']}", flush=True)
|
||||||
pass
|
pass
|
||||||
data_retrieved = True
|
data_retrieved = True
|
||||||
elif 'average_socket_power' in sensors:
|
elif 'average_socket_power' in sensors:
|
||||||
socket_power = sensors['average_socket_power']
|
socket_power = sensors['average_socket_power']
|
||||||
if 'value' in socket_power:
|
if 'value' in socket_power:
|
||||||
detailed_info['power_draw'] = f"{socket_power['value']:.2f} W"
|
detailed_info['power_draw'] = f"{socket_power['value']:.2f} W"
|
||||||
# print(f"[v0] Power Draw: {detailed_info['power_draw']}", flush=True)
|
# print(f"[v0] Power Draw: {detailed_info['power_draw']}", flush=True)
|
||||||
pass
|
pass
|
||||||
data_retrieved = True
|
data_retrieved = True
|
||||||
|
|
||||||
# Parse clocks (GFX_SCLK for graphics, GFX_MCLK for memory)
|
# Parse clocks (GFX_SCLK for graphics, GFX_MCLK for memory)
|
||||||
if 'Clocks' in device:
|
if 'Clocks' in device:
|
||||||
@@ -3306,7 +3306,7 @@ def get_detailed_gpu_info(gpu):
|
|||||||
gfx_clock = clocks['GFX_SCLK']
|
gfx_clock = clocks['GFX_SCLK']
|
||||||
if 'value' in gfx_clock:
|
if 'value' in gfx_clock:
|
||||||
detailed_info['clock_graphics'] = f"{gfx_clock['value']} MHz"
|
detailed_info['clock_graphics'] = f"{gfx_clock['value']} MHz"
|
||||||
# print(f"[v0] Graphics Clock: {detailed_info['clock_graphics']}", flush=True)
|
# print(f"[v0] Graphics Clock: {detailed_info['clock_graphics']} MHz", flush=True)
|
||||||
pass
|
pass
|
||||||
data_retrieved = True
|
data_retrieved = True
|
||||||
|
|
||||||
@@ -4119,7 +4119,7 @@ def get_hardware_info():
|
|||||||
# print(f"[v0] Error getting storage info: {e}")
|
# print(f"[v0] Error getting storage info: {e}")
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Graphics Cards (from lspci - will be duplicated by new PCI device listing, but kept for now)
|
# Graphics Cards
|
||||||
try:
|
try:
|
||||||
# Try nvidia-smi first
|
# Try nvidia-smi first
|
||||||
result = subprocess.run(['nvidia-smi', '--query-gpu=name,memory.total,memory.used,temperature.gpu,power.draw,utilization.gpu,utilization.memory,clocks.graphics,clocks.memory', '--format=csv,noheader,nounits'],
|
result = subprocess.run(['nvidia-smi', '--query-gpu=name,memory.total,memory.used,temperature.gpu,power.draw,utilization.gpu,utilization.memory,clocks.graphics,clocks.memory', '--format=csv,noheader,nounits'],
|
||||||
@@ -5668,7 +5668,7 @@ def api_system_info():
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Try to get node info from Proxmox API
|
# Try to get node info from Proxmox API
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(['pvesh', 'get', '/nodes', '--output-format', 'json'],
|
result = subprocess.run(['pvesh', 'get', '/nodes', '--output-format', 'json'],
|
||||||
capture_output=True, text=True, timeout=5)
|
capture_output=True, text=True, timeout=5)
|
||||||
|
|||||||
Reference in New Issue
Block a user