Horizon Quotas Rework
The Horizon quota code is a mess that needs redesign. Goals should be that quotas are easy to plug and play - i.e. add and remove as needed within a deployment.
Blueprint information
- Status:
- Complete
- Approver:
- David Lyle
- Priority:
- Low
- Drafter:
- Eric Peterson
- Direction:
- Approved
- Assignee:
- Akihiro Motoki
- Definition:
- Approved
- Series goal:
- Accepted for 14.0.0-rocky
- Implementation:
- Implemented
- Milestone target:
- rocky-2
- Started by
- David Lyle
- Completed by
- Akihiro Motoki
Whiteboard
[Sep 11, 2018 -- amotoki] I completed all items I mentioned below at Dec 9, 2017. I believe this can be marked as implemented.
--
We have used https:/
Gerrit topic: https:/
Addressed by: https:/
WIP Quota approach
Addressed by: https:/
remove unused quotas code
Addressed by: https:/
Splice QuotaUsage and QuotaSet classes
Addressed by: https:/
Quota cleanup of dynamic methods
[Dec 9, 2017 -- amotoki]
I would like to take over this blueprint to achieve the following goals:
* Use neutron quota detail API to retrieve neutron resource usages (instead of list operations)
* Use neutron default quota API to fetch default quotas
* Push away nova-network related quotas (security_group and floating IP) and use neutron quota names consistently (at now nova-network and neutron quota names are used mixedly and it decreases the code readability a lot)
* Merge usages.
* Some refactoring on usages/quotas.py
Addressed by: https:/
quota: Disable nova-network quotas completely
Addressed by: https:/
quota: retrive quota (limit) and usage at once
Addressed by: https:/
Use neutron quota_details API to retrieve usage
Addressed by: https:/
Use network quota field names consistently
Addressed by: https:/
Move neutron quota logic in identity.
Addressed by: https:/
Use neutron default quota (read-only) API
Addressed by: https:/
Merge tenant_limit_usage into tenant_quota_usage
Addressed by: https:/
quota: Move targets argument to get_disabled_quotas
Addressed by: https:/
usage: split out the limit related logic into ProjectUsageView
Addressed by: https:/
usage: Use tenant_
Addressed by: https:/
usage: move field-specific logic from template to code
Addressed by: https:/
usage: Add network resources to Limit Summary
Addressed by: https:/
usage: Categorize Limit Summary by service
Gerrit topic: https:/
Addressed by: https:/
Handle float('inf') in tenant_quota_usages properly
Work Items
Work items:
The reading of quotas, much of it centralized in the existing usage python module. : INPROGRESS
The writing/setting of quotas, which is more in the project edit screen. This code is likely a second pass.: TODO
The project modification screen might need to be split into separate screens / tools for quota management and for role membership. This is TBD, but the thinking is that the current project edit screen is more complex than we would like. Splitting into separate tools also makes it so the quota tool can see more changes / work with less fear for the impact on the role membership tool. : TODO