|
Some checks are pending
verifier / verifier (push) Waiting to run
Soir de reconstruction, VPN pas encore monte. `make placement-plan` — le devis qu'on lance
AVANT quarante minutes de deploiement — rendait `AttributeError: 'str' object has no
attribute 'get'` : dix lignes de trace Python pour dire « le nom `asgard` ne se resout pas
d'ici ».
En panne, `Cluster.__call__` rend {"_erreur": "..."} — un DICT. Le devis l'iterait comme
une liste, et un dict itere rend ses CLEFS. `Cluster.rate()` existait pour ca et n'etait
appele nulle part ici. Les quatre appels passent desormais par une garde qui nomme la
cause, l'hote interroge et le geste a tenter (resolution, VPN, jeton).
ET LE DEVIS MESURAIT LE MAUVAIS TENANT. `placement_du_tenant()` lisait `instance/` en dur :
viser patient 0 avec SETOPS_INSTANCE mesurait en silence le placement de l'instance
montee. Le verdict etait juste — pour l'autre tenant. Les deux portaient les memes quatre
valeurs, ce qui est exactement la circonstance ou l'erreur ne se voit pas. C'est la
HUITIEME resolution d'instance ou d'inventaire codee en dur trouvee en trois jours ; a ce
compte ce n'est plus une serie de bogues, c'est une piece manquante.
L'en-tete annoncait aussi « tenant instance » — le nom du lien, pas celui du tenant.
TROIS TESTS, aucun reseau touche (Cluster simule) : une panne devient un refus lisible ;
une reponse qui n'est pas une liste est refusee — c'est le cas silencieux, celui qui
franchirait la premiere garde ; le cas nominal traverse sans gene. Branches sur `make test`.
Verifie ensuite contre le cluster reel : le devis nomme « OPS-Patient0 » et confirme ses
quatre objets (asgard, TrueNAS, vmbr1, gabarit 99998).
make test OK ; make verifier 38/38 ; make ci 38/38.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| tests | ||
| applications.py | ||
| appliquer_opnsense.py | ||
| appliquer_proxmox_fw.py | ||
| appliquer_sdn.py | ||
| bases_donnees.py | ||
| config_proxmox.py | ||
| couverture_gui.py | ||
| devis_certificats.py | ||
| devis_courriel.py | ||
| devis_expositions.py | ||
| devis_frontiere.py | ||
| devis_identite.py | ||
| devis_mtu.py | ||
| devis_opnsense.py | ||
| devis_placement.py | ||
| devis_postgresql.py | ||
| devis_proxmox_fw.py | ||
| devis_proxmox_pools.py | ||
| devis_reseau.py | ||
| devis_sdn.py | ||
| devis_versions.py | ||
| domaines.py | ||
| instance_creer.py | ||
| instances.py | ||
| instancier.py | ||
| inventory_gui.py | ||
| inventory_host.py | ||
| inventory_rules.py | ||
| model_creer.py | ||
| modeles.py | ||
| orchestrer.py | ||
| plan_recette.py | ||
| prouver.py | ||
| proxmox_api.py | ||
| raser.py | ||
| resoudre_flux.py | ||
| serveurs.py | ||
| socle_amorcage.py | ||
| sonde_tcp.py | ||
| underlay.py | ||
| verifier_gui.py | ||
| verifier_intrants.py | ||
| verifier_ports.py | ||
| verifier_signature.py | ||
| voute.py | ||