Minor jenkins.client enhancements
diff --git a/jenkins/client.sls b/jenkins/client.sls
deleted file mode 100644
index 0228894..0000000
--- a/jenkins/client.sls
+++ /dev/null
@@ -1,68 +0,0 @@
-{% from "jenkins/map.jinja" import client with context %}
-{%- if client.enabled %}
-
-jenkins_client_install:
-  pkg.installed:
-  - names: {{ client.pkgs }}
-
-jenkins_client_dirs:
-  file.directory:
-  - names:
-    - /srv/jenkins
-    - {{ client.dir.salt_root }}/_jenkins/cache
-  - makedirs: true
-
-/etc/salt/minion.d/_jenkins.conf:
-  file.managed:
-  - source: salt://jenkins/files/_jenkins.conf
-  - template: jinja
-
-{%- for source_name, source in client.source.iteritems() %}
-
-{%- if source.engine == "git" %}
-
-jenkins_{{ source_name }}_source:
-  git.latest:
-  - name: {{ source.address }}
-  - target: {{ client.dir.jenkins_root }}/{{ source_name }}
-  - rev: {{ source.branch }}
-  - reload_pillar: True
-
-{%- elif client.source.engine == "local" %}
-
-jenkins_{{ source_name }}_dir:
-  file.managed:
-  - name: {{ client.dir.jenkins_root }}/{{ source_name }}
-  - mode: 700
-
-{%- endif %}
-
-{%- endfor %}
-
-{{ client.dir.salt_root }}/_jenkins/jobs:
-  file.symlink:
-    - target: {{ client.dir.jenkins_root }}
-
-{%- for job_name, job in client.job.iteritems() %}
-
-{{ client.dir.salt_root }}/_jenkins/cache/{{ job_name }}.xml:
-  file.managed:
-  - source: salt://jenkins/files/jobs/{{ job.type }}.xml
-  - mode: 400
-  - template: jinja
-  - defaults:
-      job_name: {{ job_name }}
-  - require:
-    - file: jenkins_client_dirs
-    - file: /etc/salt/minion.d/_jenkins.conf
-
-jenkins_job_{{ job_name }}_ensure:
-  jenkins.present:
-  - name: {{ job_name }}
-  - config: salt://_jenkins/cache/{{ job_name }}.xml
-  - require:
-    - file: {{ client.dir.salt_root }}/_jenkins/cache/{{ job_name }}.xml
-
-{%- endfor %}
-
-{%- endif %}
diff --git a/jenkins/client/init.sls b/jenkins/client/init.sls
new file mode 100644
index 0000000..8b27b66
--- /dev/null
+++ b/jenkins/client/init.sls
@@ -0,0 +1,28 @@
+{% from "jenkins/map.jinja" import client with context %}
+{%- if client.enabled %}
+
+include:
+  - .source
+  - .job
+
+jenkins_client_install:
+  pkg.installed:
+  - names: {{ client.pkgs }}
+
+/etc/salt/minion.d/_jenkins.conf:
+  file.managed:
+  - source: salt://jenkins/files/_jenkins.conf
+  - template: jinja
+
+jenkins_client_dirs:
+  file.directory:
+  - names:
+    - {{ client.dir.jenkins_root }}
+    - {{ client.dir.salt_root }}/_jenkins/cache
+  - makedirs: true
+
+{{ client.dir.salt_root }}/_jenkins/jobs:
+  file.symlink:
+    - target: {{ client.dir.jenkins_root }}
+
+{%- endif %}
diff --git a/jenkins/client/job.sls b/jenkins/client/job.sls
new file mode 100644
index 0000000..68647f6
--- /dev/null
+++ b/jenkins/client/job.sls
@@ -0,0 +1,26 @@
+{% from "jenkins/map.jinja" import client with context %}
+
+include:
+  - jenkins.client
+
+{%- for job_name, job in client.get('job', {}).iteritems() %}
+
+{{ client.dir.salt_root }}/_jenkins/cache/{{ job_name }}.xml:
+  file.managed:
+  - source: salt://jenkins/files/jobs/{{ job.type }}.xml
+  - mode: 400
+  - template: jinja
+  - defaults:
+      job_name: {{ job_name }}
+  - require:
+    - file: jenkins_client_dirs
+
+jenkins_job_{{ job_name }}_ensure:
+  jenkins.present:
+  - name: {{ job_name }}
+  - config: salt://_jenkins/cache/{{ job_name }}.xml
+  - watch:
+    - file: {{ client.dir.salt_root }}/_jenkins/cache/{{ job_name }}.xml
+    - file: /etc/salt/minion.d/_jenkins.conf
+
+{%- endfor %}
diff --git a/jenkins/client/source.sls b/jenkins/client/source.sls
new file mode 100644
index 0000000..9657324
--- /dev/null
+++ b/jenkins/client/source.sls
@@ -0,0 +1,26 @@
+{% from "jenkins/map.jinja" import client with context %}
+
+include:
+  - jenkins.client
+
+{%- for source_name, source in client.get('source', {}).iteritems() %}
+
+{%- if source.engine == "git" %}
+
+jenkins_{{ source_name }}_source:
+  git.latest:
+  - name: {{ source.address }}
+  - target: {{ client.dir.jenkins_root }}/{{ source_name }}
+  - rev: {{ source.branch }}
+  - reload_pillar: True
+
+{%- elif client.source.engine == "local" %}
+
+jenkins_{{ source_name }}_dir:
+  file.managed:
+  - name: {{ client.dir.jenkins_root }}/{{ source_name }}
+  - mode: 700
+
+{%- endif %}
+
+{%- endfor %}
diff --git a/jenkins/map.jinja b/jenkins/map.jinja
index 27e57ba..9197f65 100644
--- a/jenkins/map.jinja
+++ b/jenkins/map.jinja
@@ -63,15 +63,7 @@
 {% set param = {'bool': 'Boolean', 'string': 'String', 'text': 'Text', 'choice': 'Choice'}  %}
 
 {% set client = salt['grains.filter_by']({
-    'Debian': {
-        'pkgs': ['python-jenkins'],
-        'param': param,
-        'dir': {
-            'salt_root': '/srv/salt/env/dev',
-            'jenkins_root': '/srv/jenkins/client',
-        }
-    },
-    'RedHat': {
+    'default': {
         'pkgs': ['python-jenkins'],
         'param': param,
         'dir': {