Fix to return server groups quota in the quota-classes API¶
https://blueprints.launchpad.net/nova/+spec/fix-quota-classes-api
The quotas of server_groups and server_group_members are missed in the response of quota-classes v2.1 API. This spec proposes to add those quotas back to the API in new microversion.
Problem description¶
V2 API has extension ‘os-server-group-quotas’, which enabled the quota server_groups and server_group_members in the quota-classes API. But during the porting the v2 extensions to the v2.1 API, this extension was missed. It leads to the quota server_groups and server_group_members missing in the response of quota-classes API.
There is another bug#1701211 in os-quota-class APIs, where networks related quotas are still available to create/update/show quota class. Network proxy APIs were deprecated in the 2.36 microversion along with network resource related quotas. But we missed to do so in the magical quota class APIs.
Use Cases¶
As an API user, he can query the default quota value by the quota-classes API, and which is the same API when he set the default value.
Proposed change¶
This spec propose to fix this bug as microversion by adding server_groups and server_group_memeber back to the v2.1 API.
The legacy v2.1 compatible API won’t be fixed, since it is as the default backend for legacy v2 endpoint in Liberty. And Liberty is already EOL, there is no way to back port the fix to the Liberty.
Filter out all the networks related quotas from os-quota-class. Below quotas will be filtered out and not available from new microversion onwards.
“fixed_ips”
“floating_ips”
“networks”,
“security_group_rules”
“security_groups”
Alternatives¶
Fix this bug without microversion for v2.1 API, but that would lead to the API interoperability issue.
Data model impact¶
None
REST API impact¶
Add the ‘server_groups’ and ‘server_group_members’ field to the quota-classes API by new microversion in v2.1 API.
Two fields will be added to the response of the APIs:
GET /os-quota-class-sets/{quota_class}
PUT /os-quota-class-sets/{quota-class}
Network related quotas [“fixed_ips”, “floating_ips”, “networks”, “security_group_rules”, “security_groups”] will not be allowed in PUT API request and 400 if those are present:
PUT /os-quota-class-sets/{quota-class}
Those network related quotas will not be returned in the response of the APIs:
GET /os-quota-class-sets/{quota_class}
PUT /os-quota-class-sets/{quota-class}
Security impact¶
None
Notifications impact¶
None
Other end user impact¶
The python-novaclient will also need to be updated to handle the new microversion for the python API binding and the “nova quota-class” CLIs.
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
Ghanshyam Mann <ghanshyammann@gmail.com>
- Other contributors:
Alex Xu <hejie.xu@intel.com>
Work Items¶
Fix the v2.1 API by new microversion.
Update the python-novaclient to support new microversion.
Dependencies¶
None
Testing¶
The corresponding unittest and functional test will be added.
Documentation Impact¶
Update the api-ref about this bug fix and the workaround to use the os-quota-sets API. The reno is required to note this bug also.
References¶
History¶
Release Name |
Description |
---|---|
Pike |
Introduced |