diff options
author | Zuul <zuul@review.opendev.org> | 2021-02-12 03:45:45 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-02-12 03:45:45 +0000 |
commit | aabb8ce88d7a66e25091ecef6256f462bb7ab976 (patch) | |
tree | 46213c841db6a074a57f5816d78f1fadd59effe5 | |
parent | fc742d6027b9036b66b6eb64b5015365fd342969 (diff) | |
parent | c9ca078e70d48f3292a89dbfe7579e7e7d070d97 (diff) | |
download | swift-aabb8ce88d7a66e25091ecef6256f462bb7ab976.tar.gz |
Merge "sharding: Tolerate blank limits when listing" into stable/train
-rw-r--r-- | swift/proxy/controllers/container.py | 2 | ||||
-rw-r--r-- | test/unit/proxy/controllers/test_container.py | 9 |
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), |