ajout d'un etat error #37
Labels
No labels
bug fix
feature implementation
new feature
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
syonad/two#37
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
quand les vms sont creer elle reste en creating meme quand il y a une erreur, il faudrait ajouter un status error.
il faudrait ajouter un check sur les delete pour vérifier que la ressource est en etat error ou dans un running, (peut-être qu'un changement des états created vers running serais bien)
on avance a notre rythme
Livré, validé sur lab1 le 2026-08-14.
Machine à états —
creating → running → deleting → deleted, pluserroratteignable depuiscreatingetdeleting, et d'où undeletingde reprise est possible. Mêmes états pour VPC, subnet et VM : le vocabulaire VMstarting/started/stopping/stoppeddisparaît.Décisions
erroren base : la cause de l'échec reste dans les logsslog,state=errorseul.errorest positionné uniquement parDispatcher.Dispatchviacmd.Key(), jamais ailleurs — d'où l'ajout deKey()à l'interfaceCommand.runningouerrorseulement, sinon 409. Depuiserrorelle est best-effort : les ressources système peuvent être partiellement créées, cohérent avec la décision « pas de rollback ».state.Get/state.Set:Setrefuse une valeur hors enum,Getrefuse d'en retourner une non reconnue.Une étape du plan s'est révélée impossible telle quelle — le gating du delete et le renommage
created/started→runningdevaient être deux étapes ;state.Getrefusant toute valeur hors enum, un gating livré seul aurait rendu indélétable toute ressource existante. Les deux forment un seul changement atomique. Leçon générale : chaque étape d'un plan doit laisser le dépôt cohérent.Migration au démarrage, idempotente, jouée après
InitDBet avant le serveur HTTP :created/started→running,stopped→deleted, et tout état transitoire →error(la queue worker étant en mémoire, une ressource restée transitoire est forcément orpheline). Une valeur ni ancienne ni nouvelle part aussi enerroravecreason=unknown state, plutôt que de bloquer l'agent au démarrage. Chaque transition est loguée.Bug corrigé au passage —
deleteSubnetrenvoyait 404 pour toute erreur dePrepare, masquant un refus d'état en 404. Aligné sur la convention vpc/vm : 404 si absent, 409 sinon.Point d'attention — cette feature ne relance pas les ressources en
error: c'est au caller de supprimer puis recréer.