From 5c402e5b637c618d4500cd007f8ebc32fe2b70dc Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Tue, 5 May 2026 16:46:16 +0200 Subject: [PATCH] fix(qualys): extrait responseCode/errorMessage/errorResolution du XML Qualys dans le message d erreur (au lieu de tronquer 200 chars du XML brut) --- app/services/qualys_service.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/services/qualys_service.py b/app/services/qualys_service.py index f48c90e..54139be 100644 --- a/app/services/qualys_service.py +++ b/app/services/qualys_service.py @@ -70,9 +70,17 @@ def search_assets_api(db, query, field="name", operator="CONTAINS", force_refres return {"ok": False, "msg": f"Erreur API: {e}", "assets": []} if r.status_code != 200 or "SUCCESS" not in r.text: - # Inclure le début du body pour faciliter le diagnostic + # Inclure le détail Qualys (errorMessage / errorResolution sont dans le XML) + import re as _re + err_msg = "" + m = _re.search(r"([^<]+)", r.text or "") + if m: err_msg += " | errorMessage: " + m.group(1).strip() + m = _re.search(r"([^<]+)", r.text or "") + if m: err_msg += " | errorResolution: " + m.group(1).strip() + m = _re.search(r"([^<]+)", r.text or "") + if m: err_msg = " [" + m.group(1).strip() + "]" + err_msg return {"ok": False, - "msg": f"API HTTP {r.status_code} — {r.text[:200]}", + "msg": f"API HTTP {r.status_code}{err_msg}", "assets": []} assets = _parse_assets_full(r.text)