Add pagination support to other resources

In Liberty release, we have added pagination
to backups and snapshot as per bp:
https://blueprints.launchpad.net/cinder/+spec/extend-limit-implementations.
There are still some work that hasn't been done yet.

In Mitaka, we intend to add pagination support to
CG, volume type and Qos specs.

Implements: blueprint add-pagination-to-other-resource
Change-Id: Ibd5fe91981d111c3c6a961676b829c3da4fc0c55
This commit is contained in:
wanghao 2015-11-19 11:41:11 +08:00
parent 101469d860
commit cd9800da7b

View File

@ -0,0 +1,139 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Add Pagination To Other Resources
==========================================
https://blueprints.launchpad.net/cinder/+spec/add-pagination-to-other-resource
This spec aims to continue the work that we did in Liberty, adding pagination
support to other cinder resources.
Problem description
===================
In Liberty release, we have added pagination to backups and snapshots
according bp[1]. There are still some work that hasn't been done yet.
In Mitaka, we intend to add pagination support to CG, Volume Type and
Qos specs.
Use Cases
=========
In large scale cloud systems, end users and manage system that's on top of
Cinder could make quick querying by using pagination, filter and sort
functions to improve performance of querying.
Proposed change
===============
* Consistency Group: Refactor current implementation, using DB pagination
querying, and add support to filter and sort in querying request.
* Volume Type: Add pagination and sort support in querying request.
* Qos Specs: Add pagination, filter and sort in querying request.
* Add sql pagination querying support as we did in backup and snapshot.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
According the API-wg guideline about pagination, filter and sort[2].
* GET /v2/{project_id}/{resource}?limit=xxx&marker=xxx&sort=xxx&{filter}=xxx
RESP BODY: {"resource_links": [{xxx}],
"resource": [{xxx}, {xxx}, ..., {xxx}]
}
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
wanghao<wanghao749@huawei.com>
Other contributors:
None
Work Items
----------
* Add pagination support to three resources.
* Implement code in db pagination query.
* Implement code in list querying api.
* Test code.
* Update cinderclient to support this functionality for those resources.
* Add change to API doc.
Dependencies
============
None
Testing
=======
Both unit and Tempest tests are needed to be created to cover the code change.
Documentation Impact
====================
The cinder API documention will need to be updated to reflect the REST
API changes.
References
==========
[1]https://blueprints.launchpad.net/cinder/+spec/extend-limit-implementations
[2]https://github.com/openstack/api-wg/blob/master/guidelines/pagination_filter_sort.rst