patchcenter/app
Admin MPCZ 517b02f602 feat(prepatch): iteration multi-candidats SSH selon priorite SANEF
Probleme: vrexpbtex1 est sur .sanef.groupe (exception a la convention vr*=.sanef-rec.fr).
Le code tentait UN seul target via _resolve (TCP port 22 only) et echouait sans fallback SSH.

Logique de resolution revisee:
1. Convention en 1er: suffixe le plus probable selon prefixe (vr/lr/sr=>.sanef-rec.fr,
   vp/lp/sp=>.sanef.groupe, etc.)
2. servers.fqdn (BDD) en 2e position si renseigne et plausible (commence par hostname.)
3. Autres suffixes du referentiel ensuite

Implementation:
- _candidate_targets(hostname) : nouvelle fonction qui retourne la liste ordonnee
  des FQDN candidats a essayer SSH
- _connect(target, hostname, errors=...) : accepte une list errors optionnelle ou
  les exceptions de chaque tentative (PSMP/cle/password) sont append en clair pour
  diagnostic. Retro-compatible (errors=None par defaut)
- _connect_via_psmp(target, errors=...) : meme pattern
- _fqdn_is_consistent : assoupli, ne verifie plus la convention SANEF (qui rejetait
  les exceptions legitimes), juste que le FQDN commence par hostname.
- run_all_checks: itere _candidate_targets et essaie _connect sur chaque, accumule
  les erreurs de tous les candidats, retourne le 1er qui aboutit

UI:
- check_dns: si target trouve mais client KO, status=warn et liste des candidats tentes
- check_ssh: classification erreur (no route/timeout/refused/permission denied/etc.)
  + liste des candidats tentes + suggestion pour FQDN exception
2026-05-07 19:31:14 +02:00
..
data Comparaison même semaine 2026 vs 2025: barres, écart pts, objectif, données incomplètes 2026-04-06 23:47:01 +02:00
models PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
routers feat(patching): particularites par serveur (notes wiki SANEF) + skip_first_reboot + reboot_delay cluster 2026-05-07 11:41:05 +02:00
scripts Qualys agents: bouton Rafraichir + cron 6h 2026-04-11 21:56:59 +02:00
services feat(prepatch): iteration multi-candidats SSH selon priorite SANEF 2026-05-07 19:31:14 +02:00
static BOC SAP corrigé, stop/start order, patch waves, DMZ zone, préférences patching 2026-04-05 03:52:46 +02:00
templates feat(patching): particularites par serveur (notes wiki SANEF) + skip_first_reboot + reboot_delay cluster 2026-05-07 11:41:05 +02:00
__init__.py PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
auth.py PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
config.py Service iTop REST: synchro bidirectionnelle serveurs + contacts 2026-04-10 23:11:32 +02:00
database.py Mode Demo/Reel au login + base patchcenter_demo 2026-04-10 19:39:35 +02:00
dependencies.py Users/Contacts: workflow profils + LDAP + sync iTop + etat aligne 2026-04-12 18:50:43 +02:00
main.py feat(patching): import planning xlsx (etape 1) - tables patch_planning_imports + rows, page upload + selecteur semaine + tableau 2026-05-04 12:57:35 +02:00