Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers
This commit is contained in:
parent
9097872e57
commit
a0f90cd719
@ -1,3 +1,9 @@
|
||||
import logging
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s %(levelname)s [%(name)s] %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
"""PatchCenter v2 — Entry point FastAPI"""
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.responses import RedirectResponse
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
"""Router campagnes — creation, prereqs, assignation, workflow"""
|
||||
from datetime import datetime
|
||||
from fastapi import APIRouter, Request, Depends, Query, Form
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
"""Router contacts — gestion des responsables applicatifs et scopes"""
|
||||
from fastapi import APIRouter, Request, Depends, Query, Form
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
from fastapi import APIRouter, Request, Depends
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
"""Router serveurs — CRUD + detail + edit via HTMX"""
|
||||
from fastapi import APIRouter, Request, Depends, Query, Form
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse, StreamingResponse
|
||||
@ -205,8 +207,8 @@ async def server_update(request: Request, server_id: int, db=Depends(get_db),
|
||||
vm_id = list(r["objects"].values())[0]["key"]
|
||||
new_list = [{"applicationsolution_id": int(app_itop_id)}] if app_itop_id else []
|
||||
client.update("VirtualMachine", vm_id, {"applicationsolution_list": new_list})
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as e:
|
||||
logger.warning(f"Erreur non bloquante: {e}")
|
||||
|
||||
s = get_server_full(db, server_id)
|
||||
tags = get_server_tags(db, s.qid)
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
"""Router settings — configuration modules externes + connexions"""
|
||||
from fastapi import APIRouter, Request, Depends, Form
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
|
||||
32
app/services/query_helpers.py
Normal file
32
app/services/query_helpers.py
Normal file
@ -0,0 +1,32 @@
|
||||
"""Helpers SQL reutilisables pour eviter la duplication de JOINs."""
|
||||
from sqlalchemy import text
|
||||
|
||||
SERVER_BASE_JOINS = """
|
||||
LEFT JOIN domain_environments de ON s.domain_env_id = de.id
|
||||
LEFT JOIN domains d ON de.domain_id = d.id
|
||||
LEFT JOIN environments e ON de.environment_id = e.id
|
||||
LEFT JOIN zones z ON s.zone_id = z.id
|
||||
"""
|
||||
|
||||
SERVER_BASE_COLS = """
|
||||
s.id, s.hostname, s.fqdn, s.os_family, s.os_version,
|
||||
s.etat, s.tier, s.environnement, s.machine_type,
|
||||
d.name as domaine, d.code as domain_code,
|
||||
e.name as env_name, e.code as env_code,
|
||||
z.name as zone
|
||||
"""
|
||||
|
||||
def server_list_query(where="1=1", order="s.hostname", limit=None, offset=None):
|
||||
"""Construit une requete SELECT serveurs avec JOINs standard."""
|
||||
q = f"""
|
||||
SELECT {SERVER_BASE_COLS}
|
||||
FROM servers s
|
||||
{SERVER_BASE_JOINS}
|
||||
WHERE {where}
|
||||
ORDER BY {order}
|
||||
"""
|
||||
if limit is not None:
|
||||
q += f" LIMIT {int(limit)}"
|
||||
if offset is not None:
|
||||
q += f" OFFSET {int(offset)}"
|
||||
return text(q)
|
||||
Loading…
Reference in New Issue
Block a user