keepalived-formula/keepalived/templates/config.jinja

41 lines
1.4 KiB
Plaintext
Raw Normal View History

2017-01-19 03:29:15 +01:00
{%- set key = 0 -%}
{%- set value = 1 -%}
2017-01-19 14:25:12 +01:00
{%- set carryovers = ['real_server', 'virtual_server', 'virtual_server_group',
'vrrp_instance', 'vrrp_script', 'vrrp_sync_group'] -%}
{%- macro keepalived_config(data, carryover='', recurse=-1, indent=0) -%}
2017-01-19 02:40:19 +01:00
{%- set recurse = recurse + 1 -%}
2017-01-19 01:51:16 +01:00
{%- if data is none -%}
2017-01-19 02:40:19 +01:00
{{- '\n' -}}
{%- elif data is string or data is number -%}
{{- data|string|indent(indent, True) }}{{ '\n' -}}
2017-01-19 03:47:53 +01:00
{%- else -%}
2017-01-19 02:40:19 +01:00
{%- if recurse > 0 -%}
{{- '{\n' -}}
{%- set indent = indent + 2 -%}
2017-01-19 02:40:19 +01:00
{%- endif -%}
2017-01-19 03:47:53 +01:00
{%- if data is mapping -%}
2017-01-21 04:56:08 +01:00
{%- set indentHolder = indent -%}
2017-01-19 03:47:53 +01:00
{%- for item in data|dictsort -%}
2017-01-19 13:48:26 +01:00
{%- if item[key] in carryovers -%}
{{- keepalived_config(item[value], carryover=item[key]) -}}
{%- else -%}
{%- if carryover -%}
{{- carryover }}{{ ' ' -}}
{%- endif -%}
{%- if item[value] is string or item[value] is not iterable -%}
{%- set indent = 0 -%}
{%- endif -%}
2017-01-21 04:56:08 +01:00
{{- item[key]|indent(indentHolder, True) }} {{ keepalived_config(item[value], recurse=recurse, indent=indent) -}}
2017-01-19 13:48:26 +01:00
{%- endif -%}
2017-01-19 03:47:53 +01:00
{%- endfor -%}
{%- else -%}
{%- for item in data -%}
{{- keepalived_config(item, indent=indent) -}}
2017-01-19 03:47:53 +01:00
{%- endfor -%}
2017-01-19 03:38:51 +01:00
{%- endif -%}
{%- if recurse > 0 -%}
2017-01-19 13:48:26 +01:00
{{- '}\n' -}}
2017-01-19 03:38:51 +01:00
{%- endif -%}
2017-01-19 01:51:16 +01:00
{%- endif -%}
{%- endmacro -%}