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"):
|
||||
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.update({
|
||||
"app_name": APP_NAME,
|
||||
"packages": packages,
|
||||
"servers": servers,
|
||||
"activation_id": get_secret(db, "qualys_activation_id") or "081a9a12-ca97-4de1-828c-c6ad918ce77e",
|
||||
"customer_id": get_secret(db, "qualys_customer_id") or "a2e3271b-c2a1-ec6b-8324-8f51948783d4",
|
||||
"server_uri": get_secret(db, "qualys_server_uri") or "https://qagpublic.qg2.apps.qualys.eu/CloudAgent/",
|
||||
"activation_id": default_activation,
|
||||
"available_keys": active_keys, # pour le dropdown UI
|
||||
"customer_id": get_secret(db, "qualys_customer_id") or "",
|
||||
"server_uri": server_uri,
|
||||
"msg": request.query_params.get("msg", ""),
|
||||
})
|
||||
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>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-3">
|
||||
<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">
|
||||
{% endif %}
|
||||
</div>
|
||||
<div>
|
||||
<label class="text-xs text-gray-500 block mb-1">CustomerId</label>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user