Register swift3 info to swift APIs(/info).

The eetail of swift3 info as follows:

    "swift3": {
        "max_bucket_listing": 1000,
        "max_multi_delete_objects": 1000,
        "max_parts_listing": 1000,
        "max_upload_part_num": 1000
    }

Change-Id: I5148a404a90a73a64ac6890e1d73e7a27198d75f
This commit is contained in:
Charles Hsu 2015-02-12 15:39:19 +08:00
parent 65e9db5d5f
commit 557c3348fa
3 changed files with 26 additions and 3 deletions

View File

@ -62,7 +62,7 @@ from swift3.response import ErrorResponse, InternalError, MethodNotAllowed, \
ResponseBase ResponseBase
from swift3.cfg import CONF from swift3.cfg import CONF
from swift3.utils import LOGGER 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): class Swift3Middleware(object):
@ -176,6 +176,14 @@ def filter_factory(global_conf, **local_conf):
global LOGGER global LOGGER
LOGGER = get_logger(CONF, log_route='swift3') 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): def swift3_filter(app):
return Swift3Middleware(app, CONF) return Swift3Middleware(app, CONF)

View File

@ -53,7 +53,7 @@ class Swift3TestCase(unittest.TestCase):
def __init__(self, name): def __init__(self, name):
unittest.TestCase.__init__(self, name) unittest.TestCase.__init__(self, name)
CONF.log_level = 'debug', CONF.log_level = 'debug'
CONF.storage_domain = 'localhost' CONF.storage_domain = 'localhost'
def setUp(self): def setUp(self):

View File

@ -21,12 +21,14 @@ import hashlib
import base64 import base64
from urllib import unquote, quote from urllib import unquote, quote
from swift.common import swob from swift.common import swob, utils
from swift.common.swob import Request from swift.common.swob import Request
from swift3.test.unit import Swift3TestCase from swift3.test.unit import Swift3TestCase
from swift3.request import Request as S3Request from swift3.request import Request as S3Request
from swift3.etree import fromstring from swift3.etree import fromstring
from swift3.middleware import filter_factory
from swift3.cfg import CONF
class TestSwift3Middleware(Swift3TestCase): class TestSwift3Middleware(Swift3TestCase):
@ -315,6 +317,19 @@ class TestSwift3Middleware(Swift3TestCase):
self.assertEquals(elem.find('./Method').text, 'POST') self.assertEquals(elem.find('./Method').text, 'POST')
self.assertEquals(elem.find('./ResourceType').text, 'ACL') 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): def test_check_pipeline(self):
with nested(patch("swift3.middleware.CONF"), with nested(patch("swift3.middleware.CONF"),
patch("swift3.middleware.PipelineWrapper"), patch("swift3.middleware.PipelineWrapper"),