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: