devis switch : le roster d'hôtes se limite à la fabric configurée
Les VLAN et les trunks étaient déjà filtrés par fabric ; le roster de la section 0, non. Un équipement d'une autre fabric — les switches de stockage, le jour où ils seront déclarés — serait apparu en commentaire dans un devis qui ne le concerne pas. Un devis est une configuration qu'on applique, pas un inventaire. Vérifié en déclarant un hôte de la fabric stockage : il reste absent, et la sortie du jour est inchangée. Preuves : 24 OK, 0 échec. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
31e5121d68
commit
42cd269d29
2 changed files with 11 additions and 1 deletions
|
|
@ -20,6 +20,11 @@ taire :
|
|||
Conséquence directe : la question du spanning-tree ne se pose que sur la fabric principale —
|
||||
trois switches — et pas sur le stockage, dont les deux switches forment un domaine séparé.
|
||||
|
||||
Le roster d'hôtes de la section 0 est filtré de la même façon : un équipement d'une autre
|
||||
fabric n'apparaît pas, même en commentaire. Un devis est une configuration qu'on applique,
|
||||
pas un inventaire. Vérifié en déclarant un hôte de la fabric stockage — il reste absent, et
|
||||
la sortie du jour est inchangée.
|
||||
|
||||
Les `deny` de l'ACL couvrent en revanche **toutes** les fabrics, y compris celles hors
|
||||
périmètre : la règle porte sur l'adresse de destination, pas sur le câblage. Si un chemin
|
||||
s'ouvre un jour vers le stockage, il est déjà fermé.
|
||||
|
|
|
|||
|
|
@ -82,8 +82,13 @@ def section_underlay(underlay: dict | None) -> list[str]:
|
|||
out.append(f" description underlay {r['nom']}")
|
||||
out.append(f" ip address {r['passerelle']} {net.netmask}")
|
||||
out.append(" no shutdown")
|
||||
# Roster : seuls les hotes de CETTE fabric. Un equipement d'une autre fabric
|
||||
# (switches de stockage, par exemple) n'a rien a faire dans ce devis, meme en
|
||||
# commentaire — c'est une configuration qu'on applique, pas un inventaire.
|
||||
noms_reseaux = {r["nom"] for r in reseaux}
|
||||
for h in underlay_mod.hotes(underlay):
|
||||
out.append(f"! {h.get('nom','?')} = {h.get('ip','?')} ({h.get('reseau','?')})")
|
||||
if h.get("reseau") in noms_reseaux:
|
||||
out.append(f"! {h.get('nom','?')} = {h.get('ip','?')} ({h.get('reseau','?')})")
|
||||
# Ce que ce devis NE couvre PAS : les fabrics portees par d'autres switches.
|
||||
for autre in underlay_mod.fabriques(underlay):
|
||||
if autre == fabric:
|
||||
|
|
|
|||
Loading…
Reference in a new issue