Qualys deploy: 2 dropdowns ActivationId Linux et Windows (separes)
This commit is contained in:
parent
0095f7914f
commit
f59c6dcbdb
@ -933,9 +933,17 @@ async def qualys_deploy_page(request: Request, db=Depends(get_db)):
|
|||||||
# Filtre les keys actives uniquement
|
# Filtre les keys actives uniquement
|
||||||
active_keys = [k for k in api_keys if (k.get("status") or "").upper() == "ACTIVE"]
|
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
|
# Separe par OS (Qualys retourne le champ type: WINDOWS / LINUX / etc.)
|
||||||
default_activation = active_keys[0]["key"] if active_keys else \
|
keys_windows = [k for k in active_keys if "WIN" in (k.get("type") or "").upper()]
|
||||||
(get_secret(db, "qualys_activation_id") or "")
|
keys_linux = [k for k in active_keys if "LINUX" in (k.get("type") or "").upper() or "LIN" in (k.get("type") or "").upper()]
|
||||||
|
|
||||||
|
# Defaults par OS : settings ou 1ere key de chaque type
|
||||||
|
default_act_win = get_secret(db, "qualys_activation_id_windows") or \
|
||||||
|
(keys_windows[0]["key"] if keys_windows else "")
|
||||||
|
default_act_lin = get_secret(db, "qualys_activation_id_linux") or \
|
||||||
|
(keys_linux[0]["key"] if keys_linux else "")
|
||||||
|
# Backward compat : si le settings legacy existe, l'utiliser pour Linux
|
||||||
|
default_activation = default_act_lin or get_secret(db, "qualys_activation_id") or ""
|
||||||
|
|
||||||
# Server URI deduit de l'URL Qualys (qualysapi.qualys.eu -> qagpublic.qg2)
|
# Server URI deduit de l'URL Qualys (qualysapi.qualys.eu -> qagpublic.qg2)
|
||||||
qualys_url = get_secret(db, "qualys_url") or ""
|
qualys_url = get_secret(db, "qualys_url") or ""
|
||||||
@ -955,7 +963,11 @@ async def qualys_deploy_page(request: Request, db=Depends(get_db)):
|
|||||||
"packages": packages,
|
"packages": packages,
|
||||||
"servers": servers,
|
"servers": servers,
|
||||||
"activation_id": default_activation,
|
"activation_id": default_activation,
|
||||||
"available_keys": active_keys, # pour le dropdown UI
|
"activation_id_windows": default_act_win,
|
||||||
|
"activation_id_linux": default_act_lin,
|
||||||
|
"available_keys": active_keys,
|
||||||
|
"keys_windows": keys_windows,
|
||||||
|
"keys_linux": keys_linux,
|
||||||
"customer_id": get_secret(db, "qualys_customer_id") or "",
|
"customer_id": get_secret(db, "qualys_customer_id") or "",
|
||||||
"server_uri": server_uri,
|
"server_uri": server_uri,
|
||||||
"msg": request.query_params.get("msg", ""),
|
"msg": request.query_params.get("msg", ""),
|
||||||
|
|||||||
@ -22,17 +22,23 @@
|
|||||||
<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 {% if available_keys %}<span class="text-cyber-green">({{ available_keys|length }} dispo via API)</span>{% endif %}</label>
|
<label class="text-xs text-gray-500 block mb-1">ActivationId Linux <span class="text-cyber-green">({{ keys_linux|length }})</span></label>
|
||||||
{% if available_keys %}
|
{% if keys_linux %}
|
||||||
<select id="activation_id" class="w-full text-xs" style="font-family:monospace" onchange="document.getElementById('activation_id_input').value=this.value">
|
<select id="activation_id_linux" class="w-full text-xs" style="font-family:monospace">
|
||||||
{% for k in available_keys %}
|
{% for k in keys_linux %}<option value="{{ k.key }}" {% if k.key == activation_id_linux %}selected{% endif %}>{{ k.key }} — {{ k.title or '' }} ({{ k.used }} uses)</option>{% endfor %}
|
||||||
<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>
|
</select>
|
||||||
<input type="hidden" id="activation_id_input" value="{{ activation_id }}">
|
|
||||||
{% else %}
|
{% 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_linux" value="{{ activation_id_linux }}" class="w-full text-xs" style="font-family:monospace">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<label class="text-xs text-gray-500 block mb-1 mt-2">ActivationId Windows <span class="text-cyber-green">({{ keys_windows|length }})</span></label>
|
||||||
|
{% if keys_windows %}
|
||||||
|
<select id="activation_id_windows" class="w-full text-xs" style="font-family:monospace">
|
||||||
|
{% for k in keys_windows %}<option value="{{ k.key }}" {% if k.key == activation_id_windows %}selected{% endif %}>{{ k.key }} — {{ k.title or '' }} ({{ k.used }} uses)</option>{% endfor %}
|
||||||
|
</select>
|
||||||
|
{% else %}
|
||||||
|
<input type="text" id="activation_id_windows" value="{{ activation_id_windows }}" class="w-full text-xs" style="font-family:monospace">
|
||||||
|
{% endif %}
|
||||||
|
<input type="hidden" id="activation_id" value="{{ activation_id_linux }}">
|
||||||
</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