diff --git a/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 b/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 index 11204f3..dcb4968 100644 --- a/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 +++ b/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 @@ -1,35 +1,33 @@ {%- set header = salt['pillar.get']('managed_header_pound') -%} -{%- set myfqdn = salt['grains.get']('fqdn') -%} -{%- set mypillar = 'profile:matterbridge:instances:' ~ instance ~ ':' -%} -{%- set myaccounts = mypillar ~ 'accounts' -%} -{%- set mygateways = mypillar ~ 'gateways' -%} -{%- set generalopts = ['RemoteNickFormat', 'IgnoreFailureOnStart', 'MessageSplit', 'MediaDownloadSize', 'MediaDownloadPath', 'MediaServerDownload', 'LogFile'] -%} -{%- set accountopts = ['Nick', 'NickServNick', 'NickServPassword', 'Server', 'UseTLS', 'UseSASL', 'Label', 'Charset', 'IgnoreNicks', 'RunCommands', 'UseRelayMsg', 'RemoteNickFormat'] -%} {{ header }} +{%- if general | length %} [general] -{% for option in generalopts %} -{%- if salt['pillar.get'](mypillar ~ option, None) != None %} -{{ option }}="{{ salt['pillar.get'](mypillar ~ option) }}" -{%- endif -%} -{%- endfor -%} +{%- for option, value in general.items() %} +{%- if value is string %} +{%- set value = '"' ~ value ~ '"' %} +{%- endif %} +{{ option }}={{ value }} +{%- endfor %} +{%- endif %} -{% for account, config in salt['pillar.get'](myaccounts).items() %} -[{{ config['protocol'] }}.{{ account }}] -{%- for option in accountopts %} -{%- if salt['pillar.get'](myaccounts ~ ':' ~ account ~ ':' ~ option, None) != None %} -{{ option }}="{{ config[option] }}" -{%- endif -%} -{% endfor %} -{% endfor -%} +{%- for account, config in accounts.items() %} +[{{ account }}] +{%- for option, value in config.items() %} +{%- if value is string %} +{%- set value = '"' ~ value ~ '"' %} +{%- endif %} +{{ option }}={{ value }} +{%- endfor %} +{%- endfor %} -{% for gateway, config in salt['pillar.get'](mygateways).items() %} +{%- for gateway, config in gateways.items() %} [[gateway]] name="{{ gateway }}" enable=true -{% for account, channel in config.items() %} +{%- for account, channel in config.items() %} [[gateway.inout]] account="{{ account }}" channel="{{ channel }}" -{% endfor %} +{%- endfor %} {%- endfor -%} diff --git a/salt/profile/matterbridge/init.sls b/salt/profile/matterbridge/init.sls index eee6df2..c1a9cf8 100644 --- a/salt/profile/matterbridge/init.sls +++ b/salt/profile/matterbridge/init.sls @@ -1,5 +1,5 @@ -{%- set mypillar = 'profile:matterbridge' -%} -{%- set instances = salt['pillar.get'](mypillar ~ ':instances') or [] -%} +{%- set mypillar = salt['pillar.get']('profile:matterbridge') -%} +{%- set instances = mypillar['instances'] or [] -%} matterbridge_packages: pkg.installed: @@ -31,7 +31,12 @@ matterbridge_files: - /etc/matterbridge/{{ instance }}.toml: - context: instance: {{ instance }} + general: {{ instances[instance]['general'] | default({}) }} + accounts: {{ instances[instance]['accounts'] }} + gateways: {{ instances[instance]['gateways'] }} +{%- endfor %} +{%- for instance in instances %} matterbridge_{{ instance }}_service: service.running: - name: matterbridge@{{ instance }}.service