Servers: filtre zone (liste zones + DMZ + Sans zone)
This commit is contained in:
parent
197296b811
commit
3211b81e60
@ -20,6 +20,7 @@ async def servers_list(request: Request, db=Depends(get_db),
|
|||||||
domain: str = Query(None), env: str = Query(None),
|
domain: str = Query(None), env: str = Query(None),
|
||||||
tier: str = Query(None), etat: str = Query(None),
|
tier: str = Query(None), etat: str = Query(None),
|
||||||
os: str = Query(None), owner: str = Query(None),
|
os: str = Query(None), owner: str = Query(None),
|
||||||
|
zone: str = Query(None),
|
||||||
application: str = Query(None), application_id: int = Query(None),
|
application: str = Query(None), application_id: int = Query(None),
|
||||||
search: str = Query(None), page: int = Query(1),
|
search: str = Query(None), page: int = Query(1),
|
||||||
sort: str = Query("hostname"), sort_dir: str = Query("asc")):
|
sort: str = Query("hostname"), sort_dir: str = Query("asc")):
|
||||||
@ -28,10 +29,12 @@ async def servers_list(request: Request, db=Depends(get_db),
|
|||||||
return RedirectResponse(url="/login")
|
return RedirectResponse(url="/login")
|
||||||
|
|
||||||
filters = {"domain": domain, "env": env, "tier": tier, "etat": etat, "os": os,
|
filters = {"domain": domain, "env": env, "tier": tier, "etat": etat, "os": os,
|
||||||
"owner": owner, "application": application, "application_id": application_id,
|
"owner": owner, "zone": zone,
|
||||||
|
"application": application, "application_id": application_id,
|
||||||
"search": search}
|
"search": search}
|
||||||
servers, total = list_servers(db, filters, page, sort=sort, sort_dir=sort_dir)
|
servers, total = list_servers(db, filters, page, sort=sort, sort_dir=sort_dir)
|
||||||
domains_list, envs_list = get_reference_data(db)
|
domains_list, envs_list = get_reference_data(db)
|
||||||
|
zones_list = db.execute(text("SELECT name, is_dmz FROM zones ORDER BY is_dmz DESC, name")).fetchall()
|
||||||
|
|
||||||
applications_list = db.execute(text("""SELECT application_name, COUNT(*) as c FROM servers
|
applications_list = db.execute(text("""SELECT application_name, COUNT(*) as c FROM servers
|
||||||
WHERE application_name IS NOT NULL AND application_name != ''
|
WHERE application_name IS NOT NULL AND application_name != ''
|
||||||
@ -48,7 +51,7 @@ async def servers_list(request: Request, db=Depends(get_db),
|
|||||||
return templates.TemplateResponse("servers.html", {
|
return templates.TemplateResponse("servers.html", {
|
||||||
"request": request, "user": user, "app_name": APP_NAME,
|
"request": request, "user": user, "app_name": APP_NAME,
|
||||||
"servers": servers, "total": total, "page": page, "per_page": 50,
|
"servers": servers, "total": total, "page": page, "per_page": 50,
|
||||||
"domains_list": domains_list, "envs_list": envs_list,
|
"domains_list": domains_list, "envs_list": envs_list, "zones_list": zones_list,
|
||||||
"applications_list": applications_list, "filters": filters,
|
"applications_list": applications_list, "filters": filters,
|
||||||
"sort": sort, "sort_dir": sort_dir,
|
"sort": sort, "sort_dir": sort_dir,
|
||||||
"perms": perms, "can_edit_servers": can_edit_servers,
|
"perms": perms, "can_edit_servers": can_edit_servers,
|
||||||
|
|||||||
@ -124,6 +124,11 @@ def list_servers(db, filters, page=1, per_page=50, sort="hostname", sort_dir="as
|
|||||||
where.append("s.etat = :etat"); params["etat"] = filters["etat"]
|
where.append("s.etat = :etat"); params["etat"] = filters["etat"]
|
||||||
if filters.get("os"):
|
if filters.get("os"):
|
||||||
where.append("s.os_family = :os"); params["os"] = filters["os"]
|
where.append("s.os_family = :os"); params["os"] = filters["os"]
|
||||||
|
if filters.get("zone"):
|
||||||
|
if filters["zone"] == "__null__":
|
||||||
|
where.append("s.zone_id IS NULL")
|
||||||
|
else:
|
||||||
|
where.append("z.name = :zone"); params["zone"] = filters["zone"]
|
||||||
if filters.get("owner"):
|
if filters.get("owner"):
|
||||||
where.append("s.patch_os_owner = :owner"); params["owner"] = filters["owner"]
|
where.append("s.patch_os_owner = :owner"); params["owner"] = filters["owner"]
|
||||||
if filters.get("application_id"):
|
if filters.get("application_id"):
|
||||||
|
|||||||
@ -44,6 +44,10 @@
|
|||||||
<option value="linux" {% if filters.os == 'linux' %}selected{% endif %}>Linux</option>
|
<option value="linux" {% if filters.os == 'linux' %}selected{% endif %}>Linux</option>
|
||||||
<option value="windows" {% if filters.os == 'windows' %}selected{% endif %}>Windows</option>
|
<option value="windows" {% if filters.os == 'windows' %}selected{% endif %}>Windows</option>
|
||||||
</select>
|
</select>
|
||||||
|
<select name="zone" onchange="this.form.submit()"><option value="">Zone</option>
|
||||||
|
{% for z in zones_list %}<option value="{{ z.name }}" {% if filters.zone == z.name %}selected{% endif %}>{{ z.name }}{% if z.is_dmz %} (DMZ){% endif %}</option>{% endfor %}
|
||||||
|
<option value="__null__" {% if filters.zone == '__null__' %}selected{% endif %}>(Sans zone)</option>
|
||||||
|
</select>
|
||||||
<select name="owner" onchange="this.form.submit()"><option value="">Owner</option>
|
<select name="owner" onchange="this.form.submit()"><option value="">Owner</option>
|
||||||
<option value="secops" {% if filters.owner == 'secops' %}selected{% endif %}>secops</option>
|
<option value="secops" {% if filters.owner == 'secops' %}selected{% endif %}>secops</option>
|
||||||
<option value="ipop" {% if filters.owner == 'ipop' %}selected{% endif %}>ipop</option>
|
<option value="ipop" {% if filters.owner == 'ipop' %}selected{% endif %}>ipop</option>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user