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
|
||||
|
||||
# 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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user