Allow setting custom replacer
For instance `[[` and `]]` to be able to use plain pillar where
{{something}} is evaluated by jinja.
diff --git a/jenkins/client/_job_template.sls b/jenkins/client/_job_template.sls
index de4ba21..adce826 100644
--- a/jenkins/client/_job_template.sls
+++ b/jenkins/client/_job_template.sls
@@ -2,7 +2,7 @@
{#- Matrix way, simulating behavior of Jenkins job builder, not fully
supported at the moment #}
{%- for param_name, params in job_template.get('param', {}).iteritems() %}
- {%- set replacer = "{{" + param_name + "}}" %}
+ {%- set replacer = client.replacer.open + param_name + client.replacer.close %}
{%- for param in params %}
{%- set job_name = job_template.name|replace(replacer, param) %}
{%- set job = job_template.template|yaml|replace(replacer, param)|load_yaml %}
@@ -19,7 +19,7 @@
{#- You may think WTF hack is this but we can't update variables in
inner scope to replace all parameters. But we can abuse lists for
this purpose }:-) #}
- {%- set replacer = "{{" + key + "}}" %}
+ {%- set replacer = client.replacer.open + key + client.replacer.close %}
{%- do _job_name.append(_job_name|last|replace(replacer, value)) %}
{%- do _job.append(_job|last|yaml|replace(replacer, value)|load_yaml) %}
{%- endfor %}
diff --git a/jenkins/client/job.sls b/jenkins/client/job.sls
index 9375ad0..f9b1541 100644
--- a/jenkins/client/job.sls
+++ b/jenkins/client/job.sls
@@ -14,7 +14,7 @@
{%- for job_template_name, job_template in client.get('job_template', {}).iteritems() %}
{%- if job_template.get('enabled', true) %}
{%- for param_name, params in job_template.get('param', {}).iteritems() %}
- {%- set replacer = "{{" + param_name + "}}" %}
+ {%- set replacer = client.replacer.open + param_name + client.replacer.close %}
{%- for param in params %}
{%- set job_name = job_template.name|replace(replacer, param) %}
{%- do jobs.append(job_name) %}
@@ -24,7 +24,7 @@
{%- for job_params in job_template.get('jobs', []) %}
{%- set job_name = job_template.name %}
{%- for key, value in job_params.iteritems() %}
- {%- set replacer = "{{" + key + "}}" %}
+ {%- set replacer = client.replacer.open + key + client.replacer.close %}
{%- set job_name = job_name|replace(replacer, value) %}
{%- do jobs.append(job_name) %}
{%- endfor %}
diff --git a/jenkins/map.jinja b/jenkins/map.jinja
index 4ded07f..3c409b5 100644
--- a/jenkins/map.jinja
+++ b/jenkins/map.jinja
@@ -77,5 +77,9 @@
'jenkins_source_root': '/var/cache/salt/minion/jenkins/source',
'jenkins_jobs_root': '/var/cache/salt/minion/jenkins/jobs',
}
+ 'replacer': {
+ 'open': '{{',
+ 'close': '}}',
+ }
},
}, merge=pillar.jenkins.get('client', {})) %}