Pagination for hypervisor spec

Proposal to support pagination for hypervisor.

APIImapct

Change-Id: I72b18b38cad98a415eced49fababfcc280d39f3b
Blueprint: pagination-for-hypervisor
This commit is contained in:
liyingjun
2016-02-19 14:49:30 +08:00
committed by liyingjun
parent 786ca97995
commit c870b40179

View File

@@ -0,0 +1,147 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=========================
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=1
reponse::
{
"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
----------
1. Change db api to support pagination params.
2. Add compute node object method and refactor compute api.
3. 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