fix(qualys/search): KPI vuln_map est dict total/severityN, pas int
This commit is contained in:
parent
3c00f05263
commit
392c8f4fe5
@ -468,13 +468,18 @@ async def qualys_search(request: Request, db=Depends(get_db),
|
|||||||
|
|
||||||
# KPI : total / avec vuln / sans vuln + filtrage vuln_filter (with|zero)
|
# KPI : total / avec vuln / sans vuln + filtrage vuln_filter (with|zero)
|
||||||
vuln_filter = request.query_params.get("vuln_filter", "")
|
vuln_filter = request.query_params.get("vuln_filter", "")
|
||||||
|
def _vuln_total(a):
|
||||||
|
vc = vuln_map.get(str(a.ip_address), {})
|
||||||
|
if isinstance(vc, dict):
|
||||||
|
return int(vc.get("total", 0) or 0)
|
||||||
|
return int(vc or 0)
|
||||||
kpi_total = len(assets) if assets else 0
|
kpi_total = len(assets) if assets else 0
|
||||||
kpi_with_vuln = sum(1 for a in assets if vuln_map.get(str(a.ip_address), 0) > 0) if assets else 0
|
kpi_with_vuln = sum(1 for a in assets if _vuln_total(a) > 0) if assets else 0
|
||||||
kpi_zero_vuln = kpi_total - kpi_with_vuln
|
kpi_zero_vuln = kpi_total - kpi_with_vuln
|
||||||
if assets and vuln_filter == "with":
|
if assets and vuln_filter == "with":
|
||||||
assets = [a for a in assets if vuln_map.get(str(a.ip_address), 0) > 0]
|
assets = [a for a in assets if _vuln_total(a) > 0]
|
||||||
elif assets and vuln_filter == "zero":
|
elif assets and vuln_filter == "zero":
|
||||||
assets = [a for a in assets if vuln_map.get(str(a.ip_address), 0) == 0]
|
assets = [a for a in assets if _vuln_total(a) == 0]
|
||||||
|
|
||||||
ctx = base_context(request, db, user)
|
ctx = base_context(request, db, user)
|
||||||
ctx.update({
|
ctx.update({
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user