Merge "Allow customized remote_agent configuration"
diff --git a/telegraf/files/input/openstack.conf b/telegraf/files/input/openstack.conf
index aca2cf3..663343e 100644
--- a/telegraf/files/input/openstack.conf
+++ b/telegraf/files/input/openstack.conf
@@ -5,3 +5,4 @@
   password = "{{ values.password }}"
   identity_endpoint = "{{ values.identity_endpoint }}"
   monitor_agents = {{ values.monitor_agents|default("true")|lower }}
+  cpu_ratio = {{ values.cpu_ratio|default(1.0) }}
diff --git a/telegraf/remote_agent.sls b/telegraf/remote_agent.sls
index 0b43d83..5442d53 100644
--- a/telegraf/remote_agent.sls
+++ b/telegraf/remote_agent.sls
@@ -30,7 +30,15 @@
     - context:
       agent: {{ remote_agent }}
 
-{%- for name,values in remote_agent.get('input', {}).iteritems() %}
+{%- set remote_agent_inputs = {'input': {}} %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+  {%- set remote_agent_input = node_grains.get('telegraf', {}).get('remote_agent', {}).get('input', {}) %}
+  {%- if remote_agent_input %}
+    {%- set remote_agent_inputs = salt['grains.filter_by']({'default': remote_agent_inputs}, merge={'input': remote_agent_input}) %}
+  {%- endif %}
+{%- endfor %}
+
+{%- for name,values in remote_agent_inputs.get('input', {}).iteritems() %}
 
 {%- if values is not mapping or values.get('enabled', True) %}
 input_{{ name }}_remote_agent: