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