Convergence Rollback

Include the URL of your launchpad blueprint:

Problem description

We need to allow the user to cancel an update that is in progress and roll back to the previous known good state. We also need to give users the option of rolling back to the previous known good state in the event of a failure while updating the stack.

Proposed change

Since convergence removes the Stack-level locking for updates, we can implement rollback as a simple update to a previously-stored version of the template. Other parts of the convergence implementation will ensure that this deals correctly with any resources that may still be in progress. The update will still get a new traversal ID, even though it is updating to the same template ID that was seen previously.

In the Stack table, we will store the ID of the most recent template to successfully complete (if any) alongside the ID of the current target template (at the completion of an update, these will be the same). Whenever either of the stored template IDs are overwritten in such a way that we will no longer refer to a particular Template, delete that Template from the database.





Primary assignee:



Target Milestone for completion:


Work Items

  • Implement rollback

  • Clean up unused templates