]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
GET details REST API next link missing 'details'
authorSteven Kaufer <kaufer@us.ibm.com>
Mon, 31 Mar 2014 20:32:39 +0000 (20:32 +0000)
committerSteven Kaufer <kaufer@us.ibm.com>
Mon, 31 Mar 2014 20:32:39 +0000 (20:32 +0000)
commit2981cdbb03c6f1239a58fedb260796667b8154ab
tree72d6e86f8c8f95209c31baeb515463a2ec2733ce
parent6b3d177695ef360fce9454c890fd262d2429e0b8
GET details REST API next link missing 'details'

When executing a pagination query a "next" link is included in the
API reply when there are more items then the specified limit.

See pagination documentation for more information:
http://docs.openstack.org/api/openstack-compute/2/content/
Paginated_Collections-d1e664.html

The caller should be able to invoke the "next" link (without
having to re-format it) in order to get the next page of data.
The documentation states "Subsequent links will honor the
initial page size. Thus, a client may follow links to traverse
a paginated collection without having to input the marker parameter."

The problem is that the "next" link is always scoped to the non-
detailed query.

For example, if you execute "/v2/<tenant>/volumes/detail?limit=1",
the "next" link does not have the URL for a detailed query and is
formatted as "/v2/<tenant>/volumes?limit=1&marker=<marker>". In this
case the "next" link needs to be scoped to "/v2/<tenant>/volumes/detail".

The user could work around this issue my manually inserting '/details'
into the "next" link URL.

Test code is included to verify that the '/details' URL is correctly added
when the "next" link is included in a detailed pagination query. Also,
existing tests were changed to ensure that the correct controller function
(ie, 'index' vs. 'detail) are invoked for the appropriate query
(ie, non-detailed or detailed) -- 'index' was previously alwayed invoked
for detailed URL requests.

Change-Id: Ib00d6deb25255fac1db0f7bf4ecd3c8d30e1c39d
Closes-bug: 1299247
cinder/api/common.py
cinder/api/v2/views/volumes.py
cinder/tests/api/v2/test_volumes.py