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 }}