Rollback Mechanism¶
https://blueprints.launchpad.net/watcher/+spec/rollback-mechanism
Problem description¶
After every audit, there would be one actionplan to execute. The actionplan is a group of actions, such as:
migrations
change nova service state
change node power state
…
Sometimes, the users want to rollback one actionplan even after the actionplan successfully executed.
To tester, they usually make the env unbalance, so that there will be instances migration during audit. After that they need to migrate the instances back to the source host for next test.
Moreover, for host maintenance, it will migrate all instances from the maintaining host to others. After the host maintenance and active again, there is no mechanism to migrate the instances automatically back to the maintaining host.
Use Cases¶
As a QA of Watcher, I want to rollback the actionplan, so that I can easily restore the environment for next test.
As an openstack operator, I want to migrate the instances back to the source node after the node having been executed “host maintenance” strategy.
Proposed change¶
In watcher-api, we can add ‘rollback’ action to ActionPlan API. When the api recieves the rollback request and then distributes the request to watcher-decision-engine module.
In watcher-decision-engine, it retrives the actionplan and records every rollback of the actions which belong to the actionplan, then return the rollback result to watcher-api.
Because the compute data model changes by time, the actionplan is possible to rollback failed. To make the rollback mechanism to work as far as possible, only recent(default, recent in one hour) actionplan is allowed to rollback.
Alternatives¶
None
Data model impact¶
None
REST API impact¶
Rollback Action Plan
/v1/action_plans/{actionplan_ident}/rollback
Method type: POST
actionplan_ident:UUID of the Action Plan
Normal http response code(200)
Expected error http response code(400,404)
Security impact¶
None
Notifications impact¶
None
Other end user impact¶
None
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
<sue>
Work Items¶
ActionPlan rollback action API
RollBack mechanism for one actionplan
Dependencies¶
None
Testing¶
Unit tests
Documentation Impact¶
Add documentation about how to use the new feature
References¶
None
History¶
Release Name |
Description |
---|---|
Ussuri |
Introduced |