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:
|
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()
|
v = voutes()
|
||||||
if not v:
|
if not v:
|
||||||
print("Aucune voute a nommer : ni instance montee, ni underlay.")
|
print("Aucune voute a nommer : ni instance montee, ni underlay.")
|
||||||
return 0
|
return 0
|
||||||
manquantes = 0
|
bloquant = False
|
||||||
for role, nom, chemin in v:
|
for role, nom, chemin in v:
|
||||||
present = chemin.is_file()
|
present = chemin.is_file()
|
||||||
manquantes += 0 if present else 1
|
if role == "instance" and not present:
|
||||||
print(f"{role:<11} {nom:<20} {'cle presente' if present else 'CLE ABSENTE '} {chemin}")
|
bloquant = True
|
||||||
if manquantes:
|
etiquette = "cle presente" if present else (
|
||||||
print(f"\n{manquantes} cle(s) absente(s). En creer une :",
|
"CLE ABSENTE " if role == "instance" else "sans cle ")
|
||||||
"umask 077; openssl rand -base64 48 | tr -d '\\n' > <chemin>", sep="\n ")
|
print(f"{role:<11} {nom:<20} {etiquette} {chemin}")
|
||||||
return 1 if manquantes else 0
|
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:
|
def main(argv: list[str] | None = None) -> int:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue