generation to sls
diff --git a/collectd/client.sls b/collectd/client.sls
index 856732d..13950bf 100644
--- a/collectd/client.sls
+++ b/collectd/client.sls
@@ -46,6 +46,16 @@
   - makedirs: true
   - user: root
 
+{%- set grains = {'collectd': {'plugin': {}}} %}
+{%- for service_name, service in pillar.items() %}
+{%- if service.get('_support', {}).get('collectd', {}).get('enabled', False) %}
+{%- set grains_fragment_file = service_name+'/meta/collectd.yml' %}
+{%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
+{%- set grains_yaml = load_grains_file()|load_yaml %}
+{%- set _dummy = grains.collectd.plugin.update(grains_yaml.check) %}
+{%- endif %}
+{%- endfor %}
+
 collectd_client_grain:
   file.managed:
   - name: /etc/salt/grains.d/collectd
@@ -53,6 +63,8 @@
   - template: jinja
   - user: root
   - mode: 600
+  - defaults:
+    grains: {{ grains|yaml }}
   - require:
     - pkg: collectd_client_packages
     - file: collectd_client_grains_dir
@@ -67,7 +79,7 @@
   - watch:
     - file: collectd_client_grain
 
-{%- for plugin_name, plugin in collectd_plugin.collectd_plugin.iteritems() %}
+{%- for plugin_name, plugin in grains.plugin.iteritems() %}
 
 {{ client.config_dir }}/{{ plugin_name }}.conf:
   file.managed:
diff --git a/collectd/files/collectd.grain b/collectd/files/collectd.grain
index 6525caf..0fdfece 100644
--- a/collectd/files/collectd.grain
+++ b/collectd/files/collectd.grain
@@ -1,10 +1 @@
-{%- set grains = {'collectd': {'plugin': {}}} %}
-{%- for service_name, service in pillar.items() %}
-{%- if service.get('_support', {}).get('collectd', {}).get('enabled', False) %}
-{%- set grains_fragment_file = service_name+'/meta/collectd.yml' %}
-{%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
-{%- set grains_yaml = load_grains_file()|load_yaml %}
-{%- set _dummy = grains.collectd.plugin.update(grains_yaml.check) %}
-{%- endif %}
-{%- endfor %}
 {{ grains|yaml(False) }}