将通用卷组纳入配额管理¶
https://blueprints.launchpad.net/cinder/+spec/add-volumegroup-into-quota-management
通用卷组目前有其自身的配额机制。但我们无法在 API 层获取有关通用卷组配额的任何信息。
问题描述¶
Cinder 已经实现了通用卷组配额机制。这意味着在 DB 层存在一个通用卷组配额类(硬限制为 10)。但通用卷组的配额信息并未包含在任何配额 API 的响应体中,因此用户无法获取或更新它。
用例¶
Cinder 应该允许用户获取和更新通用卷组的配额。用户只能使用通用卷组配额的默认值且无法更新它,这是非常糟糕的。通过此更改,用户可以 1) 更改通用卷组的硬限制值,2) 通过 Cinder 的配额 API 获取通用卷组的配额使用情况。
提议的变更¶
让配额管理承担通用卷组配额。以下五个 API 将被更改:1) quota-class-show
GET /os-quota-class-sets/default
在响应体中添加一行。
{
"quota_class_set": {
"groups": 10
}
}
2) quota-show, quota-usage
GET /os-quota-sets/{project_id}?usage={False, True}
在响应体中添加一行。
{
"quota_set": {
"groups": {
"reserved": 0,
"allocated": 0,
"limit": 10,
"in_use": 0
}
}
}
3) quota-defaults
GET /os-quota-sets/{project_id}/defaults
在响应体中添加一行。
{
"quota_set": {
"groups": 10
}
}
4) quota-class-update
PUT /os-quota-class-sets/default
允许更新“groups”并在响应体中添加一行。
{
"quota_class_set": {
"groups": 10
}
}
5) quota-update
PUT /os-quota-sets/{project_id}
允许更新“groups”并在响应体中添加一行。
{
"quota_set": {
"groups": 10
}
}
备选方案¶
保持不变。
数据模型影响¶
无
REST API 影响¶
“quota-defaults”、“quota-usage”、“quota-show”和“quota-class-show” API 的响应体将包含通用卷组。
“quota-update”和“quota-class-update” API 将接受“groups”参数,并且响应体将包含通用卷组。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
wangxiyuan
工作项¶
将通用卷组的配额添加到配额 API
添加和更新单元测试
更新 CinderClient 的配额命令
依赖项¶
无
测试¶
标准单元测试和手动测试。
文档影响¶
应更新 quota-defaults、quota-usage、quota-show 和 quota-class-show 的响应体。
应更新 quota-update、quota-class-update 的请求体。
参考资料¶
无