Sync Qualys FQDN to servers + use fqdn first for DNS resolution
This commit is contained in:
parent
92175992f8
commit
a422894f83
@ -586,6 +586,10 @@ def refresh_all_agents(db):
|
|||||||
srv = db.execute(text("SELECT id FROM servers WHERE LOWER(hostname)=LOWER(:h)"),
|
srv = db.execute(text("SELECT id FROM servers WHERE LOWER(hostname)=LOWER(:h)"),
|
||||||
{"h": hostname}).fetchone()
|
{"h": hostname}).fetchone()
|
||||||
server_id = srv.id if srv else None
|
server_id = srv.id if srv else None
|
||||||
|
# Sync du FQDN Qualys vers servers.fqdn si présent
|
||||||
|
if server_id and fqdn:
|
||||||
|
db.execute(text("UPDATE servers SET fqdn=:fqdn WHERE id=:sid AND (fqdn IS NULL OR fqdn='')"),
|
||||||
|
{"fqdn": fqdn, "sid": server_id})
|
||||||
|
|
||||||
existing = db.execute(text("SELECT id FROM qualys_assets WHERE qualys_asset_id=:qid"),
|
existing = db.execute(text("SELECT id FROM qualys_assets WHERE qualys_asset_id=:qid"),
|
||||||
{"qid": int(asset_id)}).fetchone()
|
{"qid": int(asset_id)}).fetchone()
|
||||||
|
|||||||
@ -97,6 +97,27 @@ def _ordered_suffixes(hostname):
|
|||||||
|
|
||||||
|
|
||||||
def _resolve(hostname):
|
def _resolve(hostname):
|
||||||
|
# 1. Essaie d'abord le FQDN stocké en base (issu de Qualys ou iTop)
|
||||||
|
try:
|
||||||
|
from .secrets_service import get_secret # noqa
|
||||||
|
from ..database import SessionLocal
|
||||||
|
db = SessionLocal()
|
||||||
|
row = db.execute(text("SELECT fqdn FROM servers WHERE LOWER(hostname)=LOWER(:h) AND fqdn IS NOT NULL AND fqdn != ''"),
|
||||||
|
{"h": hostname}).fetchone()
|
||||||
|
db.close()
|
||||||
|
if row and row.fqdn:
|
||||||
|
try:
|
||||||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
sock.settimeout(2)
|
||||||
|
r = sock.connect_ex((row.fqdn, 22))
|
||||||
|
sock.close()
|
||||||
|
if r == 0:
|
||||||
|
return row.fqdn
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
# 2. Fallback : boucle sur les suffixes DNS
|
||||||
for suffix in _ordered_suffixes(hostname):
|
for suffix in _ordered_suffixes(hostname):
|
||||||
target = hostname + suffix
|
target = hostname + suffix
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user