Manage grains using support metadata

Change-Id: I8c53538c6ba7f00bcfee4d8b565795b1f91a19b2
diff --git a/sensu/client.sls b/sensu/client.sls
index 67d57ae..2bbfd39 100644
--- a/sensu/client.sls
+++ b/sensu/client.sls
@@ -63,40 +63,6 @@
 {%- endif %}
 {%- endfor %}
 
-sensu_client_checks_grains_dir:
-  file.directory:
-  - name: /etc/salt/grains.d
-  - mode: 700
-  - makedirs: true
-  - user: root
-
-{%- set service_grains = {'sensu': {'check': {}}} %}
-{%- for service_name, service in pillar.items() %}
-{%- if service.get('_support', {}).get('sensu', {}).get('enabled', False) %}
-{%- set grains_fragment_file = service_name+'/meta/sensu.yml' %}
-{%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
-{%- set grains_yaml = load_grains_file()|load_yaml %}
-{%- for check_name, check in client.get('check', {}).items() %}
-  {%- if check_name in grains_yaml.check and not check.get('enabled', True) %}
-    {%- do grains_yaml.check.pop(check_name) %}
-  {%- endif %}
-{%- endfor %}
-{%- do service_grains.sensu.check.update(grains_yaml.check) %}
-{%- endif %}
-{%- endfor %}
-
-sensu_client_checks_grains:
-  file.managed:
-  - name: /etc/salt/grains.d/sensu
-  - source: salt://sensu/files/sensu.grain
-  - template: jinja
-  - mode: 600
-  - defaults:
-    service_grains: {{ service_grains|yaml }}
-  - require:
-    - pkg: sensu_client_packages
-    - file: sensu_client_checks_grains_dir
-
 /etc/sensu/conf.d/rabbitmq.json:
   file.managed:
   - source: salt://sensu/files/rabbitmq.json
diff --git a/sensu/files/sensu.grain b/sensu/files/sensu.grain
deleted file mode 100644
index 3e3b373..0000000
--- a/sensu/files/sensu.grain
+++ /dev/null
@@ -1 +0,0 @@
-{{ service_grains|yaml(False) }}
diff --git a/sensu/meta/salt.yml b/sensu/meta/salt.yml
index bc9912d..6e9b408 100644
--- a/sensu/meta/salt.yml
+++ b/sensu/meta/salt.yml
@@ -9,4 +9,22 @@
     priority: 1020
     require:
     - salt: sensu.server
-
+grain:
+  {%- if pillar.sensu.client is defined %}
+  {%- set service_grains = {'sensu': {'check': {}}} %}
+  {%- for service_name, service in pillar.items() %}
+  {%- if service.get('_support', {}).get('sensu', {}).get('enabled', False) %}
+  {%- set grains_fragment_file = service_name+'/meta/sensu.yml' %}
+  {%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
+  {%- set grains_yaml = load_grains_file()|load_yaml %}
+  {%- for check_name, check in client.get('check', {}).items() %}
+    {%- if check_name in grains_yaml.check and not check.get('enabled', True) %}
+      {%- do grains_yaml.check.pop(check_name) %}
+    {%- endif %}
+  {%- endfor %}
+  {%- do service_grains.sensu.check.update(grains_yaml.check) %}
+  {%- endif %}
+  {%- endfor %}
+  sensu:
+    {{ service_grains|yaml(False)|indent(4) }}
+  {%- endif %}