diff options
author | Zuul <zuul@review.opendev.org> | 2019-08-15 18:46:14 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-08-15 18:46:14 +0000 |
commit | 1ef4a6ecc563e081defb9834ccc678a05a169f97 (patch) | |
tree | 4e829b7dd4a5791a041febad35f1d3263a2f639e | |
parent | cbc6819978f5b33e1e8cdd08d9322e3a5d08c376 (diff) | |
parent | 314d896b835081d360747dccfde8ad58f75b9766 (diff) | |
download | python-jenkins-job-builder-1ef4a6ecc563e081defb9834ccc678a05a169f97.tar.gz python-jenkins-job-builder-1ef4a6ecc563e081defb9834ccc678a05a169f97.tar.xz python-jenkins-job-builder-1ef4a6ecc563e081defb9834ccc678a05a169f97.zip |
Merge "Added missing 'filters' parameters for rabbitmq trigger plugin"
-rw-r--r-- | jenkins_jobs/modules/triggers.py | 27 | ||||
-rw-r--r-- | tests/triggers/fixtures/rabbitmq-filters.xml | 19 | ||||
-rw-r--r-- | tests/triggers/fixtures/rabbitmq-filters.yaml | 8 |
3 files changed, 52 insertions, 2 deletions
diff --git a/jenkins_jobs/modules/triggers.py b/jenkins_jobs/modules/triggers.py index b37d9c64..fcd93390 100644 --- a/jenkins_jobs/modules/triggers.py +++ b/jenkins_jobs/modules/triggers.py @@ -1922,17 +1922,40 @@ def rabbitmq(registry, xml_parent, data): <RabbitMQ+Build+Trigger+Plugin>`. :arg str token: the build token expected in the message queue (required) + :arg list filters: list of filters to apply (optional) + + :Filter: + * **field** (`str`) - Some field in message (required) + * **value** (`str`) - value of specified field (required) Example: .. literalinclude:: /../../tests/triggers/fixtures/rabbitmq.yaml :language: yaml + + Example with filters: + + .. literalinclude:: /../../tests/triggers/fixtures/rabbitmq-filters.yaml + :language: yaml """ + rabbitmq_prefix = 'org.jenkinsci.plugins.rabbitmqbuildtrigger.' rabbitmq = XML.SubElement( xml_parent, - 'org.jenkinsci.plugins.rabbitmqbuildtrigger.' - 'RemoteBuildTrigger') + rabbitmq_prefix + 'RemoteBuildTrigger') + filters = data.get('filters', []) + filter_mapping = [ + ('field', 'field', None), + ('value', 'value', None), + ] + if filters: + filters_tag = XML.SubElement(rabbitmq, 'filters') + for filter_data in filters: + filter_tag = XML.SubElement( + filters_tag, + rabbitmq_prefix + 'Filter') + helpers.convert_mapping_to_xml( + filter_tag, filter_data, filter_mapping, fail_required=True) mapping = [ ('', 'spec', ''), ('token', 'remoteBuildToken', None), diff --git a/tests/triggers/fixtures/rabbitmq-filters.xml b/tests/triggers/fixtures/rabbitmq-filters.xml new file mode 100644 index 00000000..db1c0bff --- /dev/null +++ b/tests/triggers/fixtures/rabbitmq-filters.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <triggers class="vector"> + <org.jenkinsci.plugins.rabbitmqbuildtrigger.RemoteBuildTrigger> + <filters> + <org.jenkinsci.plugins.rabbitmqbuildtrigger.Filter> + <field>field1</field> + <value>value1</value> + </org.jenkinsci.plugins.rabbitmqbuildtrigger.Filter> + <org.jenkinsci.plugins.rabbitmqbuildtrigger.Filter> + <field>field2</field> + <value>value2</value> + </org.jenkinsci.plugins.rabbitmqbuildtrigger.Filter> + </filters> + <spec/> + <remoteBuildToken>build_trigger_token</remoteBuildToken> + </org.jenkinsci.plugins.rabbitmqbuildtrigger.RemoteBuildTrigger> + </triggers> +</project> diff --git a/tests/triggers/fixtures/rabbitmq-filters.yaml b/tests/triggers/fixtures/rabbitmq-filters.yaml new file mode 100644 index 00000000..bfcdfa99 --- /dev/null +++ b/tests/triggers/fixtures/rabbitmq-filters.yaml @@ -0,0 +1,8 @@ +triggers: + - rabbitmq: + token: 'build_trigger_token' + filters: + - field: 'field1' + value: 'value1' + - field: 'field2' + value: 'value2' |