Fix telegraf.agent state idempotency
Change-Id: I9fc4cf7c29f5374e54022eba78631713871d0a2d
diff --git a/telegraf/agent.sls b/telegraf/agent.sls
index 344fff8..603bd37 100644
--- a/telegraf/agent.sls
+++ b/telegraf/agent.sls
@@ -23,11 +23,17 @@
file.directory:
- name: {{agent.dir.config_d}}
- makedirs: True
- - clean: True
- mode: 755
- require:
- pkg: telegraf_packages_agent
+config_d_dir_agent_clean:
+ file.directory:
+ - name: {{agent.dir.config_d}}
+ - clean: True
+ - watch_in:
+ - service: telegraf_service_agent
+
{%- for name,values in agent.input.iteritems() %}
{%- if values is not mapping or values.get('enabled', True) %}
@@ -47,6 +53,8 @@
- require:
- pkg: telegraf_packages_agent
- file: config_d_dir_agent
+ - require_in:
+ - file: config_d_dir_agent_clean
- watch_in:
- service: telegraf_service_agent
- defaults:
@@ -80,6 +88,8 @@
- require:
- pkg: telegraf_packages_agent
- file: config_d_dir_agent
+ - require_in:
+ - file: config_d_dir_agent_clean
- watch_in:
- service: telegraf_service_agent
- defaults:
diff --git a/telegraf/remote_agent.sls b/telegraf/remote_agent.sls
index 6a508cf..129cd13 100644
--- a/telegraf/remote_agent.sls
+++ b/telegraf/remote_agent.sls
@@ -16,11 +16,19 @@
file.directory:
- name: {{remote_agent.dir.config_d}}
- makedirs: True
- - clean: True
- mode: 755
- require:
- file: config_dir_remote_agent
+config_d_dir_remote_agent_clean:
+ file.directory:
+ - name: {{remote_agent.dir.config_d}}
+ - clean: True
+ - onchanges_in:
+{%- for docker_id in docker_ids.split() %}
+ - cmd: {{docker_id}}_remote_agent_reload
+{%- endfor %}
+
telegraf_config_remote_agent:
file.managed:
- name: {{ remote_agent.dir.config }}/telegraf.conf
@@ -68,6 +76,8 @@
{%- endfor %}
- require:
- file: config_d_dir_remote_agent
+ - require_in:
+ - file: config_d_dir_remote_agent_clean
- defaults:
name: {{ name }}
values: {{ values }}
@@ -92,6 +102,8 @@
{%- endfor %}
- require:
- file: config_d_dir_remote_agent
+ - require_in:
+ - file: config_d_dir_remote_agent_clean
- defaults:
name: {{ name }}
values: {{ values }}