Merge branch 'feature/map-jinja-yaml' into 'master'

Feature/map jinja yaml

See merge request !4
diff --git a/salt/files/master.conf b/salt/files/master.conf
index 48322e9..b9fbf38 100644
--- a/salt/files/master.conf
+++ b/salt/files/master.conf
@@ -8,14 +8,14 @@
 
 file_roots:
   base:
-  - /srv/salt/env/{{ master.system.environment }}
+  - {{ master.dir.files }}/{{ master.system.environment }}
   {%- for formula_name, formula in master.system.get('formula', {}).iteritems() %}
-  - /srv/salt/env/{{ master.system.environment }}/{{ formula_name }}
+  - {{ master.dir.files }}/{{ master.system.environment }}/{{ formula_name }}
   {%- endfor %}
   {{ master.system.environment }}:
-  - /srv/salt/env/{{ master.system.environment }}
+  - {{ master.dir.files }}/{{ master.system.environment }}
   {%- for formula_name, formula in master.system.get('formula', {}).iteritems() %}
-  - /srv/salt/env/{{ master.system.environment }}/{{ formula_name }}
+  - {{ master.dir.files }}/{{ master.system.environment }}/{{ formula_name }}
   {%- endfor %}
 
 {%- else %}
@@ -24,10 +24,10 @@
   {%- for environment_name, environment in master.get('environment', {}).iteritems() %}
   {%- if master.base_environment == environment_name %}
   base:
-  - /srv/salt/env/{{ environment_name }}
+  - {{ master.dir.files }}/{{ environment_name }}
   {%- endif %}
   {{ environment_name }}:
-  - /srv/salt/env/{{ environment_name }}
+  - {{ master.dir.files }}/{{ environment_name }}
   {%- endfor %}
 
 {%- endif %}
diff --git a/salt/map.jinja b/salt/map.jinja
index efbcbcd..9ba416a 100644
--- a/salt/map.jinja
+++ b/salt/map.jinja
@@ -1,128 +1,108 @@
 
-{% set master = salt['grains.filter_by']({
-    'Arch': {
-        'pkgs': ['salt-zmq'],
-        'service': 'salt-master',
-        'pillar': {
-            'engine': 'salt',
-        },
-        'accept_policy': 'preseed',
-        'bind': {},
-        'formula': {},
-        'base_environment': 'dev',
-    },
-    'Debian': {
-        'pkgs': ['salt-master'],
-        'service': 'salt-master',
-        'pillar': {
-            'engine': 'salt',
-        },
-        'accept_policy': 'preseed',
-        'bind': {},
-        'formula': {},
-        'base_environment': 'dev',
-    },
-    'Gentoo': {
-        'pkgs': ['app-admin/salt'],
-        'service': 'salt-master',
-        'pillar': {
-            'engine': 'salt',
-        },
-        'accept_policy': 'preseed',
-        'bind': {},
-        'formula': {},
-        'base_environment': 'dev',
-    },
-    'MacOS': {
-        'pkgs': ['saltstack'],
-        'service': 'salt-master',
-        'pillar': {
-            'engine': 'salt',
-        },
-        'accept_policy': 'preseed',
-        'bind': {},
-        'formula': {},
-        'base_environment': 'dev',
-    },
-    'RedHat': {
-        'pkgs': ['salt-master'],
-        'service': 'salt-master',
-        'pillar': {
-            'engine': 'salt',
-        },
-        'accept_policy': 'preseed',
-        'bind': {},
-        'formula': {},
-        'base_environment': 'dev',
-    },
-}, merge=salt['pillar.get']('salt:master')) %}
+{%- load_yaml as master_common %}
+default:
+  service: salt-master
+  accept_policy: preseed
+  bind: {}
+  formula: {}
+  base_environment: dev
+  dir:
+    files: /srv/salt/env
+  pillar:
+    engine: salt
+{%- endload %}
 
-{% set minion = salt['grains.filter_by']({
-    'Arch': {
-        'pkgs': ['salt-zmq'],
-        'graph_pkgs': ['graphviz'],
-        'graph_states_pkgs': ['python-pydot', 'python-yaml'],
-        'graph_states': False,
-        'service': 'salt-minion',
-    },
-    'Debian': {
-        'pkgs': ['salt-minion'],
-        'graph_pkgs': ['graphviz'],
-        'graph_states_pkgs': ['python-pydot', 'python-yaml'],
-        'graph_states': False,
-        'service': 'salt-minion',
-    },
-    'Gentoo': {
-        'pkgs': ['app-admin/salt'],
-        'graph_pkgs': ['graphviz'],
-        'graph_states_pkgs': ['python-pydot', 'python-yaml'],
-        'graph_states': False,
-        'service': 'salt-minion',
-    },
-    'MacOS': {
-        'pkgs': ['saltstack'],
-        'graph_pkgs': ['graphviz'],
-        'graph_states_pkgs': ['python-pydot', 'python-yaml'],
-        'graph_states': False,
-        'service': 'salt-minion',
-    },
-    'RedHat': {
-        'pkgs': ['salt-minion'],
-        'graph_pkgs': ['graphviz'],
-        'graph_states_pkgs': ['python-pydot', 'python-yaml'],
-        'graph_states': False,
-        'service': 'salt-minion',
-    },
-}, merge=salt['pillar.get']('salt:minion')) %}
+{%- load_yaml as master_specific %}
+Arch:
+  pkgs:
+  - salt-zmq
+Debian:
+  pkgs:
+  - salt-master
+Gentoo:
+  pkgs:
+  - app-admin/salt
+MacOS:
+  pkgs:
+  - saltstack
+RedHat:
+  pkgs:
+  - salt-master
+{%- endload %}
+
+{%- set raw_master = salt['grains.filter_by'](master_specific, merge=salt['pillar.get']('salt:master')) %}
+{%- set master = salt['grains.filter_by'](master_common, merge=raw_master) %}
 
 
-{% set api = salt['grains.filter_by']({
-    'Debian': {
-        'pkgs': ['salt-api'],
-        'service': 'salt-api',
-    },
-    'RedHat': {
-        'pkgs': ['salt-api'],
-        'service': 'salt-api',
-    },
-}, merge=salt['pillar.get']('salt:api')) %}
+{%- load_yaml as minion_common %}
+default:
+  graph_pkgs: 
+  - graphviz
+  graph_states_pkgs: 
+  - python-pydot
+  - python-yaml
+  graph_states: False
+  service: salt-minion
+{%- endload %}
+
+{%- load_yaml as minion_specific %}
+Arch:
+  pkgs: 
+  - salt-zmq
+Debian:
+  pkgs:
+  - salt-minion
+Gentoo:
+  pkgs: 
+  - app-admin/salt
+MacOS:
+  pkgs:
+  - saltstack
+RedHat:
+  pkgs:
+  - salt-minion
+{%- endload %}
+
+{%- set raw_minion = salt['grains.filter_by'](minion_specific, merge=salt['pillar.get']('salt:minion')) %}
+{%- set minion = salt['grains.filter_by'](minion_common, merge=raw_minion) %}
 
 
-{% set control = salt['grains.filter_by']({
-    'Debian': {
-        'cloud_pips': ['apache-libcloud', 'netaddr'],
-        'cloud_pkgs': ['python-netaddr', 'python-libcloud'],
-        'virt_pips': ['libvirt-python',],
-        'virt_pkgs': ['libvirt-dev', 'pkg-config', 'libguestfs-tools'],
-        'maas_pkgs': ['python-maas-client',],
-        'cluster': {},
-    },
-    'RedHat': {
-        'cloud_pips': ['apache-libcloud', 'netaddr'],
-        'cloud_pkgs': ['python-netaddr', 'python-libcloud'],
-        'virt_pips': ['libvirt-python',],
-        'virt_pkgs': ['libvirt-dev', 'pkg-config'],
-        'maas_pkgs': ['python-maas-client',],
-        'cluster': {},
-    },
-}, merge=salt['pillar.get']('salt:control')) %}
+{%- load_yaml as api_common %}
+default:
+  pkgs:
+  - salt-api
+  service: salt-api
+{%- endload %}
+
+{%- set api = salt['grains.filter_by'](api_common, merge=salt['pillar.get']('salt:api')) %}
+
+{%- load_yaml as control_common %}
+default:
+  cloud_pips: 
+  - apache-libcloud
+  - netaddr
+  cloud_pkgs: 
+  - python-netaddr
+  - python-libcloud
+  virt_pips: 
+  - libvirt-python
+  maas_pkgs: 
+  - python-maas-client
+  cluster: {}
+{%- endload %}
+
+{%- load_yaml as control_specific %}
+Debian:
+  virt_pkgs: 
+  - libvirt-dev
+  - pkg-config
+  - libguestfs-tools
+RedHat:
+  virt_pkgs: 
+  - libvirt-dev
+  - pkg-config
+{%- endload %}
+
+{%- set raw_control = salt['grains.filter_by'](control_specific, merge=salt['pillar.get']('salt:control')) %}
+{%- set control = salt['grains.filter_by'](control_common, merge=raw_control) %}
+