Merge "Try to fix jinja cycle"
diff --git a/heka/_service.sls b/heka/_service.sls
index d7600f9..3070185 100644
--- a/heka/_service.sls
+++ b/heka/_service.sls
@@ -1,6 +1,3 @@
-{%- from "heka/map.jinja" import service_grains with context %}
-{%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
-
 {%- if server.enabled is defined and server.enabled %}
 
 heka_{{ service_name }}_conf_dir:
@@ -111,6 +108,67 @@
 
 {# Overriding aggregated metadata from user-space pillar data #}
 
+{# Setup basic structure for all roles so updates can apply #}
+{%- set service_grains = {
+  'log_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'metric_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'remote_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'aggregator': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm_cluster': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'ceilometer_collector': {
+    'decoder': {},
+    'input': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  }
+} %}
+
+{# Loading the other services' support metadata for local roles #}
+{%- macro load_support_file(support_fragment_file) %}{% include support_fragment_file ignore missing %}{% endmacro %}
+{%- for svc_name, svc in pillar.iteritems() %}
+  {%- if svc.get('_support', {}).get('heka', {}).get('enabled', False) %}
+    {%- set heka_fragment_file = svc_name+'/meta/heka.yml' %}
+    {%- set heka_yaml = load_support_file(heka_fragment_file)|load_yaml %}
+    {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=heka_yaml) %}
+  {%- endif %}
+{%- endfor %}
+
 {%- for service_grain_name, service_grain in service_grains.iteritems() %}
 {% if salt['pillar.get']('heka:'+service_grain_name) %}
 
diff --git a/heka/map.jinja b/heka/map.jinja
index 45c6956..f1eba2a 100644
--- a/heka/map.jinja
+++ b/heka/map.jinja
@@ -131,63 +131,3 @@
     'sensu_watchdog_ttl': default_sensu_watchdog_ttl,
   }
 }, merge=salt['pillar.get']('heka:ceilometer_collector')) %}
-
-{# Setup basic structure for all roles so updates can apply #}
-{%- set service_grains = {
-  'log_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'metric_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'remote_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'aggregator': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm_cluster': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'ceilometer_collector': {
-    'decoder': {},
-    'input': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  }
-} %}
-
-{# Loading the other services' support metadata for local roles #}
-{%- for service_name, service in pillar.iteritems() %}
-  {%- if service.get('_support', {}).get('heka', {}).get('enabled', False) %}
-    {%- set grains_fragment_file = service_name+'/meta/heka.yml' %}
-    {%- set grains_yaml = load_grains_file(grains_fragment_file)|load_yaml %}
-    {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=grains_yaml) %}
-  {%- endif %}
-{%- endfor %}
diff --git a/heka/meta/salt.yml b/heka/meta/salt.yml
index 42f51ae..53b7f8d 100644
--- a/heka/meta/salt.yml
+++ b/heka/meta/salt.yml
@@ -1,4 +1,67 @@
 grain:
   heka:
-    {%- from "heka/map.jinja" import service_grains with context %}
+    {# Setup basic structure for all roles so updates can apply #}
+    {%- set service_grains = {
+      'log_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'metric_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'remote_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'aggregator': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm_cluster': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'ceilometer_collector': {
+        'decoder': {},
+        'input': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      }
+    } %}
+
+    {# Loading the other services' support metadata for local roles #}
+    {%- macro load_support_file(support_fragment_file) %}{% include support_fragment_file ignore missing %}{% endmacro %}
+    {%- for svc_name, svc in pillar.iteritems() %}
+      {%- if svc.get('_support', {}).get('heka', {}).get('enabled', False) %}
+        {%- set heka_fragment_file = svc_name+'/meta/heka.yml' %}
+        {%- set heka_yaml = load_support_file(heka_fragment_file)|load_yaml %}
+        {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=heka_yaml) %}
+      {%- endif %}
+    {%- endfor %}
     {{ service_grains|yaml(False)|indent(4) }}
+
+{#-
+  vim: syntax=jinja
+-#}