Collect remote_agent outputs from grains
Change-Id: I405c8573dff3876097180daff0035321ed04b016
Related-Bug: PROD-19062
diff --git a/telegraf/map.jinja b/telegraf/map.jinja
index 3ca3e3e..3119a8d 100644
--- a/telegraf/map.jinja
+++ b/telegraf/map.jinja
@@ -18,7 +18,7 @@
}, merge=salt['pillar.get']('telegraf:remote_agent')) %}
{# Collect configuration from */meta/telegraf.yml #}
-{%- set telegraf_grains = {'telegraf': {'agent': {'input': {}}, 'remote_agent': {'input':{}}}} %}
+{%- set telegraf_grains = {'telegraf': {'agent': {'input': {}}, 'remote_agent': {'input':{}, 'output':{}}}} %}
{%- for service_name, service in pillar.items() %}
{%- if service.get('_support', {}).get('telegraf', {}).get('enabled', False) %}
{%- set grains_fragment_file = service_name+'/meta/telegraf.yml' %}
diff --git a/telegraf/remote_agent.sls b/telegraf/remote_agent.sls
index 45bb734..ad8f6b3 100644
--- a/telegraf/remote_agent.sls
+++ b/telegraf/remote_agent.sls
@@ -90,7 +90,15 @@
{%- endfor %}
-{%- for name,values in remote_agent.get('output', {}).iteritems() %}
+{%- set remote_agent_outputs = {'output': remote_agent.output} %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+ {%- set remote_agent_output = node_grains.get('telegraf', {}).get('remote_agent', {}).get('output', {}) %}
+ {%- if remote_agent_output %}
+ {%- set remote_agent_outputs = salt['grains.filter_by']({'default': remote_agent_outputs}, merge={'output': remote_agent_output}) %}
+ {%- endif %}
+{%- endfor %}
+
+{%- for name,values in remote_agent_outputs.get('output', {}).iteritems() %}
output_{{ name }}_remote_agent:
file.managed: