voutes : une cle absente n est pas une faute — elle est souvent la bonne reponse
Sur le runner d un tenant, la cle du SITE DOIT manquer : il porte la carte de la
fabric et ne doit jamais pouvoir l ouvrir. Ma premiere version sortait en erreur
des qu une cle manquait — elle presentait une SEPARATION REUSSIE comme un defaut,
et a fait echouer une chaine parfaitement saine.
Seule l absence de la cle de l INSTANCE MONTEE empeche la machine de travailler.
C est elle, et elle seule, qui decide du code de sortie ; le reste s affiche.
Constate sur ops-01 le jour de son armement :
instance OPS-Chezlepro cle presente
hebergeur SITE-Chezlepro sans cle
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
This commit is contained in:
parent
732aff9c70
commit
5c59f19530
1 changed files with 21 additions and 7 deletions
|
|
@ -112,19 +112,33 @@ def identites() -> str:
|
|||
|
||||
|
||||
def etat() -> int:
|
||||
"""Rapport lisible. Le CODE DE SORTIE ne juge que ce que CETTE machine doit pouvoir.
|
||||
|
||||
UNE CLE ABSENTE N'EST PAS UNE FAUTE — c'est souvent la bonne reponse (2026-08-28).
|
||||
Sur le runner d'un tenant, la cle du SITE doit manquer : il porte la carte de la
|
||||
fabric et ne doit jamais pouvoir l'ouvrir. Ma premiere version sortait en erreur des
|
||||
qu'une cle manquait, ce qui faisait echouer une chaine parfaitement saine et
|
||||
presentait une SEPARATION REUSSIE comme un defaut.
|
||||
|
||||
Seule l'absence de la cle de l'INSTANCE MONTEE empeche la machine de travailler :
|
||||
c'est elle, et elle seule, qui decide du code de sortie. Le reste s'affiche.
|
||||
"""
|
||||
v = voutes()
|
||||
if not v:
|
||||
print("Aucune voute a nommer : ni instance montee, ni underlay.")
|
||||
return 0
|
||||
manquantes = 0
|
||||
bloquant = False
|
||||
for role, nom, chemin in v:
|
||||
present = chemin.is_file()
|
||||
manquantes += 0 if present else 1
|
||||
print(f"{role:<11} {nom:<20} {'cle presente' if present else 'CLE ABSENTE '} {chemin}")
|
||||
if manquantes:
|
||||
print(f"\n{manquantes} cle(s) absente(s). En creer une :",
|
||||
"umask 077; openssl rand -base64 48 | tr -d '\\n' > <chemin>", sep="\n ")
|
||||
return 1 if manquantes else 0
|
||||
if role == "instance" and not present:
|
||||
bloquant = True
|
||||
etiquette = "cle presente" if present else (
|
||||
"CLE ABSENTE " if role == "instance" else "sans cle ")
|
||||
print(f"{role:<11} {nom:<20} {etiquette} {chemin}")
|
||||
if bloquant:
|
||||
print("\nLa cle de l'instance montee manque — cette machine ne peut rien "
|
||||
"configurer.\n umask 077; openssl rand -base64 48 | tr -d '\\n' > <chemin>")
|
||||
return 1 if bloquant else 0
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
|
|
|
|||
Loading…
Reference in a new issue