diff --git a/AppImage/components/proxmox-dashboard.tsx b/AppImage/components/proxmox-dashboard.tsx index 1f6d0df..09bd350 100644 --- a/AppImage/components/proxmox-dashboard.tsx +++ b/AppImage/components/proxmox-dashboard.tsx @@ -104,7 +104,7 @@ export function ProxmoxDashboard() { useEffect(() => { fetchSystemData() - const interval = setInterval(fetchSystemData, 5000) + const interval = setInterval(fetchSystemData, 10000) // Updated interval to 10 seconds return () => clearInterval(interval) }, [fetchSystemData]) diff --git a/AppImage/components/system-overview.tsx b/AppImage/components/system-overview.tsx index 01dc435..51dc3cf 100644 --- a/AppImage/components/system-overview.tsx +++ b/AppImage/components/system-overview.tsx @@ -178,12 +178,7 @@ export function SystemOverview() { setLoading(true) setError(null) - const [systemResult, vmResult, storageResult, networkResult] = await Promise.all([ - fetchSystemData(), - fetchVMData(), - fetchStorageData(), - fetchNetworkData(), - ]) + const systemResult = await fetchSystemData() if (!systemResult) { setError("Flask server not available. Please ensure the server is running.") @@ -192,11 +187,8 @@ export function SystemOverview() { } setSystemData(systemResult) - setVmData(vmResult) - setStorageData(storageResult) - setNetworkData(networkResult) } catch (err) { - console.error("[v0] Error fetching data:", err) + console.error("[v0] Error fetching system data:", err) setError("Failed to connect to Flask server. Please check your connection.") } finally { setLoading(false) @@ -205,12 +197,56 @@ export function SystemOverview() { fetchData() - const interval = setInterval(() => { - fetchData() - }, 60000) // Update every 60 seconds instead of 30 + const systemInterval = setInterval(() => { + fetchSystemData().then((data) => { + if (data) setSystemData(data) + }) + }, 10000) return () => { - clearInterval(interval) + clearInterval(systemInterval) + } + }, []) + + useEffect(() => { + const fetchVMs = async () => { + const vmResult = await fetchVMData() + setVmData(vmResult) + } + + fetchVMs() + const vmInterval = setInterval(fetchVMs, 15000) + + return () => { + clearInterval(vmInterval) + } + }, []) + + useEffect(() => { + const fetchStorage = async () => { + const storageResult = await fetchStorageData() + setStorageData(storageResult) + } + + fetchStorage() + const storageInterval = setInterval(fetchStorage, 15000) + + return () => { + clearInterval(storageInterval) + } + }, []) + + useEffect(() => { + const fetchNetwork = async () => { + const networkResult = await fetchNetworkData() + setNetworkData(networkResult) + } + + fetchNetwork() + const networkInterval = setInterval(fetchNetwork, 15000) + + return () => { + clearInterval(networkInterval) } }, []) diff --git a/AppImage/scripts/flask_server.py b/AppImage/scripts/flask_server.py index fe3a73f..20b60bf 100644 --- a/AppImage/scripts/flask_server.py +++ b/AppImage/scripts/flask_server.py @@ -424,7 +424,13 @@ def get_network_info(): net_if_stats = psutil.net_if_stats() for interface_name, interface_addresses in net_if_addrs.items(): - if interface_name == 'lo': # Skip loopback + # Skip loopback + if interface_name == 'lo': + continue + + # Skip virtual interfaces that are not bridges + # Keep: physical interfaces (enp*, eth*, wlan*) and bridges (vmbr*, br*) + if not (interface_name.startswith(('enp', 'eth', 'wlan', 'vmbr', 'br'))): continue interface_info = {