<div dir="ltr">Hi team,<div><br></div><div>there is blueprint[1] that was approved during Liberty and resubmitted to Newton(with spec[2]).</div><div>The idea is to define state machines for operations as live-migration, resize, etc. and to deal with them operation states.</div><div>The spec PoC patches are overall good. At the same time I think is will be good to get agreement on the usage of state-machines in Nova.</div><div>There are 2 options:</div><div><ul><li>implement proposed change and use state machines to deal with states only<br></li><ul><li>procs:</li><ul><li>could be implemented/merged right now</li><li>cleans up states for migrations</li></ul><li>cons:</li><ul><li>state machine only deal with states, and it will be hard to build on top of it task API, as bp [1] was designed for another thing. </li></ul></ul></ul><ul><li>use state machines in Task API(which I'm going to work on during next release):</li><ul><li>procs:</li><ul><li>Task API will orchestrate and deal with long running tasks</li><li>usage state-machines could help with actions rollbacks/retries/etc.</li></ul><li>cons:</li><ul><li>big amount of work</li><li>requires time.</li></ul></ul></ul>I'd like to discuss these options in this thread.</div><div><br></div><div>Timofey</div><div><br></div><div>[1] - <a href="https://blueprints.launchpad.net/openstack/?searchtext=migration-state-machine">https://blueprints.launchpad.net/openstack/?searchtext=migration-state-machine</a></div><div>[2] - <a href="https://review.openstack.org/#/c/320849/">https://review.openstack.org/#/c/320849/</a><br></div></div>