Add support for upstream downstream job filter

Add support for upstream downstream job filter for views.

Change-Id: I8869f804a6f85f8bee7720d785f03492c87ff959
Signed-off-by: Anil Belur <askb23@gmail.com>
This commit is contained in:
Anil Belur 2018-03-10 22:21:56 +10:00 committed by Sorin Sbarnea
parent 8811c514bd
commit ac345d0e66
5 changed files with 109 additions and 0 deletions

View File

@ -187,6 +187,17 @@ to the :ref:`view_list` definition.
* **permission-check**: ('str'): Match user permissions.
(default MustMatchAll)
* **upstream-downstream** (`dict`)
:upstream-downstream:
* **include-upstream** ('bool'): Jobs that match upstream.
(default False)
* **include-downstream** ('bool'): Jobs that match downstream.
(default False)
* **recursive** ('bool'): Jobs that are recursive.
(default False)
* **exclude-originals** ('bool'): Jobs that are originals.
(default False)
* **columns** (`list`): List of columns to be shown in view.
* **regex** (`str`): . Regular expression for selecting jobs
(optional)
@ -325,6 +336,21 @@ class List(jenkins_jobs.modules.base.Base):
convert_mapping_to_xml(js_xml, js_data, mapping,
fail_required=True)
if jobfilter == 'upstream-downstream':
ud_xml = XML.SubElement(job_filter_xml,
'hudson.views.UpstreamDownstreamJobsFilter')
ud_xml.set('plugin', 'view-job-filters')
ud_data = jobfilters.get('upstream-downstream')
mapping = [
('include-upstream', 'includeUpstream',
False),
('include-downstream', 'includeDownstream', False),
('recursive', 'recursive', False),
('exclude-originals', 'excludeOriginals', False),
]
convert_mapping_to_xml(ud_xml, ud_data, mapping,
fail_required=True)
if jobfilter == 'fallback':
fb_xml = XML.SubElement(job_filter_xml,
'hudson.views.AddRemoveFallbackFilter')

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<hudson.model.ListView>
<name>list-view-name01</name>
<description>Sample description</description>
<filterExecutors>true</filterExecutors>
<filterQueue>true</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
<jobNames>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
</jobNames>
<jobFilters>
<hudson.views.UpstreamDownstreamJobsFilter plugin="view-job-filters">
<includeUpstream>true</includeUpstream>
<includeDownstream>true</includeDownstream>
<recursive>true</recursive>
<excludeOriginals>true</excludeOriginals>
</hudson.views.UpstreamDownstreamJobsFilter>
</jobFilters>
<columns>
<hudson.views.StatusColumn/>
<hudson.views.WeatherColumn/>
<hudson.views.JobColumn/>
<hudson.views.LastSuccessColumn/>
<hudson.views.LastFailureColumn/>
<hudson.views.LastDurationColumn/>
<hudson.views.BuildButtonColumn/>
</columns>
<recurse>true</recurse>
<statusFilter>false</statusFilter>
</hudson.model.ListView>

View File

@ -0,0 +1,13 @@
name: list-view-name01
view-type: list
description: 'Sample description'
filter-executors: true
filter-queue: true
job-filters:
upstream-downstream:
include-downstream: true
include-upstream: true
recursive: true
exclude-originals: true
recurse: true
status-filter: false

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<hudson.model.ListView>
<name>list-view-name01</name>
<description>Sample description</description>
<filterExecutors>true</filterExecutors>
<filterQueue>true</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
<jobNames>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
</jobNames>
<jobFilters>
<hudson.views.UpstreamDownstreamJobsFilter plugin="view-job-filters">
<includeUpstream>false</includeUpstream>
<includeDownstream>false</includeDownstream>
<recursive>false</recursive>
<excludeOriginals>false</excludeOriginals>
</hudson.views.UpstreamDownstreamJobsFilter>
</jobFilters>
<columns>
<hudson.views.StatusColumn/>
<hudson.views.WeatherColumn/>
<hudson.views.JobColumn/>
<hudson.views.LastSuccessColumn/>
<hudson.views.LastFailureColumn/>
<hudson.views.LastDurationColumn/>
<hudson.views.BuildButtonColumn/>
</columns>
<recurse>true</recurse>
<statusFilter>false</statusFilter>
</hudson.model.ListView>

View File

@ -0,0 +1,10 @@
name: list-view-name01
view-type: list
description: 'Sample description'
filter-executors: true
filter-queue: true
job-filters:
upstream-downstream:
include-downstream: false
recurse: true
status-filter: false