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:
parent
16315ab3b5
commit
369ca7e5a3
@ -263,5 +263,37 @@ def save_audit_to_db(db, results):
|
|||||||
})
|
})
|
||||||
inserted += 1
|
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()
|
db.commit()
|
||||||
return updated, inserted
|
return updated, inserted
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user