Qualys deploy: dropdown ActivationId depuis API + ServerUri auto-deduit URL Qualys
This commit is contained in:
parent
935c8003b4
commit
2972baca1f
@ -924,14 +924,39 @@ async def qualys_deploy_page(request: Request, db=Depends(get_db)):
|
|||||||
if s.get("last_checkin"):
|
if s.get("last_checkin"):
|
||||||
s["last_checkin"] = str(s["last_checkin"])[:19]
|
s["last_checkin"] = str(s["last_checkin"])[:19]
|
||||||
|
|
||||||
|
# Recupere les activation keys actives via API Qualys (force refresh)
|
||||||
|
from ..services.qualys_service import get_activation_keys
|
||||||
|
try:
|
||||||
|
api_keys = get_activation_keys(db, force_refresh=True) or []
|
||||||
|
except Exception:
|
||||||
|
api_keys = []
|
||||||
|
# Filtre les keys actives uniquement
|
||||||
|
active_keys = [k for k in api_keys if (k.get("status") or "").upper() == "ACTIVE"]
|
||||||
|
|
||||||
|
# Activation par defaut : 1er active de l'API si dispo, sinon secret stocke
|
||||||
|
default_activation = active_keys[0]["key"] if active_keys else \
|
||||||
|
(get_secret(db, "qualys_activation_id") or "")
|
||||||
|
|
||||||
|
# Server URI deduit de l'URL Qualys (qualysapi.qualys.eu -> qagpublic.qg2)
|
||||||
|
qualys_url = get_secret(db, "qualys_url") or ""
|
||||||
|
server_uri = get_secret(db, "qualys_server_uri")
|
||||||
|
if not server_uri:
|
||||||
|
if "qg2" in qualys_url or "qualys.eu" in qualys_url:
|
||||||
|
server_uri = "https://qagpublic.qg2.apps.qualys.eu/CloudAgent/"
|
||||||
|
elif "qg3" in qualys_url:
|
||||||
|
server_uri = "https://qagpublic.qg3.apps.qualys.eu/CloudAgent/"
|
||||||
|
else:
|
||||||
|
server_uri = "https://qagpublic.qg2.apps.qualys.eu/CloudAgent/"
|
||||||
|
|
||||||
ctx = base_context(request, db, user)
|
ctx = base_context(request, db, user)
|
||||||
ctx.update({
|
ctx.update({
|
||||||
"app_name": APP_NAME,
|
"app_name": APP_NAME,
|
||||||
"packages": packages,
|
"packages": packages,
|
||||||
"servers": servers,
|
"servers": servers,
|
||||||
"activation_id": get_secret(db, "qualys_activation_id") or "081a9a12-ca97-4de1-828c-c6ad918ce77e",
|
"activation_id": default_activation,
|
||||||
"customer_id": get_secret(db, "qualys_customer_id") or "a2e3271b-c2a1-ec6b-8324-8f51948783d4",
|
"available_keys": active_keys, # pour le dropdown UI
|
||||||
"server_uri": get_secret(db, "qualys_server_uri") or "https://qagpublic.qg2.apps.qualys.eu/CloudAgent/",
|
"customer_id": get_secret(db, "qualys_customer_id") or "",
|
||||||
|
"server_uri": server_uri,
|
||||||
"msg": request.query_params.get("msg", ""),
|
"msg": request.query_params.get("msg", ""),
|
||||||
})
|
})
|
||||||
return templates.TemplateResponse("qualys_deploy.html", ctx)
|
return templates.TemplateResponse("qualys_deploy.html", ctx)
|
||||||
|
|||||||
@ -22,8 +22,17 @@
|
|||||||
<h3 class="text-sm font-bold text-cyber-accent mb-3">Configuration de l'agent</h3>
|
<h3 class="text-sm font-bold text-cyber-accent mb-3">Configuration de l'agent</h3>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-3">
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-3">
|
||||||
<div>
|
<div>
|
||||||
<label class="text-xs text-gray-500 block mb-1">ActivationId</label>
|
<label class="text-xs text-gray-500 block mb-1">ActivationId {% if available_keys %}<span class="text-cyber-green">({{ available_keys|length }} dispo via API)</span>{% endif %}</label>
|
||||||
|
{% if available_keys %}
|
||||||
|
<select id="activation_id" class="w-full text-xs" style="font-family:monospace" onchange="document.getElementById('activation_id_input').value=this.value">
|
||||||
|
{% for k in available_keys %}
|
||||||
|
<option value="{{ k.key }}" {% if k.key == activation_id %}selected{% endif %}>{{ k.key }} — {{ k.title or k.type or '' }} ({{ k.used }} uses)</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<input type="hidden" id="activation_id_input" value="{{ activation_id }}">
|
||||||
|
{% else %}
|
||||||
<input type="text" id="activation_id" value="{{ activation_id }}" class="w-full text-xs" style="font-family:monospace">
|
<input type="text" id="activation_id" value="{{ activation_id }}" class="w-full text-xs" style="font-family:monospace">
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label class="text-xs text-gray-500 block mb-1">CustomerId</label>
|
<label class="text-xs text-gray-500 block mb-1">CustomerId</label>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user