Factorize minion grains generation
diff --git a/salt/files/minion.conf b/salt/files/minion.conf
index f1b9de5..810158a 100644
--- a/salt/files/minion.conf
+++ b/salt/files/minion.conf
@@ -22,24 +22,24 @@
id: {{ system.name }}.{{ system.domain }}
+{%- set excluded_keys = ('master', 'system', 'public_keys', 'private_keys', 'known_hosts', '__reclass__', '_secret', '_param') %}
+
grains:
{%- if minion.get('manage_roles', True) %}
roles:
{%- for key, value in pillar.items() %}
- {%- if key != 'master' and key != 'system' and key != 'public_keys' and key != 'private_keys' and key != 'known_hosts' and key != '__reclass__' and key != '_secret' and key != '_param' %}
+ {%- if key not in excluded_keys %}
{%- for subkey, subvalue in value.iteritems() %}
- {%- if subvalue.enabled is defined %}
- {%- if subvalue.enabled %}
+ {%- if subvalue.enabled is defined and subvalue.enabled %}
- {{key}}.{{ subkey }}
{%- endif %}
- {%- endif %}
{%- endfor %}
{%- endif %}
{%- endfor %}
{%- endif %}
services:
{%- for key, value in pillar.items() %}
- {%- if key != 'master' and key != 'system' and key != 'public_keys' and key != 'private_keys' and key != 'known_hosts' and key != '__reclass__' and key != '_secret' and key != '_param' %}
+ {%- if key not in excluded_keys %}
- {{key}}
{%- endif %}
{%- endfor %}