diff options
author | Thiago Miotto <thiagomiottoam@gmail.com> | 2019-02-21 17:26:03 -0300 |
---|---|---|
committer | Thiago Miotto <thiagomiottoam@gmail.com> | 2019-02-22 12:03:11 -0300 |
commit | 0f2c43fccf5e9b11332c3e69be5a419a281f9c85 (patch) | |
tree | b22ca6b611df70340eb480b7467a67027cfe8ed4 | |
parent | c59b5a5258c875d814b1ada82fd7bbaf7de97a26 (diff) | |
download | python-jenkins-job-builder-0f2c43fccf5e9b11332c3e69be5a419a281f9c85.tar.gz python-jenkins-job-builder-0f2c43fccf5e9b11332c3e69be5a419a281f9c85.tar.xz python-jenkins-job-builder-0f2c43fccf5e9b11332c3e69be5a419a281f9c85.zip |
Adds match-script and groovy-sandbox to Lockable Resources Plugin properties
Change-Id: I45db7b1a58f2dea4d46aba61aaf16383d30f1b50
6 files changed, 45 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/properties.py b/jenkins_jobs/modules/properties.py index 032b6b5f..2df88d0d 100644 --- a/jenkins_jobs/modules/properties.py +++ b/jenkins_jobs/modules/properties.py @@ -1103,6 +1103,10 @@ def lockable_resources(registry, xml_parent, data): :arg int number: Number of resources to request, empty value or 0 means all. This is useful, if you have a pool of similar resources, from which you want one or more to be reserved. (default 0) + :arg str match-script: Groovy script to reserve resource based on its + properties. Leave empty to disable. (default None) + :arg bool groovy-sandbox: Execute the provided match-script in Groovy + sandbox. Leave empty to disable. (default False) Example: @@ -1117,6 +1121,10 @@ def lockable_resources(registry, xml_parent, data): .. literalinclude:: /../../tests/properties/fixtures/lockable_resources_full.yaml :language: yaml + + .. literalinclude:: + /../../tests/properties/fixtures/lockable_resources_groovy.yaml + :language: yaml """ lockable_resources = XML.SubElement( xml_parent, @@ -1131,6 +1139,14 @@ def lockable_resources(registry, xml_parent, data): ] helpers.convert_mapping_to_xml( lockable_resources, data, mapping, fail_required=True) + secure_groovy_script = XML.SubElement(lockable_resources, + 'resourceMatchScript') + mapping = [ + ('match-script', 'script', None), + ('groovy-sandbox', 'sandbox', False), + ] + helpers.convert_mapping_to_xml(secure_groovy_script, data, mapping, + fail_required=False) def docker_container(registry, xml_parent, data): diff --git a/tests/properties/fixtures/lockable_resources_full.xml b/tests/properties/fixtures/lockable_resources_full.xml index 11760a98..726a93ae 100644 --- a/tests/properties/fixtures/lockable_resources_full.xml +++ b/tests/properties/fixtures/lockable_resources_full.xml @@ -6,6 +6,9 @@ <resourceNamesVar>RESOURCE_NAME</resourceNamesVar> <resourceNumber>10</resourceNumber> <labelName/> + <resourceMatchScript> + <sandbox>false</sandbox> + </resourceMatchScript> </org.jenkins.plugins.lockableresources.RequiredResourcesProperty> </properties> </project> diff --git a/tests/properties/fixtures/lockable_resources_groovy.xml b/tests/properties/fixtures/lockable_resources_groovy.xml new file mode 100644 index 00000000..71c41004 --- /dev/null +++ b/tests/properties/fixtures/lockable_resources_groovy.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <properties> + <org.jenkins.plugins.lockableresources.RequiredResourcesProperty> + <resourceNames/> + <resourceNamesVar/> + <resourceNumber>0</resourceNumber> + <labelName/> + <resourceMatchScript> + <script>resourceName == MY_VAR</script> + <sandbox>true</sandbox> + </resourceMatchScript> + </org.jenkins.plugins.lockableresources.RequiredResourcesProperty> + </properties> +</project> diff --git a/tests/properties/fixtures/lockable_resources_groovy.yaml b/tests/properties/fixtures/lockable_resources_groovy.yaml new file mode 100644 index 00000000..ceec1e49 --- /dev/null +++ b/tests/properties/fixtures/lockable_resources_groovy.yaml @@ -0,0 +1,5 @@ +--- +properties: + - lockable-resources: + match-script: "resourceName == MY_VAR" + groovy-sandbox: true diff --git a/tests/properties/fixtures/lockable_resources_label.xml b/tests/properties/fixtures/lockable_resources_label.xml index 903e7321..f833c7cb 100644 --- a/tests/properties/fixtures/lockable_resources_label.xml +++ b/tests/properties/fixtures/lockable_resources_label.xml @@ -6,6 +6,9 @@ <resourceNamesVar/> <resourceNumber>0</resourceNumber> <labelName>pool-1</labelName> + <resourceMatchScript> + <sandbox>false</sandbox> + </resourceMatchScript> </org.jenkins.plugins.lockableresources.RequiredResourcesProperty> </properties> </project> diff --git a/tests/properties/fixtures/lockable_resources_minimal.xml b/tests/properties/fixtures/lockable_resources_minimal.xml index df64ff58..ed8e2d41 100644 --- a/tests/properties/fixtures/lockable_resources_minimal.xml +++ b/tests/properties/fixtures/lockable_resources_minimal.xml @@ -6,6 +6,9 @@ <resourceNamesVar/> <resourceNumber>0</resourceNumber> <labelName/> + <resourceMatchScript> + <sandbox>false</sandbox> + </resourceMatchScript> </org.jenkins.plugins.lockableresources.RequiredResourcesProperty> </properties> </project> |