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
This commit is contained in:
Pierre & Lumière 2026-04-10 20:10:27 +02:00
parent 16315ab3b5
commit 369ca7e5a3

View File

@ -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