From fde604c2a50bdd4f9c6a41d8bbcf05cc7309e77c Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Mon, 28 Sep 2026 09:57:06 -0400 Subject: [PATCH] pare-feu et pools Proxmox : les tenants du site, pas toute la federation Les deux devis balayaient tous les dossiers freres. Le runner du site, qui gardait un clone de patient 0, proposait de recreer ses groupes t29 ; le poste comptait un dossier de CI comme tenant. La frontiere et le SDN filtraient deja par underlay.tenants : ces deux-la suivent maintenant la meme liste. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 7 +++++++ scripts/devis_proxmox_fw.py | 8 ++++++-- scripts/devis_proxmox_pools.py | 5 +++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dc0a06..e675419 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,13 @@ rend `{'_erreur': …}`, et `rep or []` parcourait ce dict comme une liste vide. `ANCIEN_NOMMAGE` : sortie du devis sans cela, la zone aurait été lue comme étrangère et laissée en place, avec ses VLAN 1291-1296. +`devis_proxmox_fw.py` et `devis_proxmox_pools.py` balayaient encore TOUS les dossiers +frères (`decouvrir()`), alors que la frontière et le SDN s'en tiennent à +`underlay.tenants` (`decouvrir_du_site()`, dont la docstring le demandait déjà pour +« les devis qui équipent un site »). Le runner du site, qui gardait un clone de patient 0, +proposait donc de recréer ses groupes ; le poste comptait un dossier de CI comme tenant. +Les deux devis suivent maintenant la même liste : 2 tenants, et non 3. + Wiki republié (P60) : deux de ses pages nommaient patient 0. `make verifier` : 82 OK, 1 échec — P02, `test_ecriture_plan.py` sur `domaines.yml` (`'list' object has no attribute 'get'`), présent avant ce changement. diff --git a/scripts/devis_proxmox_fw.py b/scripts/devis_proxmox_fw.py index 194bf67..207e640 100644 --- a/scripts/devis_proxmox_fw.py +++ b/scripts/devis_proxmox_fw.py @@ -42,7 +42,7 @@ from resoudre_flux import ( # noqa: E402 _pairs, _resoudre_sources, ) -from devis_reseau import admin_de, decouvrir, inventaire_de, prefixe # noqa: E402 +from devis_reseau import admin_de, decouvrir_du_site, inventaire_de, prefixe # noqa: E402 LONGUEUR_MAX_GROUPE = 18 # limite de Proxmox pour un nom de groupe de securite @@ -385,7 +385,11 @@ def main(argv: list[str]) -> int: ap.add_argument("--verifier", action="store_true") args = ap.parse_args(argv) - devis = construire(decouvrir()) + # LES TENANTS DE CE SITE, PAS TOUTE LA FEDERATION (2026-09-28). Le balayage des + # dossiers freres ramenait un tenant retire dont le runner gardait le clone, et un + # dossier de CI sur le poste. La frontiere et le SDN filtraient deja par + # `underlay.tenants` ; ce devis equipe le meme cluster, il suit la meme liste. + devis = construire(decouvrir_du_site()) if args.verifier: total_g = sum(len(b["groupes"]) for b in devis["blocs"]) total_r = sum(len(g["regles"]) for b in devis["blocs"] for g in b["groupes"]) diff --git a/scripts/devis_proxmox_pools.py b/scripts/devis_proxmox_pools.py index 0846734..9f0fa12 100644 --- a/scripts/devis_proxmox_pools.py +++ b/scripts/devis_proxmox_pools.py @@ -49,7 +49,7 @@ from inventory_rules import (POOL_SITE, fonction_seq, pool_de, ) -from devis_reseau import DOSSIER_INSTANCES, decouvrir # noqa: E402 +from devis_reseau import DOSSIER_INSTANCES, decouvrir_du_site # noqa: E402 def _plan_de(nom_instance: str) -> dict: @@ -187,7 +187,8 @@ def main(argv: list[str]) -> int: print(POOL_SITE) return 0 - devis = construire(decouvrir()) + # Les tenants de CE SITE (voir `devis_proxmox_fw.main`, 2026-09-28). + devis = construire(decouvrir_du_site()) # LE SITE EST UN POOL AUSSI (2026-09-12). Les machines du genome — cache, forge, AC, # noms, depot, supervision — ne derivent d'aucun index : elles sont l'infrastructure # SUR laquelle les index vivent. D'ou un nom invariable, `Site-OPS`, identique d'un