preuve : P31 ignorait les scripts invoques par un role ou un playbook
En ajoutant la verification de signature, P31 a declare `verifier_signature.py` « injoignable » — alors qu'il tourne a chaque deploiement de Keycloak. Elle ne regardait que le Makefile et les autres scripts, jamais les roles ni les playbooks. Une preuve qui ignore un chemin d'appel reel accuse du code sain, et on apprend a passer outre : le pire sort possible pour une garde. ET J'AI POUSSE AVEC CETTE PREUVE EN ECHEC. Troisieme fois de la session, et toujours la meme faute : `prouver.py | tail -1` rend le code de sortie de `tail`, donc le `&&` qui suit continue quoi qu'il arrive. Le commit precedent (verification de signature Keycloak) est parti avec 34 OK / 1 echec. Corrige ici, et la lecon vaut plus que le correctif : ne jamais lire le verdict d'une garde a travers un tube. Verifie : prouver.py 35 OK, code de sortie lu SANS tube. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
dea7769ff3
commit
9e4101723b
1 changed files with 14 additions and 0 deletions
|
|
@ -581,6 +581,18 @@ def preuve_documentation_outillage() -> tuple[bool, str]:
|
|||
manques.append(f"{len(muets)} script(s) sans docstring explicative : "
|
||||
+ ", ".join(muets[:6]) + ("…" if len(muets) > 6 else ""))
|
||||
|
||||
# Un script peut aussi etre invoque par un ROLE ou un PLAYBOOK — `serveur_keycloak`
|
||||
# appelle `verifier_signature.py` pour controler la signature de son archive. Ne
|
||||
# regarder que le Makefile et les autres scripts declarait ce script « injoignable »
|
||||
# alors qu'il tourne a chaque deploiement. Trouve le 2026-08-10, en ajoutant
|
||||
# justement cette verification : une preuve qui ignore un chemin d'appel reel accuse
|
||||
# du code sain, et on apprend a passer outre — le pire sort pour une garde.
|
||||
ansible_yaml = "\n".join(
|
||||
f.read_text(encoding="utf-8", errors="ignore")
|
||||
for dossier in ("roles", "playbooks")
|
||||
for f in (RACINE / dossier).rglob("*.yml")
|
||||
)
|
||||
|
||||
injoignables = []
|
||||
for f in scripts:
|
||||
autres = "\n".join(v for k, v in textes.items() if k != f.name)
|
||||
|
|
@ -589,6 +601,8 @@ def preuve_documentation_outillage() -> tuple[bool, str]:
|
|||
continue
|
||||
if module in autres: # importe ou appele par un autre outil
|
||||
continue
|
||||
if f.name in ansible_yaml: # invoque par un role ou un playbook
|
||||
continue
|
||||
injoignables.append(f.name)
|
||||
if injoignables:
|
||||
manques.append(f"{len(injoignables)} script(s) qu'aucune cible ni aucun outil "
|
||||
|
|
|
|||
Loading…
Reference in a new issue