Add Generic Volume Group Into Quota Management¶
https://blueprints.launchpad.net/cinder/+spec/add-volumegroup-into-quota-management
Generic Volume Group currently has its own quota mechanism. But we can’t get any information about the Generic Volume Group quota at the API layer.
Problem description¶
Cinder already achieved Generic Volume Group quota mechanism. It means that there is a Generic Volume Group quota class(the hard_limit is 10) at the DB layer. But the Generic Volume Group’s quota information wasn’t contained in any quota API’s response body, so that users can’t get or update it.
Use Cases¶
Cinder should allow users to get and update the Generic Volume Group’s quota. It’s terrible that users could only use the Generic Volume Group quota’s default value and can’t update it. With this change, users could 1) change the value of Generic Volume Group’s hard limit, 2) get the Generic Volume Group’s quota usage, through the Cinder’s quota API.
Proposed change¶
Let quota management undertake Generic Volume Group quota. And these five APIs will be changed: 1) quota-class-show
GET /os-quota-class-sets/default
Add a new line in the response body.
{
"quota_class_set": {
"groups": 10
}
}
2) quota-show, quota-usage
GET /os-quota-sets/{project_id}?usage={False, True}
Add a new line in the response body.
{
"quota_set": {
"groups": {
"reserved": 0,
"allocated": 0,
"limit": 10,
"in_use": 0
}
}
}
3) quota-defaults
GET /os-quota-sets/{project_id}/defaults
Add a new line in the response body.
{
"quota_set": {
"groups": 10
}
}
4) quota-class-update
PUT /os-quota-class-sets/default
Allow update “groups” and Add a new line in the response body.
{
"quota_class_set": {
"groups": 10
}
}
5) quota-update
PUT /os-quota-sets/{project_id}
Allow update “groups” and Add a new line in the response body.
{
"quota_set": {
"groups": 10
}
}
Alternatives¶
Leave as is.
Data model impact¶
None
REST API impact¶
The response body of “quota-defaults”, “quota-usage”, “quota-show” and “quota-class-show” APIs will contain Generic Volume Group.
The “quota-update” and “quota-class-update” APIs will accept the “groups” parameter and the response body will contain Generic Volume Group.
Security impact¶
None
Notifications impact¶
None
Other end user impact¶
None
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None.
Implementation¶
Assignee(s)¶
- Primary assignee:
wangxiyuan
Work Items¶
Add Generic Volume Group’s quota to quota APIs
Add and update the unit tests
Update the CinderClient’s quota commands
Dependencies¶
None
Testing¶
Standard unit tests and manual testing.
Documentation Impact¶
The response body of quota-defaults, quota-usage, quota-show and quota-class-show should be updated.
The request body of quota-update, quota-class-update should be updated.
References¶
None