改进卷迁移记录

https://blueprints.launchpad.net/cinder/+spec/improve-volume-transfer-records

此蓝图建议通过在 transfer 表以及相关的 API 响应中添加 source_project_iddestination_project_idaccepted 字段,来改进卷迁移记录,从而方便用户追溯卷迁移历史。

问题描述

目前,卷迁移记录在迁移后不包含目标项目 ID,迁移前不包含源项目 ID。这些字段对于管理员和运维人员追溯迁移历史非常有用。

并且,一旦迁移记录被删除,用户将无法确定该迁移在删除之前是否已被接受。

这对于管理员和用户追溯项目之间的卷历史记录以及审计卷记录来说是不利的。

用例

  • 为了追溯卷迁移历史,管理员希望知道在迁移之前卷的拥有者是谁。

  • 管理员希望知道被删除的迁移记录是否已被接受。

提议的变更

此规范建议进行以下操作

  1. transfer 表添加三个新字段

    • source_project_id,此字段记录卷迁移之前的源项目 ID。

    • destination_project_id,此字段记录卷迁移之后的目标项目 ID。

    • accepted,此字段记录该迁移是否已被接受。

  2. 添加一个新的微版本 API,将上述字段添加到以下 API 的响应中

    • 创建卷迁移 POST /v3/{project_id}/volume-transfers

    • 显示卷迁移详情 GET /v3/{project_id}/volume-transfers

    • 列出卷迁移和详情 GET /v3/{project_id}/volume-transfers/detail

    “列出卷迁移(非详情)”API 的响应将不包含这些字段。

备选方案

管理员可以从日志中找到部分卷迁移信息,但很难轻松找到,尤其是在用户想要审计非常旧的卷迁移时。

REST API 影响

将创建一个新的微版本,将这些新添加的字段添加到与迁移相关的 API 响应中。

数据模型影响

安全影响

通知影响

通知将被更改以添加这些新添加的字段。

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

Yikun Jiang <yikunkero@gmail.com>

工作项

  • transfer 表添加 source_project_iddestination_project_idaccepted 字段

  • 向相关的 API 添加 source_project_iddestination_project_idaccepted 字段。

  • 实现 python-cinderclient 的更改,以支持使用 --detail 列出迁移记录。

  • 更新相关的迁移 API 文档。

依赖项

测试

  • 应实现单元测试、tempest 和其他相关测试

文档影响

参考资料