feat(qualys/agents): colonne Version OS dans table sans-agent
This commit is contained in:
parent
c57ef61adb
commit
3c00f05263
@ -511,7 +511,7 @@ def qualys_agents_page(request: Request, db=Depends(get_db)):
|
|||||||
# Serveurs sans agent Qualys (match via server_id pour gerer alias/IP)
|
# Serveurs sans agent Qualys (match via server_id pour gerer alias/IP)
|
||||||
# Exclut les workstations Win10/11 = portables/postes dev
|
# Exclut les workstations Win10/11 = portables/postes dev
|
||||||
no_agent_rows = db.execute(text("""
|
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
|
SELECT s.hostname, s.os_family, s.os_version, s.etat, d.name as domain, e.name as env, z.name as zone
|
||||||
FROM servers s
|
FROM servers s
|
||||||
LEFT JOIN domain_environments de ON s.domain_env_id = de.id
|
LEFT JOIN domain_environments de ON s.domain_env_id = de.id
|
||||||
LEFT JOIN domains d ON de.domain_id = d.id
|
LEFT JOIN domains d ON de.domain_id = d.id
|
||||||
@ -528,7 +528,7 @@ def qualys_agents_page(request: Request, db=Depends(get_db)):
|
|||||||
AND COALESCE(s.os_version, '') NOT ILIKE '%Workstation%'
|
AND COALESCE(s.os_version, '') NOT ILIKE '%Workstation%'
|
||||||
ORDER BY s.hostname
|
ORDER BY s.hostname
|
||||||
""")).fetchall()
|
""")).fetchall()
|
||||||
no_agent = [{"hostname": r.hostname, "os_family": r.os_family, "etat": r.etat,
|
no_agent = [{"hostname": r.hostname, "os_family": r.os_family, "os_version": r.os_version or "", "etat": r.etat,
|
||||||
"domain": r.domain or "", "env": r.env or "", "zone": r.zone or ""} for r in no_agent_rows]
|
"domain": r.domain or "", "env": r.env or "", "zone": r.zone or ""} for r in no_agent_rows]
|
||||||
|
|
||||||
# Agents inactifs
|
# Agents inactifs
|
||||||
@ -603,7 +603,7 @@ async def export_no_agent_csv(request: Request, db=Depends(get_db)):
|
|||||||
return RedirectResponse(url="/qualys/agents")
|
return RedirectResponse(url="/qualys/agents")
|
||||||
import io, csv as _csv
|
import io, csv as _csv
|
||||||
rows = db.execute(text("""
|
rows = db.execute(text("""
|
||||||
SELECT s.hostname, s.os_family, s.etat, d.name as domain, e.name as env, z.name as zone
|
SELECT s.hostname, s.os_family, s.os_version, s.etat, d.name as domain, e.name as env, z.name as zone
|
||||||
FROM servers s
|
FROM servers s
|
||||||
LEFT JOIN domain_environments de ON s.domain_env_id = de.id
|
LEFT JOIN domain_environments de ON s.domain_env_id = de.id
|
||||||
LEFT JOIN domains d ON de.domain_id = d.id
|
LEFT JOIN domains d ON de.domain_id = d.id
|
||||||
@ -616,7 +616,7 @@ async def export_no_agent_csv(request: Request, db=Depends(get_db)):
|
|||||||
w = _csv.writer(output, delimiter=";")
|
w = _csv.writer(output, delimiter=";")
|
||||||
w.writerow(["Hostname", "OS", "Domaine", "Environnement", "Zone", "Etat"])
|
w.writerow(["Hostname", "OS", "Domaine", "Environnement", "Zone", "Etat"])
|
||||||
for r in rows:
|
for r in rows:
|
||||||
w.writerow([r.hostname, r.os_family or "", r.domain or "", r.env or "", r.zone or "", r.etat or ""])
|
w.writerow([r.hostname, r.os_family or "", r.os_version or "", r.domain or "", r.env or "", r.zone or "", r.etat or ""])
|
||||||
output.seek(0)
|
output.seek(0)
|
||||||
return StreamingResponse(
|
return StreamingResponse(
|
||||||
iter(["\ufeff" + output.getvalue()]),
|
iter(["\ufeff" + output.getvalue()]),
|
||||||
|
|||||||
@ -215,6 +215,7 @@ function refreshAgents(mode) {
|
|||||||
<thead><tr>
|
<thead><tr>
|
||||||
<th class="text-left p-2">Hostname</th>
|
<th class="text-left p-2">Hostname</th>
|
||||||
<th class="p-2">OS</th>
|
<th class="p-2">OS</th>
|
||||||
|
<th class="p-2">Version OS</th>
|
||||||
<th class="p-2">Domaine</th>
|
<th class="p-2">Domaine</th>
|
||||||
<th class="p-2">Env</th>
|
<th class="p-2">Env</th>
|
||||||
<th class="p-2">Zone</th>
|
<th class="p-2">Zone</th>
|
||||||
@ -231,6 +232,7 @@ function refreshAgents(mode) {
|
|||||||
">
|
">
|
||||||
<td class="p-2 font-mono text-cyber-accent">{{ s.hostname }}</td>
|
<td class="p-2 font-mono text-cyber-accent">{{ s.hostname }}</td>
|
||||||
<td class="p-2 text-center">{{ s.os_family or '-' }}</td>
|
<td class="p-2 text-center">{{ s.os_family or '-' }}</td>
|
||||||
|
<td class="p-2 text-center text-xs text-gray-300">{{ s.os_version or '-' }}</td>
|
||||||
<td class="p-2 text-center text-gray-400">{{ s.domain or '-' }}</td>
|
<td class="p-2 text-center text-gray-400">{{ s.domain or '-' }}</td>
|
||||||
<td class="p-2 text-center">{{ s.env or '-' }}</td>
|
<td class="p-2 text-center">{{ s.env or '-' }}</td>
|
||||||
<td class="p-2 text-center">{% if s.zone == 'DMZ' %}<span class="badge badge-red">DMZ</span>{% else %}{{ s.zone or '-' }}{% endif %}</td>
|
<td class="p-2 text-center">{% if s.zone == 'DMZ' %}<span class="badge badge-red">DMZ</span>{% else %}{{ s.zone or '-' }}{% endif %}</td>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user