patchcenter/app/routers
Admin MPCZ 90444c0c56 feat(patching): particularites par serveur (notes wiki SANEF) + skip_first_reboot + reboot_delay cluster
Migration migrate_patching_notes_20260507.sql:
- servers.skip_first_reboot boolean (TPV1: vptraatpf1/2 a true)
- servers.patching_notes text (markdown — meme operateur)
- server_clusters.reboot_delay_min_minutes int default 0
- Backfill patching_notes pour 22 cas particuliers du wiki SANEF:
  ASM Oracle (~50 hosts kernel*), TPV1, HAproxy FL, Covoiturage,
  SI Patrimoine (vrpatbsip1 avant vrpataels1, kibana, certs),
  Talend, Scoop (Debian apt-mark hold + CentOS containers Docker),
  DATI (pm2/tomcat post-reboot), COMMVAULT (mode maintenance),
  Masterparc (kmeihm pm2), Splunk (RPM special),
  Site institutionnel (HAproxy backend rotation, no *node*),
  Centreon (1 par 1 + check centengine), Sextan (10min reboot delay),
  OCTAN, PAIPOR (site maintenance), Gaspar, Postgres, Oracle OEM, SMTP relay
- Cluster Sextan cree (10 min entre reboots) + 10 serveurs Sextan rattaches

UI iexec:
- Banner cumule en haut: '⚠ Particularites pour N serveur(s)' si au moins 1 note
- Badges sur la cellule asset_name: ⚠ note (modal markdown au clic),
  ⏭ skip 1st reboot, ⏱ Xmin (cluster reboot delay)
- Modal patching_notes avec rendu pre/markdown, fermeture Escape

UI fiche serveur (server_detail.html):
- Ligne 'Skip 1er reboot' dans bloc Patching
- Bandeau orange particularites avec contenu patching_notes si renseigne

Pas encore implemente cote logique d'execution (Phase 2):
- skip_first_reboot logic dans le step reboot
- enforcement reboot_delay_min_minutes entre membres cluster
- Pour l'instant: notes affichees en mode 'memo operateur' uniquement
2026-05-07 11:41:05 +02:00
..
__init__.py PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
applications.py Migre etat vers labels iTop verbatim (Production, Nouveau, etc.) 2026-04-14 18:40:56 +02:00
audit.py Secu: verif permissions can_view/can_edit sur endpoints HTMX detail/edit 2026-04-17 23:15:04 +00:00
auth.py Top bar: affiche display_name (Prenom NOM) + (AD) si LDAP + login en gris 2026-04-15 12:00:41 +02:00
campaigns.py Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers 2026-04-17 23:19:18 +00:00
contacts.py Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers 2026-04-17 23:19:18 +00:00
dashboard.py Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers 2026-04-17 23:19:18 +00:00
duty.py Add page Tour de garde SecOps : import xlsx + table + vue hebdo + competences 2026-04-17 23:39:11 +00:00
patch_history.py patch_history: tolere parametres vides dans les filtres (week=, source=, etc.) 2026-04-17 12:42:58 +00:00
patching.py fix(servers/edit + patching): dropdown 'Solution applicative' affiche TOUTES les applications (filtre 'WHERE itop_id IS NOT NULL' retire) - les apps locales sans correspondance iTop apparaissent maintenant 2026-05-05 15:58:41 +02:00
planning_import.py feat(patching): particularites par serveur (notes wiki SANEF) + skip_first_reboot + reboot_delay cluster 2026-05-07 11:41:05 +02:00
planning.py Migre etat vers labels iTop verbatim (Production, Nouveau, etc.) 2026-04-14 18:40:56 +02:00
qualys_tags.py Add /qualys/tagsv3/catalog: page de reference nom/type/QQL/couleur par categorie 2026-04-15 10:20:41 +02:00
qualys.py feat(qualys/agents): bloque troubleshooting pour Windows (route + bouton 'Non gere' dans table) 2026-04-28 01:48:32 +02:00
quickwin.py Admin applications + correspondance cleanup + tools presentation DSI 2026-04-13 21:11:58 +02:00
referentiel.py Fix: KeyError 'updated' → 'servers_updated' dans sync_to route 2026-04-11 13:36:23 +02:00
servers.py fix(servers/edit + patching): dropdown 'Solution applicative' affiche TOUTES les applications (filtre 'WHERE itop_id IS NOT NULL' retire) - les apps locales sans correspondance iTop apparaissent maintenant 2026-05-05 15:58:41 +02:00
settings.py feat(teams): fan-out multi-recipient + flag is_database_server + multi-referents 2026-05-06 10:33:12 +02:00
specifics.py Phase 1 securite: permission checks sur tous les routers 2026-04-08 16:46:05 +02:00
users.py Users/Contacts: workflow profils + LDAP + sync iTop + etat aligne 2026-04-12 18:50:43 +02:00