
Generic Volume Group currently has it own quota mechanism. But we can't get or set any information about the Generic Volume Group quota at API layer. Change-Id: I05c88fa2dcd7172dab28db12ab87e35255d64e3e blueprint: add-volumegroup-into-quota-management
3.6 KiB
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