From 369ca7e5a3c6ef115df646dd51f2785289b02ee6 Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Fri, 10 Apr 2026 20:10:27 +0200 Subject: [PATCH] Audit: mise a jour table servers avec IP, OS, FQDN depuis resultats audit - Apres un audit reussi, update servers.os_version et servers.fqdn - Resout l'IP via DNS et l'insere dans server_ips - Ne touche que les serveurs avec status OK --- app/services/realtime_audit_service.py | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/services/realtime_audit_service.py b/app/services/realtime_audit_service.py index c3cecc8..aeace25 100644 --- a/app/services/realtime_audit_service.py +++ b/app/services/realtime_audit_service.py @@ -263,5 +263,37 @@ def save_audit_to_db(db, results): }) inserted += 1 + # Mettre a jour la table servers avec les infos de l'audit + if server_id and r.get("status") == "OK": + resolved = r.get("resolved_fqdn", "") + # Resoudre l'IP depuis le FQDN + ip_addr = None + if resolved: + try: + ip_addr = socket.gethostbyname(resolved) + except Exception: + pass + + updates = {} + if r.get("os_release"): + updates["os_version"] = r["os_release"].strip() + if ip_addr: + updates["fqdn"] = resolved + + if updates: + sets = ", ".join(f"{k} = :{k}" for k in updates) + updates["sid"] = server_id + db.execute(text(f"UPDATE servers SET {sets}, updated_at = NOW() WHERE id = :sid"), updates) + + # Mettre a jour/inserer dans server_ips + if ip_addr: + existing_ip = db.execute(text( + "SELECT id FROM server_ips WHERE server_id = :sid AND ip = :ip" + ), {"sid": server_id, "ip": ip_addr}).fetchone() + if not existing_ip: + db.execute(text( + "INSERT INTO server_ips (server_id, ip, source) VALUES (:sid, :ip, 'audit')" + ), {"sid": server_id, "ip": ip_addr}) + db.commit() return updated, inserted