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': {