Quota Management¶
A proposal to expose the existing Quota.update API from the management API to the user through the non-management API.
Launchpad Blueprint: https://blueprints.launchpad.net/trove/+spec/quota-management
Problem Description¶
There is a Quota.update API in the management API to allow an operator to change the quota allocation for a resource. Unfortunately, there is no CLI to access that call.
Proposed Change¶
Add the v1.Quotas class to the v1.client so that an operator can execute a command to change the allocation for a resource.
Configuration¶
No impact.
Database¶
No impact.
Public API¶
No impact (the REST API already exists).
Public API Security¶
The added call will be restricted to admin users.
Python API¶
Adds client.quotas.update to the python client:
def update(self, id, quotas):
"""Set limits for quotas."""
This call takes a dict indicating the change to be made:
trove_client.quotas.update(project.id, {‘instances’: 10})
Also adds client.quotas.show to the python client:
def show(self, id):
"""Shows usage information for quota managed resources."""
This call takes the id of the project and returns all resources with their usage:
trove_client.quotas.show(project.id)
CLI (python-troveclient)¶
Two new shell commands will be added:
$ trove quota-show <project id>
$ trove quota-update <project id> volumes 50
Internal API¶
No impact.
Guest Agent¶
No Impact.
Alternatives¶
Dashboard Impact (UX)¶
This will be available only via the command line.
Implementation¶
Assignee(s)¶
- Primary assignee:
6-morgan
Milestones¶
- Target Milestone for completion:
Newton
Work Items¶
Patch already delivered to gerrit.
Upgrade Implications¶
None.
Dependencies¶
Testing¶
Tests already exist for this functionality.
Documentation Impact¶
References¶
Appendix¶
Any additional technical information and data.