From 650854fa2730c6f61a3f7117d7271907e4a2a587 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Tue, 7 Feb 2023 22:20:39 +0100 Subject: [PATCH] Refactor matterbridge profile - reduce pillar calls - no longer define possible configuration options, apply settings from pillar 1:1 Signed-off-by: Georg Pfuetzenreuter --- .../etc/matterbridge/matterbridge.toml.j2 | 40 +++++++++---------- salt/profile/matterbridge/init.sls | 9 ++++- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 b/salt/profile/matterbridge/files/etc/matterbridge/matterbridge.toml.j2 index 11204f3..b234c9f 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 -%} +{%- 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 %} -{% 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..1e0cd51 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'] | default([]) -%} 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