t_9e5952c4 — Le service d'état passe sur le LXC 132, avec sa sauvegarde relue #1740
Loading…
Reference in a new issue
No description provided.
Delete branch "hermes/etat-132"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Carte t_9e5952c4. L'hôte du LXC 130 est éteint : le service d'état qui vivait dessus ne répond plus, et tout ce qui l'appelle tombe. Il renaît sur le LXC 132, qui reste allumé, avec sa sauvegarde quotidienne relue.
Ce qui change
_infra/etat-studio.service: unité du 132 —192.168.1.86:8799(ETAT_ADRESSE),User=studio,Restart=always, code dans/opt/etat-studio, base/var/lib/etat-studio/etat.sqlite. Le plafond du jour (ETAT_PLAFOND) vit à côté de la base, sousstudio: le 132 ne monte pas/studio(NFS) et l'opérateur doit pouvoir relever son chiffre sans root._infra/installer-etat-service.sh: vérifie d'abord qu'il peut écrire dans sa destination, ne pose rien à moitié, et dit la ligne root à lancer par le Proxmox. La base n'est jamais créée, copiée ni renommée._infra/etat-132-pousser.sh: pose la source sur le 132 dans le home destudio(le 132 n'a pas de copie git du dépôt) et sonde les sommes des deux côtés._infra/etat-sauvegarde.py+etat-sauvegarde.timer(03:40) : copie cohérente par l'API de sauvegarde de SQLite (la ligne de commandesqlite3n'existe pas sur le 132 : mesuré), refermée à plat, relue (integrity_check, mêmes tables, au moins autant de lignes qu'au départ) et gardée 7 fois. Base absente = refus en 1, sans rien écrire ; copie qui ne se relit pas = renommée.verification-ratee._infra/etat-service.py: adresse par défaut du 132._infra/LISEZMOI.md,_tableau/LXC-132.md,OUTILS.md,LECONS.md(deux leçons datées).Champ d'API qui change (le front en dépend)
GET /santedu service d'état porte désormais{"ok", "demarrage", "bail", "base", "journal"}:base(le chemin de la base) etjournal(wal,absente,inconnu : <raison>) s'ajoutent. Additif —etat_client.sante()et ses appelants ne lisent queok,demarrage,bail. Un contrôle ne crée rien :/santelit la base en lecture seule.Preuves (mesurées le 2026-10-15)
python3 _infra/test_etat_132.py: 17 OK, ÉCARTS : aucun (unité, minuteur, installateur, base neuve, adresse impossible,/santesur base absente et sur base illisible).python3 _infra/test_etat_sauvegarde.py: 23 OK, ÉCARTS : aucun ; 100 % du fichier (couverture mesurée).python3 _tableau/lancer-tests.py --tout: 191 bancs verts, cliquet de couverture passé (ENSEMBLE 99 %).cargo test --release --lockeddans_tableau/rust: rc 0 (tous lestest result: ok) ;cargo build --release --lockedsans erreur ni nouvel avertissement.192.168.1.86:8799(base jetable dans/var/tmp, python3 3.11.2) :GET /sante→{"ok": true, "base": "/var/tmp/etat-essai/etat.sqlite", "journal": "wal"};POST /sorties/poser→ 200, puis relu parGET /sortiesetGET /sorties/detail;GET /sante/GET /sortiesdepuis le PC ; puis arrêté par son PID (port 8799 libre ensuite, bac à sable supprimé).journal wal, 5 tables, 13 lignes → copie relue (integrity ok, mêmes tables, 12 sorties, 1 bascule)./var/lib/etat-studione contient ensuite que la base et la copie.Rouge préexistant, pas de cette branche
test_garde_couches.py,test_garde_doublons.pyettest_garde_plafond.pysont rouges à cause de_tableau/: doublon_iso(pilote.py/releves.py), doublonlire_fichier(conso_claude.py/rust/banc-memoire-unite.py),collecte.pyà 840 lignes pour une dérogation à 800. Mesuré dans un worktree détaché surorigin/main(7861f657) sans mes fichiers : les trois échouent à l'identique.Ce qui reste à faire, et qui n'est pas de moi
/optappartient à root —touchrefusé àstudio;root@192.168.1.60refusepublickey,password). La source est déjà en place sur le 132 ; il reste une commande, à lancer du Proxmox :ssh root@192.168.1.60 'pct exec 132 -- sh /home/studio/etat-studio-src/_infra/installer-etat-service.sh'etat_client.py:98,_tableau/socle.py:445,_tableau/serveur_depenses.py:18,_tableau/collecte.py:40, et les défauts du service Rust. Tant qu'ils ne sont pas changés, personne n'atteint le service, même debout sur le 132. Le collecteur (192.168.1.142:8798, onglet Processus) est dans le même cas.Fusionnée automatiquement par
fusion-auto(forge) : CI verte, sans conflit.