支持获取卷元数据摘要

https://blueprints.launchpad.net/cinder/+spec/metadata-for-volume-summary

支持通过卷摘要 API 获取卷的元数据。

问题描述

目前,Cinder 支持使用元数据过滤卷。但在某些情况下,用户不知道所有卷包含哪些元数据,或者哪些元数据有效用于过滤卷。然后用户需要逐个显示卷来获取正确的元数据,这确实是一种繁重且不友好的方式。想象一下,如果有数百个卷,管理员需要花费很长时间来查询所有元数据。

用例

1. 对于用户,他们可以通过一个 API 请求轻松获取所有元数据。 2. 对于仪表板,例如 Horizon,可以使用此元数据信息向最终用户显示一个下拉列表。

提议的变更

  1. DB 层变更

    可以通过 sql 查询获取所有卷的元数据。

  2. API 层变更

    添加一个新的微版本。在 volume-summary API 响应体中添加“metadata”。响应体将如下所示

    "metadata": {"key1": ["value1"],"key2": ["value2", "value3"]}
    

备选方案

保持不变。让运维人员通过一些外围方式自行获取卷元数据。例如,创建一个脚本来调用 volume-list-detail API,然后逐个分析结果。

数据模型影响

REST API 影响

将创建一个新的微版本。

Cinder 客户端影响

现在 OpenStackClient 和 CinderClient 都不支持 volume-summary 命令。我们也可以添加它们。

安全影响

通知影响

其他最终用户影响

性能影响

由于将添加一个新的 sql 查询操作,volume-summary API 会产生一些性能影响。

其他部署者影响

开发人员影响

实现

负责人

主要负责人

wangxiyuan(wangxiyuan@huawei.com)

工作项

  • 添加一个新的微版本。

  • 将卷的元数据添加到 volume-summary API 的响应体中。

  • 添加客户端支持。

依赖项

测试

  • 添加单元测试。

文档影响

更新 API 文档。

参考资料