Qualys 'sans agent': match via server_id (couvre alias hostname Qualys != iTop)

This commit is contained in:
Pierre & Lumière 2026-04-15 13:54:07 +02:00
parent 245777fd46
commit 8b212df7a1

View File

@ -496,7 +496,8 @@ def qualys_agents_page(request: Request, db=Depends(get_db)):
except Exception:
summary = {"statuses": [], "versions": [], "total_assets": 0, "active": 0, "inactive": 0}
# Serveurs sans agent Qualys (exclut les workstations Win10/11 = portables/postes dev)
# Serveurs sans agent Qualys (match via server_id pour gerer alias/IP)
# Exclut les workstations Win10/11 = portables/postes dev
no_agent_rows = db.execute(text("""
SELECT s.hostname, s.os_family, s.etat, d.name as domain, e.name as env, z.name as zone
FROM servers s
@ -504,7 +505,12 @@ def qualys_agents_page(request: Request, db=Depends(get_db)):
LEFT JOIN domains d ON de.domain_id = d.id
LEFT JOIN environments e ON de.environment_id = e.id
LEFT JOIN zones z ON s.zone_id = z.id
WHERE NOT EXISTS (SELECT 1 FROM qualys_assets qa WHERE qa.hostname = s.hostname)
WHERE NOT EXISTS (
SELECT 1 FROM qualys_assets qa
WHERE qa.server_id = s.id
OR LOWER(qa.hostname) = LOWER(s.hostname)
OR LOWER(qa.fqdn) = LOWER(s.fqdn)
)
AND COALESCE(s.os_version, '') NOT ILIKE '%Windows 11%'
AND COALESCE(s.os_version, '') NOT ILIKE '%Windows 10%'
AND COALESCE(s.os_version, '') NOT ILIKE '%Workstation%'