From 478aab3eb8b7235157af97b0c1fba9d23739a1db Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Mon, 28 Sep 2026 10:08:22 -0400 Subject: [PATCH] pare-feu Proxmox : force dans l URL, et le retrait de t29 est pose Proxmox refuse un corps sur DELETE (501) : aucun IPSet n etait jamais retire par l applicateur. SDN, frontiere et pare-feu Proxmox ne portent plus rien de l index 29 ; le journal dit comment, et ce qui reste (strophe FRR). Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 10 ++++++++++ scripts/appliquer_proxmox_fw.py | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea47f44..c7a2e38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,16 @@ restaient posés sur le cluster. `appliquer_proxmox_fw.py` ajoute à son périm étiquettes des zones de `ANCIEN_NOMMAGE` (une liste, pas deux), et reçoit le même garde que le SDN contre un cluster muet. +**Posé le 2026-09-28, depuis le runner du site.** SDN : zone `t29`, 3 VNets, 3 sous-réseaux +retirés, le plan relu dit « Rien à faire ». Frontière : 44 objets `PATI29` et 3 routes +`10.29.x` retirés, 283 règles inchangées, rien d'autre au plan relu. Pare-feu Proxmox : les +6 groupes et 3 IPSets `t29-` retirés un par un par l'API — PAS par `proxmox-fw-appliquer`, +dont le plan mêle 64 changements préexistants sur `t17`/`t23` qui demandent leur propre +revue. Ce retrait a révélé un dernier défaut : l'applicateur envoyait `force` dans le CORPS +d'un `DELETE`, que Proxmox refuse (501) ; aucun IPSet n'était donc jamais retiré. Corrigé +(`?force=1`). La strophe FRR des nœuds de sortie garde `t29` : ils sont injoignables en SSH +depuis le runner. + 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/appliquer_proxmox_fw.py b/scripts/appliquer_proxmox_fw.py index e55a708..2325a1a 100644 --- a/scripts/appliquer_proxmox_fw.py +++ b/scripts/appliquer_proxmox_fw.py @@ -302,8 +302,11 @@ def appliquer(api: Cluster, p: dict) -> int: for r in reversed(api(f"/cluster/firewall/groups/{n}") or []): _fait(api(f"/cluster/firewall/groups/{n}/{r['pos']}", "DELETE"), f"purge {n}") _fait(api(f"/cluster/firewall/groups/{n}", "DELETE"), f"retrait groupe {n}") + # `force` DANS L'URL (2026-09-28) : Proxmox refuse tout corps sur un DELETE + # (« 501 Unexpected content for method 'DELETE' »). Envoye en corps, aucun IPSet + # n'etait jamais retire — constate en retirant ceux de `t29-`. for n in p["ipsets_retirer"]: - _fait(api(f"/cluster/firewall/ipset/{n}", "DELETE", {"force": 1}), f"retrait ipset {n}") + _fait(api(f"/cluster/firewall/ipset/{n}?force=1", "DELETE"), f"retrait ipset {n}") if echecs: print(f"\n {echecs} echec(s) — la reconciliation est INCOMPLETE.")