Set-OPS-Public/scripts
Daniel Allaire 98ab74d047 underlay : les tenants declares sont confrontes aux dossiers reels
Suite du filtre de portee : `underlay.tenants` nomme des DOSSIERS FRERES, et une faute de
frappe y etait invisible — le tenant disparaissait des trois devis du site, qui restaient
« conformes » sur ce qu'il en restait.

Sur un site a UN SEUL tenant — le cas de la prochaine implantation — la faute rend un
devis VIDE : une frontiere sans regle, un commutateur sans VLAN. Rien dans le mot
« conforme » ne dirait qu'on vient de dessiner le vide.

L'ecart est lisible sans toucher au materiel : d'un cote une liste de noms, de l'autre
les dossiers presents. Il se dit donc a `make underlay` (D-75). Quatre situations, quatre
messages distincts : dossier absent ; dossier sans plan/nomenclature.yml ; nomenclature
non federee (index absent, categories vide, federe: false) ; plus aucun nom qui
corresponde.

CE QU'UN GABARIT NE DOIT PAS SUBIR. Un modele decrit du materiel, pas un site deploye :
sans garde, tout modele portant un exemple de `tenants` echouerait chez quiconque n'a pas
ce dossier, et P17 deviendrait rouge sur la machine du voisin. La distinction existait
deja : modeles.py passe des reperes de tenants EXPLICITES (gabarit), le site les laisse
deriver. La verification ne s'applique qu'au second cas.

Trois tests dans test_adressage_derive.py — nom introuvable, clef absente, gabarit
epargne — avec un nom absurde pour qu'aucun test ne depende des dossiers de la machine.

make test 15 + 9 ; prouver 37 OK, 0 echec, 0 saute.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 16:55:49 -04:00
..
tests underlay : les tenants declares sont confrontes aux dossiers reels 2026-08-18 16:55:49 -04:00
applications.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
appliquer_opnsense.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
appliquer_proxmox_fw.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
appliquer_sdn.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
bases_donnees.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
config_proxmox.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
couverture_gui.py Trois preuves qui regardent au-dela d'une seule instance + champ liens/websocket au GUI 2026-07-22 21:32:42 -04:00
devis_certificats.py devis des certificats : disque contre memoire, et l'AC etait expiree 2026-08-08 07:20:56 -04:00
devis_courriel.py courriel : routage local par identifiant, et la livraison interne remise en marche 2026-08-08 09:42:45 -04:00
devis_expositions.py devis des expositions : une vraie requete, depuis deux points de vue 2026-08-08 07:33:49 -04:00
devis_frontiere.py frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
devis_identite.py devis d'identite : comparer le deploye au declare 2026-08-08 06:55:06 -04:00
devis_mtu.py mtu : le 1450 de la zone n'atteignait pas les invites 2026-08-10 17:54:03 -04:00
devis_opnsense.py portee : les trois devis d'un site partagent enfin la meme regle 2026-08-18 16:38:30 -04:00
devis_placement.py placement : un devis confronte les QUATRE objets au cluster — dont le gabarit 2026-08-13 10:11:25 -04:00
devis_postgresql.py devis PostgreSQL et courriel : la serie des devis de service est complete 2026-08-08 08:53:49 -04:00
devis_proxmox_fw.py flux : admin devient un pair, et make ca-racine livre la racine 2026-08-07 17:26:35 -04:00
devis_proxmox_pools.py proxmox : pools créés, jeton normalisé, reliquat de voûte supprimé 2026-08-03 15:52:44 -04:00
devis_reseau.py portee : les trois devis d'un site partagent enfin la meme regle 2026-08-18 16:38:30 -04:00
devis_sdn.py portee : les trois devis d'un site partagent enfin la meme regle 2026-08-18 16:38:30 -04:00
devis_versions.py devis : make versions-mesurer — l'ecart avec l'amont devient lisible 2026-08-10 23:02:16 -04:00
domaines.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
instance_creer.py Créer une instance depuis un modèle (CLI + GUI) 2026-07-23 14:13:36 -04:00
instances.py adressage : l'index est borne [0-255] — 10.300.0.0/16 n'est pas un reseau 2026-08-12 16:21:33 -04:00
instancier.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
inventory_gui.py correction : 94 lignes de commentaire perdues, pas 121 2026-08-18 15:06:03 -04:00
inventory_host.py gabarit : deriver le domaine de recherche, et vider resolv.conf a la capture 2026-08-09 10:25:03 -04:00
inventory_rules.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
model_creer.py gabarit : modeleChezlepro -> modeleSetOPS, et une porte pour l'hebergeur 2026-08-12 14:36:44 -04:00
modeles.py modèles : l'underlay devient modélisable, et P17 le valide 2026-08-02 17:11:18 -04:00
orchestrer.py Mise en conformité prouvable : registre d'affirmations + make prouver 2026-07-20 19:53:18 -04:00
plan_recette.py Plan de recette (P22) : le pendant manuel de make prouver 2026-07-23 15:49:16 -04:00
prouver.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
proxmox_api.py proxmox-fw : un applicateur, et un refus assume 2026-08-06 19:39:33 -04:00
raser.py raser : lire le RESULTAT de la destruction, pas son accuse de reception 2026-08-10 22:47:28 -04:00
resoudre_flux.py portabilite : le repli nftables survivait a la bascule et annulait tout 2026-08-10 12:24:41 -04:00
serveurs.py P03 : la preuve comparait chaque instance a l'inventaire d'UNE SEULE 2026-08-18 14:35:01 -04:00
socle_amorcage.py D-71 : PKI et DNS debout avant tout, et la zone inverse manquait 2026-08-08 15:29:57 -04:00
sonde_tcp.py frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
underlay.py underlay : les tenants declares sont confrontes aux dossiers reels 2026-08-18 16:55:49 -04:00
verifier_gui.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
verifier_intrants.py P32 / D-72 : tout intrant exige par un role est fourni par l'instance 2026-08-09 09:40:25 -04:00
verifier_ports.py P33 / D-73 : aucune collision de port entre roles co-localises 2026-08-09 09:46:17 -04:00
verifier_signature.py forgejo : epingle 16.0.2, et le verificateur accepte la cle PRIMAIRE 2026-08-11 01:04:16 -04:00
voute.py amorcage_acces : le role qui cree UN acces puis se retire 2026-08-07 13:42:27 -04:00