diff --git a/swift3/middleware.py b/swift3/middleware.py index 30e848ef..3f940589 100644 --- a/swift3/middleware.py +++ b/swift3/middleware.py @@ -62,7 +62,7 @@ from swift3.response import ErrorResponse, InternalError, MethodNotAllowed, \ ResponseBase from swift3.cfg import CONF from swift3.utils import LOGGER -from swift.common.utils import get_logger +from swift.common.utils import get_logger, register_swift_info class Swift3Middleware(object): @@ -176,6 +176,14 @@ def filter_factory(global_conf, **local_conf): global LOGGER LOGGER = get_logger(CONF, log_route='swift3') + register_swift_info( + 'swift3', + max_bucket_listing=CONF['max_bucket_listing'], + max_parts_listing=CONF['max_parts_listing'], + max_upload_part_num=CONF['max_upload_part_num'], + max_multi_delete_objects=CONF['max_multi_delete_objects'] + ) + def swift3_filter(app): return Swift3Middleware(app, CONF) diff --git a/swift3/test/unit/__init__.py b/swift3/test/unit/__init__.py index df7ee5a8..3427d861 100644 --- a/swift3/test/unit/__init__.py +++ b/swift3/test/unit/__init__.py @@ -53,7 +53,7 @@ class Swift3TestCase(unittest.TestCase): def __init__(self, name): unittest.TestCase.__init__(self, name) - CONF.log_level = 'debug', + CONF.log_level = 'debug' CONF.storage_domain = 'localhost' def setUp(self): diff --git a/swift3/test/unit/test_middleware.py b/swift3/test/unit/test_middleware.py index 5d5e818e..04bcd256 100644 --- a/swift3/test/unit/test_middleware.py +++ b/swift3/test/unit/test_middleware.py @@ -21,12 +21,14 @@ import hashlib import base64 from urllib import unquote, quote -from swift.common import swob +from swift.common import swob, utils from swift.common.swob import Request from swift3.test.unit import Swift3TestCase from swift3.request import Request as S3Request from swift3.etree import fromstring +from swift3.middleware import filter_factory +from swift3.cfg import CONF class TestSwift3Middleware(Swift3TestCase): @@ -315,6 +317,19 @@ class TestSwift3Middleware(Swift3TestCase): self.assertEquals(elem.find('./Method').text, 'POST') self.assertEquals(elem.find('./ResourceType').text, 'ACL') + def test_registered_defaults(self): + filter_factory(CONF) + swift_info = utils.get_swift_info() + self.assertTrue('swift3' in swift_info) + self.assertEqual(swift_info['swift3'].get('max_bucket_listing'), + CONF.max_bucket_listing) + self.assertEqual(swift_info['swift3'].get('max_parts_listing'), + CONF.max_parts_listing) + self.assertEqual(swift_info['swift3'].get('max_upload_part_num'), + CONF.max_upload_part_num) + self.assertEqual(swift_info['swift3'].get('max_multi_delete_objects'), + CONF.max_multi_delete_objects) + def test_check_pipeline(self): with nested(patch("swift3.middleware.CONF"), patch("swift3.middleware.PipelineWrapper"),