|
1 | | -<% syslog_config = pillar.get('syslog_ng', {}) %>\ |
2 | | -<%! |
3 | | -def rule_builder(rule): |
4 | | - if rule is None: |
5 | | - return '' |
6 | | - elif type(rule) is bool: |
7 | | - return {True: 'yes', False: 'no'}[rule] |
8 | | - elif type(rule) is int: |
9 | | - return rule |
10 | | - elif type(rule) is list: |
11 | | - return ' '.join([rule_builder(v) for v in rule]) |
12 | | - elif type(rule) is dict: |
13 | | - return ' '.join([ '%s(%s)' % (k,rule_builder(v)) for k, v in rule.items()]) |
14 | | - else: |
15 | | - if rule[0] == '=': |
16 | | - return rule[1:] |
17 | | - return '"%s"' % rule |
18 | | -%>\ |
19 | | - |
20 | | -@version: ${ syslog_config.get('version', '3.3') } |
21 | | - |
22 | | -% for module in syslog_config.get('module', []): |
23 | | -@module ${ rule_builder(module) } |
24 | | -% endfor |
25 | | - |
26 | | -% for inc in syslog_config.get('include', []): |
27 | | -@include ${ rule_builder(inc) } |
28 | | -% endfor |
29 | | - |
| 1 | +{%- set syslog_config = pillar.get('syslog_ng', {}) -%} |
| 2 | + |
| 3 | +{%- macro rule_builder(rule) -%} |
| 4 | + {%- if rule is none -%} |
| 5 | + {%- elif rule is sameas true -%} |
| 6 | +yes |
| 7 | + {%- elif rule is sameas false -%} |
| 8 | +no |
| 9 | + {%- elif rule is number -%} |
| 10 | +{{ rule }} |
| 11 | + {%- elif rule is mapping -%} |
| 12 | + {%- for k, v in rule.items() -%} |
| 13 | +{{ k }}({{ rule_builder(v) }}) |
| 14 | + {%- endfor -%} |
| 15 | + {%- elif rule is iterable and rule is not string -%} |
| 16 | + {%- for v in rule -%} |
| 17 | +{{ rule_builder(v) }} |
| 18 | + {%- endfor -%} |
| 19 | + {%- else -%} |
| 20 | + {%- if rule[0] == '=' -%} |
| 21 | +{{ rule[1:] }} |
| 22 | + {%- else -%} |
| 23 | +"{{ rule }}" |
| 24 | + {%- endif -%} |
| 25 | + {%- endif -%} |
| 26 | +{%- endmacro -%} |
| 27 | + |
| 28 | +@version: {{ syslog_config.get('version', '3.3') }} |
| 29 | + |
| 30 | +{%- for module in syslog_config.get('module', []) %} |
| 31 | +@module {{ rule_builder(module) }} |
| 32 | +{%- endfor %} |
| 33 | + |
| 34 | +{%- for inc in syslog_config.get('include', []) %} |
| 35 | +@include {{ rule_builder(inc) }} |
| 36 | +{%- endfor %} |
30 | 37 |
|
31 | 38 | options { |
32 | | -% for rule in syslog_config.get('options', []): |
33 | | - ${ rule_builder(rule) }; |
34 | | -% endfor |
| 39 | +{%- for rule in syslog_config.get('options', []) %} |
| 40 | + {{ rule_builder(rule) }}; |
| 41 | +{%- endfor %} |
35 | 42 | }; |
36 | 43 |
|
37 | | -% for obj in ('source', 'destination', 'filter', 'parser', 'rewrite', 'template'): |
38 | | - % for params in syslog_config.get(obj, []): |
39 | | - % for name, rules in params.items(): |
40 | | -${ obj } ${ name } { |
41 | | - % for rule in rules: |
42 | | - ${ rule_builder(rule) }; |
43 | | - % endfor |
| 44 | +{%- for obj in ('source', 'destination', 'filter', 'parser', 'rewrite', 'template') %} |
| 45 | +{%- for params in syslog_config.get(obj, []) %} |
| 46 | +{% for name, rules in params.items() %} |
| 47 | +{{ obj }} {{ name }} { |
| 48 | + {%- for rule in rules %} |
| 49 | + {{ rule_builder(rule) }}; |
| 50 | + {%- endfor %} |
44 | 51 | }; |
| 52 | +{%- endfor %} |
| 53 | +{%- endfor %} |
| 54 | +{%- endfor %} |
45 | 55 |
|
46 | | - % endfor |
47 | | - % endfor |
48 | | - |
49 | | -% endfor |
50 | | -% for loggers in syslog_config.get('log', []): |
| 56 | +{% for loggers in syslog_config.get('log', []) -%} |
51 | 57 | log { |
52 | | - % for rule in loggers: |
53 | | - ${ rule_builder(rule) }; |
54 | | - % endfor |
| 58 | + {%- for rule in loggers %} |
| 59 | + {{ rule_builder(rule) }}; |
| 60 | + {%- endfor %} |
55 | 61 | }; |
56 | | -% endfor |
| 62 | +{%- endfor %} |
0 commit comments