回滚机制¶
https://blueprints.launchpad.net/watcher/+spec/rollback-mechanism
问题描述¶
每次审计后,都会有一个行动计划 (actionplan) 需要执行。行动计划是一组动作,例如
migrations
更改 nova 服务状态
更改节点电源状态
…
有时,用户希望在行动计划成功执行后回滚该行动计划。
对于测试人员来说,他们通常会使环境失衡,以便在审计期间进行实例迁移。之后,他们需要将实例迁移回源主机以进行下一次测试。
此外,对于主机维护,它会将所有实例从维护主机迁移到其他主机。主机维护完成后并重新激活,没有机制可以自动将实例迁移回维护主机。
用例¶
作为 Watcher 的 QA,我希望能够回滚行动计划,以便我可以轻松地恢复环境以进行下一次测试。
作为 OpenStack 操作员,我希望在节点执行“主机维护”策略后,将实例迁移回源节点。
提议的变更¶
在 watcher-api 中,我们可以向 ActionPlan API 添加“rollback”动作。当 api 接收到回滚请求时,将其分发到 watcher-decision-engine 模块。
在 watcher-decision-engine 中,它检索行动计划并记录属于该行动计划的所有动作的回滚记录,然后将回滚结果返回给 watcher-api。
由于计算数据模型会随时间变化,行动计划可能无法回滚。为了尽可能地使回滚机制正常工作,仅允许回滚最近的行动计划(默认情况下,最近一小时内的)。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
回滚行动计划
/v1/action_plans/{actionplan_ident}/rollback
方法类型:POST
actionplan_ident:行动计划的 UUID
正常的 http 响应代码(200)
预期的错误 http 响应代码 (400,404)
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
<sue>
工作项¶
行动计划回滚动作 API
一个行动计划的回滚机制
依赖项¶
无
测试¶
单元测试
文档影响¶
添加关于如何使用新功能的文档
参考资料¶
无
历史¶
发布名称 |
描述 |
|---|---|
Ussuri |
引入 |