删除(卷、快照等)的参数组合

https://blueprints.launchpad.net/cinder/+spec/volume-delete-parameters

本规范概述了如何改进我们的卷删除功能,尤其是在可选参数方面,这些参数请求非默认行为。

问题描述

无法同时使用卷强制删除和级联删除。

由于它们必须以合理的方式与 os-force-delete 等交互,而 os-force-delete 从用户的角度来看是卷删除的一部分,但不是相同的 API 操作,因此很难向卷删除添加更多参数。

用例

这使得删除可能处于异常状态的卷更容易。

它还简化了我们的 API,通过将可选参数传递给删除操作,而不是单独的操作调用。这使我们能够以有意义的方式组合参数(强制 + 级联),并将相同的组合扩展到快照删除、CG 删除等,而无需为每个参数创建 X 个删除 API 操作。(例如,os-force-delete、os-force-delete-snapshot、os-force-delete-cg 等)

同时考虑是否希望以后添加删除已附加卷的选项,并使用“force-detach”参数等。

这还应减少管理员/用户需要使用 reset-state 操作的情况。

提议的变更

弃用 os-force-delete 的使用,并使“force”成为像“cascade”一样传递给卷删除的参数。

将“force”默认设置为仅管理员操作的能力将通过配置保留。

备选方案

不作任何更改。

数据模型影响

REST API 影响

  • 卷删除的新布尔“force”参数,默认值为 False。

    如果不与其他参数结合使用,它的行为将与 os-force-delete 相同。

    如果与 cascade 结合使用,将执行忽略卷和快照状态的级联删除。

安全影响

通知影响

其他最终用户影响

$ cinder delete –force –cascade <volume>

将被接受。这提供了一个“无论状态如何删除此卷”的操作,而今天尚不存在。

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

eharney

工作项

  • 将“force”作为参数添加到卷删除 API

  • 添加逻辑以处理 force 和 cascade 的组合

  • (最终) 使用新的 API 微版本删除 os-force-delete

  • 考虑对“unmanage”执行相同的操作,例如“unmanage –cascade”。

依赖项

测试

用于卷删除的新 tempest 测试,使用参数化版本而不是 os-force-delete。

cascade + force 卷删除的 tempest 测试。

文档影响

cinderclient 卷删除的新参数。

参考资料