summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-02-12 03:45:45 +0000
committerGerrit Code Review <review@openstack.org>2021-02-12 03:45:45 +0000
commitaabb8ce88d7a66e25091ecef6256f462bb7ab976 (patch)
tree46213c841db6a074a57f5816d78f1fadd59effe5
parentfc742d6027b9036b66b6eb64b5015365fd342969 (diff)
parentc9ca078e70d48f3292a89dbfe7579e7e7d070d97 (diff)
downloadswift-aabb8ce88d7a66e25091ecef6256f462bb7ab976.tar.gz
Merge "sharding: Tolerate blank limits when listing" into stable/train
-rw-r--r--swift/proxy/controllers/container.py2
-rw-r--r--test/unit/proxy/controllers/test_container.py9
2 files changed, 6 insertions, 5 deletions
diff --git a/swift/proxy/controllers/container.py b/swift/proxy/controllers/container.py
index bcbe58c35..6ab0ada3a 100644
--- a/swift/proxy/controllers/container.py
+++ b/swift/proxy/controllers/container.py
@@ -159,7 +159,7 @@ class ContainerController(Controller):
return resp
objects = []
- req_limit = int(req.params.get('limit', CONTAINER_LISTING_LIMIT))
+ req_limit = int(req.params.get('limit') or CONTAINER_LISTING_LIMIT)
params = req.params.copy()
params.pop('states', None)
req.headers.pop('X-Backend-Record-Type', None)
diff --git a/test/unit/proxy/controllers/test_container.py b/test/unit/proxy/controllers/test_container.py
index e393472c4..b989fb614 100644
--- a/test/unit/proxy/controllers/test_container.py
+++ b/test/unit/proxy/controllers/test_container.py
@@ -640,7 +640,7 @@ class TestContainerController(TestRingBase):
self.check_response(resp, root_resp_hdrs,
expected_objects=expected_objects)
- # GET all objects in reverse
+ # GET all objects in reverse and *blank* limit
mock_responses = [
# status, body, headers
(200, list(reversed(sr_dicts)), root_shard_resp_hdrs),
@@ -653,7 +653,7 @@ class TestContainerController(TestRingBase):
expected_requests = [
# path, headers, params
('a/c', {'X-Backend-Record-Type': 'auto'},
- dict(states='listing', reverse='true')),
+ dict(states='listing', reverse='true', limit='')),
(wsgi_quote(str_to_wsgi(shard_ranges[4].name)),
{'X-Backend-Record-Type': 'auto'},
dict(marker='', end_marker='\xf0\x9f\x8c\xb4', states='listing',
@@ -683,7 +683,8 @@ class TestContainerController(TestRingBase):
resp = self._check_GET_shard_listing(
mock_responses, list(reversed(expected_objects)),
- expected_requests, query_string='?reverse=true', reverse=True)
+ expected_requests, query_string='?reverse=true&limit=',
+ reverse=True)
# root object count will overridden by actual length of listing
self.check_response(resp, root_resp_hdrs,
expected_objects=expected_objects)
@@ -831,7 +832,7 @@ class TestContainerController(TestRingBase):
% (marker, end_marker, limit))
self.check_response(resp, root_resp_hdrs)
- # reverse with marker, end_marker
+ # reverse with marker, end_marker, and limit
expected_objects.reverse()
mock_responses = [
(200, sr_dicts[3:4], root_shard_resp_hdrs),