向 quota-set API 集合添加详细 API¶
https://blueprints.launchpad.net/manila/+spec/admin-check-tenant-quota-usage
目前,在 Manila 中,我们只能通过 ‘limit’ 属性获取用户和租户的 quota-set 信息,但这对于用户的各种用例来说过于有限。在其他 OpenStack 组件(例如 Nova)中,它既具有检查 ‘quota-show’(仅 ‘limit’)的能力,也具有 ‘quota-show –detail’(‘in_use’、‘limit’ 和 ‘reserved’)的能力,Cinder 也具有使用命令 ‘quota-usage’ 的相同能力。此更改旨在为 Manila 添加与 Nova 相同的功能。
问题描述¶
检查 quota-set 信息是一种常见的用例,Manila 具有 ‘quota-sets’ API 来涵盖这一点,但它不能满足需要整体 ‘quota-sets’ 信息的情况。实际上,Manila 目前已经在 quota-set 的代码中支持了这一点 [1],但尚未将其暴露给用户。此更改旨在支持这一点。
用例¶
如上所述,用户通常希望检查 quota-set 的整体信息(此租户的租户和用户),此更改将帮助他们实现这一点。
提议的变更¶
以下是需要进行的更改
将在 quota-sets API 集合中添加一个新的 API ‘…/quota-sets/{tenant_id}/detail’。
新的 API 将与现有的 GET ‘quota-sets’ API 共享相同的策略。
后续逻辑将与现有的 API ‘GET quota-sets’ 相同,除了在 ‘QuotaSetsController._get_quotas’ 中将参数 ‘usage’ 设置为 True。
‘_get_quotas’ 将返回一个包含 ‘in_use’、‘limit’、‘reserved’ 属性的字典。
Manila 客户端将在 ‘quota-show’ 命令中添加一个新的命令行参数 ‘–detail’,以指示是否返回详细的 quota-sets 信息。
备选方案¶
目前 Manila 不支持此功能。
数据模型影响¶
无
REST API 影响¶
对于以下新 API,必须提高 API 微版本。
(GET 200 403) quota-sets detail: 以详细方式显示 quota-sets
URL: /v2/{tenant_id}/quota-sets/{tenant_id}/detail?user_id={u_id_query}
响应体
{
'quota_set':{
'id': '1e1cc7d3-c524-4b05-85b4-5d548916b11b',
'shares': {'in_use': 0, 'limit': 23, 'reserved': 0},
'gigabytes': {'in_use': 0, 'limit': 45, 'reserved': 0},
'snapshots': {'in_use': 0, 'limit': 34, 'reserved': 0},
'snapshot_gigabytes': {'in_use': 0,'limit': 56,'reserved': 0},
'share_networks': {'in_use': 0,'limit': 67,'reserved': 0}
}
}
Manila 客户端影响¶
Manila 客户端将在 ‘quota-show’ 命令中添加一个新的命令行参数 ‘–detail’,修改后的命令将如下所示
* quota-show --detail <other existing command arguments>
安全影响¶
无
通知影响¶
无。
其他最终用户影响¶
无。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
zhongjun2(jun.zhongjun2@gmail.com) TommyLike(tommylikehu@gmail.com)
工作项¶
向 ‘quota-sets’ 集合添加 ‘detail’ API。
在 Manila 中添加相关的测试。
在 Manila 中添加文档。
在 Manila 客户端中为命令 ‘quota-show’ 添加新的参数。
在 Manila 客户端中添加相关的测试。
依赖项¶
无
测试¶
单元测试和 tempest 测试,以验证新的 API 是否工作正常。
Manila 客户端的单元测试和针对新添加参数的功能测试。
文档影响¶
Manila API 文档需要更新以反映 REST API 的更改。
参考资料¶
[1] https://github.com/openstack/manila/blob/master/manila/quota.py