summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-03-04 02:16:25 +0000
committerGerrit Code Review <review@openstack.org>2020-03-04 02:16:25 +0000
commit9b79893b04da13375a7bec8b9388892d3383cb55 (patch)
tree91a8dcbed9a1e15f6c2d6842419ac74deac075a4
parente273b68325217a84225f8e979d5d77e65df2f626 (diff)
parent45f24585841aff5529d9928b31f26afe989b5ed0 (diff)
downloadpython-jenkins-job-builder-9b79893b04da13375a7bec8b9388892d3383cb55.tar.gz
python-jenkins-job-builder-9b79893b04da13375a7bec8b9388892d3383cb55.tar.xz
python-jenkins-job-builder-9b79893b04da13375a7bec8b9388892d3383cb55.zip
Merge "Add support for become in ansible playbook"
-rw-r--r--jenkins_jobs/modules/builders.py5
-rw-r--r--tests/builders/fixtures/ansible-playbook001.xml1
-rw-r--r--tests/builders/fixtures/ansible-playbook002.xml1
-rw-r--r--tests/builders/fixtures/ansible-playbook003.xml1
-rw-r--r--tests/builders/fixtures/ansible-playbook004.xml24
-rw-r--r--tests/builders/fixtures/ansible-playbook004.yaml7
6 files changed, 39 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py
index 71765f85..248ad90d 100644
--- a/jenkins_jobs/modules/builders.py
+++ b/jenkins_jobs/modules/builders.py
@@ -4516,6 +4516,11 @@ def ansible_playbook(parser, xml_parent, data):
XML.SubElement(plugin, "sudoUser").text = data.get("sudo-user", "")
else:
XML.SubElement(plugin, "sudo").text = "false"
+ if data.get("become", False):
+ XML.SubElement(plugin, "become").text = "true"
+ XML.SubElement(plugin, "becomeUser").text = data.get("become-user", "")
+ else:
+ XML.SubElement(plugin, "become").text = "false"
XML.SubElement(plugin, "forks").text = str(data.get("workers", "5"))
XML.SubElement(plugin, "unbufferedOutput").text = str(
data.get("unbuffered-output", True)
diff --git a/tests/builders/fixtures/ansible-playbook001.xml b/tests/builders/fixtures/ansible-playbook001.xml
index 662321b3..d19d6068 100644
--- a/tests/builders/fixtures/ansible-playbook001.xml
+++ b/tests/builders/fixtures/ansible-playbook001.xml
@@ -13,6 +13,7 @@
<credentialsId/>
<vaultCredentialsId/>
<sudo>false</sudo>
+ <become>false</become>
<forks>5</forks>
<unbufferedOutput>true</unbufferedOutput>
<colorizedOutput>false</colorizedOutput>
diff --git a/tests/builders/fixtures/ansible-playbook002.xml b/tests/builders/fixtures/ansible-playbook002.xml
index 21c1ae0b..afe13676 100644
--- a/tests/builders/fixtures/ansible-playbook002.xml
+++ b/tests/builders/fixtures/ansible-playbook002.xml
@@ -18,6 +18,7 @@ machine02.example.com
<vaultCredentialsId>0421b950-487b-4749-aa69-d87425e14459</vaultCredentialsId>
<sudo>true</sudo>
<sudoUser>cloud-user</sudoUser>
+ <become>false</become>
<forks>2</forks>
<unbufferedOutput>false</unbufferedOutput>
<colorizedOutput>true</colorizedOutput>
diff --git a/tests/builders/fixtures/ansible-playbook003.xml b/tests/builders/fixtures/ansible-playbook003.xml
index 31474925..8e15e776 100644
--- a/tests/builders/fixtures/ansible-playbook003.xml
+++ b/tests/builders/fixtures/ansible-playbook003.xml
@@ -11,6 +11,7 @@
<credentialsId/>
<vaultCredentialsId/>
<sudo>false</sudo>
+ <become>false</become>
<forks>5</forks>
<unbufferedOutput>true</unbufferedOutput>
<colorizedOutput>false</colorizedOutput>
diff --git a/tests/builders/fixtures/ansible-playbook004.xml b/tests/builders/fixtures/ansible-playbook004.xml
new file mode 100644
index 00000000..bc4018bf
--- /dev/null
+++ b/tests/builders/fixtures/ansible-playbook004.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <builders>
+ <org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder>
+ <playbook>path/to/playbook.yml</playbook>
+ <inventory class="org.jenkinsci.plugins.ansible.InventoryDoNotSpecify"/>
+ <limit/>
+ <tags/>
+ <skippedTags/>
+ <startAtTask/>
+ <credentialsId/>
+ <vaultCredentialsId/>
+ <sudo>false</sudo>
+ <become>true</become>
+ <becomeUser>cloud-user</becomeUser>
+ <forks>5</forks>
+ <unbufferedOutput>true</unbufferedOutput>
+ <colorizedOutput>false</colorizedOutput>
+ <hostKeyChecking>false</hostKeyChecking>
+ <additionalParameters/>
+ <copyCredentialsInWorkspace>false</copyCredentialsInWorkspace>
+ </org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder>
+ </builders>
+</project>
diff --git a/tests/builders/fixtures/ansible-playbook004.yaml b/tests/builders/fixtures/ansible-playbook004.yaml
new file mode 100644
index 00000000..528c839a
--- /dev/null
+++ b/tests/builders/fixtures/ansible-playbook004.yaml
@@ -0,0 +1,7 @@
+---
+builders:
+ - ansible-playbook:
+ playbook: "path/to/playbook.yml"
+ inventory-type: "do-not-specify"
+ become: "yes"
+ become-user: "cloud-user"