Proposal to support pagination for hypervisor. APIImapct Change-Id: I72b18b38cad98a415eced49fababfcc280d39f3b Blueprint: pagination-for-hypervisor
2.5 KiB
2.5 KiB
Pagination for hypervisor
https://blueprints.launchpad.net/nova/+spec/pagination-for-hypervisor
This spec is proposed to support pagination for hypervisor.
Problem description
When there are thousands of compute nodes, it would be slow to get the whole hypervisor list, and it is bad for user experience to display thousands of items in a table in horizon.
Use Cases
- Get paginated compute nodes list when there are too many items.
Proposed change
Changes are going to be in the following places:
- New DB api compute_node_get_all_by_filters will be added with params filters, limit and marker, so other filter methods(compute_node_search_by_hypervisor, etc) also can be refactored to use this new db method.
- New compute node object get_by_filters method will be added which calls the new db api compute_node_get_all_by_filters.
- Compute api compute_node_get_all will be refactored.
- REST API microversion will be added for hypervisors list to accept pagination request.
Alternatives
None
Data model impact
None
REST API impact
New Hypervisors list API to support pagination:
request:
GET /v2.1/{tenant_id}/os-hypervisors?marker=2&limit=1reponse:
{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 3, "state": "up", "status": "enabled" } ] }
Security impact
None.
Notifications impact
None
Other end user impact
None
Performance Impact
Reduce load on horizon with help of pagination of retrieving hypervisors from Nova side.
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
liyingjun
Work Items
- Change db api to support pagination params.
- Add compute node object method and refactor compute api.
- Add REST API microversion.
Dependencies
None
Testing
The changes will be exercised through unit tests.
Documentation Impact
New REST API microversion will be added.
References
None