main.py aktualisiert
This commit is contained in:
21
main.py
21
main.py
@@ -210,19 +210,24 @@ async def run_remote_task(ip, user, cmd, task_name):
|
|||||||
async def refresh_status(node_id: int):
|
async def refresh_status(node_id: int):
|
||||||
conn = get_db()
|
conn = get_db()
|
||||||
node = conn.execute('SELECT * FROM nodes WHERE id = ?', (node_id,)).fetchone()
|
node = conn.execute('SELECT * FROM nodes WHERE id = ?', (node_id,)).fetchone()
|
||||||
conn.close()
|
|
||||||
|
|
||||||
if node:
|
if node:
|
||||||
# Kurzer Check via SSH
|
# Kurzer Check via SSH, ob Docker antwortet
|
||||||
check_cmd = "command -v docker >/dev/null 2>&1 && echo 'Docker Aktiv' || echo 'Bereit (Kein Docker)'"
|
check_cmd = "command -v docker >/dev/null 2>&1 && echo 'Docker Aktiv' || echo 'Bereit (Kein Docker)'"
|
||||||
ssh_cmd = f"ssh -o StrictHostKeyChecking=no {node['user']}@{node['ip']} \"{check_cmd}\""
|
ssh_cmd = f"ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 {node['user']}@{node['ip']} \"{check_cmd}\""
|
||||||
try:
|
try:
|
||||||
result = subprocess.check_output(ssh_cmd, shell=True, timeout=5).decode().strip()
|
# Wir führen den Befehl aus
|
||||||
update_node_status(node['ip'], result)
|
new_status = subprocess.check_output(ssh_cmd, shell=True).decode().strip()
|
||||||
except:
|
except Exception:
|
||||||
update_node_status(node['ip'], "Offline/Fehler")
|
new_status = "Offline/Fehler"
|
||||||
|
|
||||||
return RedirectResponse(url="/", status_code=303)
|
conn.execute('UPDATE nodes SET status = ? WHERE id = ?', (new_status, node_id))
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
return {"status": new_status} # Wir senden nur den Status zurück
|
||||||
|
|
||||||
|
conn.close()
|
||||||
|
return {"status": "Unbekannt"}
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|||||||
Reference in New Issue
Block a user