nomenclature : VMID 9 chiffres ip-miroir (opt-in, fédération)

Nouveau schema VMID 'ip-miroir' (vmid_schema dans la nomenclature) : 9 chiffres
I·VVV·HHH·NN = index·VLAN·octet-hote·sequence. Le VMID contient l'IP
(10.(10+index).VLAN.hote) + le tenant → lecture directe. Defaut 'compact'
(retro-compatible) : les instances existantes (lab) gardent leurs VMID.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-07-04 22:58:08 -04:00
parent 20329895f7
commit f7b8438cbd

View file

@ -325,10 +325,20 @@ def deriver_nomenclature(fonction: str, seq: int, nomenclature: dict) -> dict |
# retro-compatible (instances sans index, bacs a sable). 1 chiffre -> 9 instances
# prod federables avec un VMID a 5 chiffres ; elargir l'index pour davantage.
index = nomenclature.get("index", 9)
hote = svc * 10 + int(seq)
# Schema du VMID. 'ip-miroir' (opt-in) : 9 chiffres mnemotechniques encodant
# index + VLAN + octet-hote + sequence -> le VMID contient litteralement l'IP
# (10.(10+index).VLAN.hote) et le tenant. 'compact' (defaut, retro-compatible) :
# index.categorie.service.sequence (largeur variable, VMID des instances existantes).
schema = nomenclature.get("vmid_schema", "compact")
if schema == "ip-miroir":
vmid = f"{index}{int(c.get('vlan', 0)):03d}{hote:03d}{int(seq):02d}"
else:
vmid = f"{index}{cat}{svc}{int(seq):02d}"
return {
"vmid": f"{index}{cat}{svc}{int(seq):02d}",
"vmid": vmid,
"vlan": c.get("vlan"),
"adresse_ip": f"{base3}.{svc * 10 + int(seq)}",
"adresse_ip": f"{base3}.{hote}",
"passerelle": c.get("passerelle"),
"cidr": nomenclature.get("cidr_hote", 24),
}