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:
parent
62b0a0a56b
commit
bdc975a509
@ -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')
|
||||||
|
|
||||||
|
@ -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)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user