From e6245d198f73da747160988d420e6bf7400ab822 Mon Sep 17 00:00:00 2001 From: Romain LE DISEZ Date: Sat, 18 Feb 2017 14:25:33 +0100 Subject: [PATCH] Register cname_lookup on /info Change-Id: I4f68b2f84f32e2c9e567c08f7e66ce0a81b7d867 --- swift/common/middleware/cname_lookup.py | 6 +++++- .../common/middleware/test_cname_lookup.py | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/swift/common/middleware/cname_lookup.py b/swift/common/middleware/cname_lookup.py index 9f26b9aa4b..3441995ec2 100644 --- a/swift/common/middleware/cname_lookup.py +++ b/swift/common/middleware/cname_lookup.py @@ -43,7 +43,8 @@ else: # executed if the try block finishes with no errors MODULE_DEPENDENCY_MET = True from swift.common.swob import Request, HTTPBadRequest -from swift.common.utils import cache_from_env, get_logger, list_from_csv +from swift.common.utils import cache_from_env, get_logger, list_from_csv, \ + register_swift_info def lookup_cname(domain): # pragma: no cover @@ -176,6 +177,9 @@ def filter_factory(global_conf, **local_conf): # pragma: no cover conf = global_conf.copy() conf.update(local_conf) + register_swift_info('cname_lookup', + lookup_depth=int(conf.get('lookup_depth', '1'))) + def cname_filter(app): return CNAMELookupMiddleware(app, conf) return cname_filter diff --git a/test/unit/common/middleware/test_cname_lookup.py b/test/unit/common/middleware/test_cname_lookup.py index 51c1dc1b59..d8166212c4 100644 --- a/test/unit/common/middleware/test_cname_lookup.py +++ b/test/unit/common/middleware/test_cname_lookup.py @@ -24,6 +24,7 @@ except ImportError: skip = True else: # executed if the try has no errors skip = False +from swift.common import utils from swift.common.middleware import cname_lookup from swift.common.swob import Request @@ -237,3 +238,21 @@ class TestCNAMELookup(unittest.TestCase): bad_domain = ['CNAME lookup failed to resolve to a valid domain'] resp = do_test('c.badtest.com') self.assertEqual(resp, bad_domain) + + +class TestSwiftInfo(unittest.TestCase): + def setUp(self): + utils._swift_info = {} + utils._swift_admin_info = {} + + def test_registered_defaults(self): + cname_lookup.filter_factory({}) + swift_info = utils.get_swift_info() + self.assertIn('cname_lookup', swift_info) + self.assertEqual(swift_info['cname_lookup'].get('lookup_depth'), 1) + + def test_registered_nondefaults(self): + cname_lookup.filter_factory({'lookup_depth': '2'}) + swift_info = utils.get_swift_info() + self.assertIn('cname_lookup', swift_info) + self.assertEqual(swift_info['cname_lookup'].get('lookup_depth'), 2)