Enabling the use of CIDR notation in the access config logs. This will

apply to lb_private_ips, service_ips and service_log_sources.
This commit is contained in:
Stef T 2012-08-20 17:24:31 -04:00
parent 62b0a0a56b
commit bdc975a509
2 changed files with 10 additions and 2 deletions

View File

@ -17,6 +17,8 @@ import collections
from urllib import unquote from urllib import unquote
import copy import copy
from iptools import IpRangeList
from swift.common.utils import split_path, get_logger from swift.common.utils import split_path, get_logger
month_map = '_ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split() month_map = '_ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split()
@ -31,9 +33,9 @@ class AccessLogProcessor(object):
self.server_name = conf.get('server_name', 'proxy-server') self.server_name = conf.get('server_name', 'proxy-server')
for conf_tag in ['lb_private_ips', 'service_ips', for conf_tag in ['lb_private_ips', 'service_ips',
'service_log_sources']: 'service_log_sources']:
setattr(self, conf_tag, setattr(self, conf_tag, IpRangeList(*
[x.strip() for x in conf.get(conf_tag, '').split(',') \ [x.strip() for x in conf.get(conf_tag, '').split(',') \
if x.strip()]) if x.strip()]))
self.warn_percent = float(conf.get('warn_percent', '0.8')) self.warn_percent = float(conf.get('warn_percent', '0.8'))
self.logger = get_logger(conf, log_route='access-processor') self.logger = get_logger(conf, log_route='access-processor')

View File

@ -21,6 +21,12 @@ from slogging import access_processor
class TestAccessProcessor(unittest.TestCase): class TestAccessProcessor(unittest.TestCase):
def test_CIDR_works(self):
p = access_processor.AccessLogProcessor({'lb_private_ips': '127.0.0.1,192.168/16,10/24' })
self.assertTrue('192.168.2.3' in p.lb_private_ips)
self.assertTrue('127.0.0.1' in p.lb_private_ips)
self.assertFalse('192.167.2.3' in p.lb_private_ips)
def test_log_line_parser_query_args(self): def test_log_line_parser_query_args(self):
p = access_processor.AccessLogProcessor({}) p = access_processor.AccessLogProcessor({})
log_line = [str(x) for x in range(18)] log_line = [str(x) for x in range(18)]