@cryptotaxi247 / netdata-1 / commits / 7a7df0592

fail2ban: jails search function bugfix

Ilya committed Sep 10, 2017 at 00:26 UTC 7a7df059267bd1013b1b8787cb49c223b1887e0c
1 file changed +4 -5
python.d/fail2ban.chart.py
+4 -5
@@ -11,8 +11,8 @@ from base import LogService
11
12 priority = 60000
13 retries = 60
14 -REGEX_JAILS = r_compile(r'\[([A-Za-z-_0-9]+)][^\[\]]*?(?<!# )enabled = (?:(true|false))')
15 -REGEX_DATA = r_compile(r'\[(?P<jail>[A-Za-z-_0-9]+)\] (?P<action>(?:(U|B)))[a-z]+ (?P<ipaddr>\d{1,3}(?:\.\d{1,3}){3})')
14 +REGEX_JAILS = r_compile(r'\[([a-zA-Z0-9_-]+)\][^\[\]]+?enabled\s+= (true|false)')
15 +REGEX_DATA = r_compile(r'\[(?P<jail>[A-Za-z-_0-9]+)\] (?P<action>U|B)[a-z]+ (?P<ipaddr>\d{1,3}(?:\.\d{1,3}){3})')
16 ORDER = ['jails_bans', 'jails_in_jail']
17
18
@@ -98,7 +98,6 @@ class Service(LogService):
98 jails_list.append(jail)
99 elif status == 'false' and jail in jails_list:
100 jails_list.remove(jail)
101 -
101 # If for some reason parse failed we still can START with default jails_list.
102 jails_list = list(set(jails_list) - set(self.exclude.split()
103 if isinstance(self.exclude, str) else list())) or ['ssh']
@@ -182,8 +181,8 @@ def find_jails_in_files(list_of_files, print_error):
181 for conf in list_of_files:
182 if is_accessible(conf, R_OK):
183 with open(conf, 'rt') as conf:
185 - raw_data = conf.read()
186 - data = ' '.join(raw_data.split())
184 + raw_data = conf.readlines()
185 + data = ' '.join(line for line in raw_data if line.startswith(('[', 'enabled')))
186 jails_list.extend(REGEX_JAILS.findall(data))
187 else:
188 print_error('%s is not readable or not exist' % conf)