interpolation of config readers extended with `%(known/parameter)s`.

(means last known option with name `parameter`).
pull/868/head
sebres 2014-11-28 19:03:58 +01:00
parent 1439152121
commit d63b125877
6 changed files with 30 additions and 0 deletions

View File

@ -19,6 +19,8 @@ ver. 0.9.2 (2014/XX/XXX) - wanna-be-released
- New Features:
- new interpolation feature for config readers - `%(known/parameter)s`.
(means last known option with name `parameter`).
- new options for jail introduced addfailregex/addignoreregex: extends regex
specified in filter (opposite to failregex/ignoreregex that overwrites it)
see gh-867.

View File

@ -226,6 +226,11 @@ after = 1.conf
if isinstance(s, dict):
s2 = alls.get(n)
if isinstance(s2, dict):
# save previous known values, for possible using in local interpolations later:
for k, v in s2.iteritems():
if not k.startswith('known/'):
s2['known/'+k] = v
# merge section
s2.update(s)
else:
alls[n] = s.copy()

View File

@ -436,6 +436,11 @@ class JailsReaderTest(LogCaptureTestCase):
['set', 'test2failregex', 'addfailregex', 'failure 1 <IP>'],
['set', 'test2failregex', 'addfailregex', 'failure 2 <IP>'],
['start', 'test2failregex'],
['add', 'test3known-interp', 'auto'],
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf) <HOST>'],
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local) <HOST>'],
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>'],
['start', 'test3known-interp'],
['add', 'missinglogfiles', 'auto'],
['set', 'missinglogfiles', 'addfailregex', '<IP>'],
['add', 'brokenaction', 'auto'],

View File

@ -0,0 +1,6 @@
#[INCLUDES]
#before = common.conf
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

View File

@ -0,0 +1,7 @@
#[INCLUDES]
#before = common.conf
[Definition]
failregex = %(known/failregex)s
failure test 2 (filter.d/test.local) <HOST>

View File

@ -27,6 +27,11 @@ filter = simple
failregex = failure 1 <IP>
failure 2 <IP>
[test3known-interp]
enabled = true
filter = test
addfailregex = failure test 3 (jail.local) <HOST>
[missinglogfiles]
enabled = true
logpath = /weapons/of/mass/destruction