Add support for build trend Job Filter plugin

Add support for build trend job filter plugin for views.

Change-Id: I157ae898383d40dab542feb7b0e752b51151f4d1
Signed-off-by: Anil Belur <askb23@gmail.com>
This commit is contained in:
Anil Belur 2018-02-27 19:17:34 +10:00
parent 9eb4431978
commit c6df0adc44
No known key found for this signature in database
GPG Key ID: 0FAA11C1B55BFA62
5 changed files with 114 additions and 0 deletions

View File

@ -50,6 +50,18 @@ to the :ref:`view_list` definition.
* **build-duration-minutes**: ('int'): Build
duration minutes. (default 0)
* **build-trend** (`dict`)
:build-trend: * **match-type** ('str'): Jobs that match a filter
to include. (default includeMatched)
* **build-trend-type** ('str'): Duration of the
build. (default Latest)
* **amount-type**: ('str'): Duration in hours,
days or builds. (default Hours)
* **amount**: ('int'): How far back to check.
(default 0)
* **status**: ('str'): Job status.
(default Completed)
* **columns** (`list`): List of columns to be shown in view.
* **regex** (`str`): . Regular expression for selecting jobs
(optional)
@ -154,6 +166,22 @@ class List(jenkins_jobs.modules.base.Base):
convert_mapping_to_xml(bd_xml, bd_data, mapping,
fail_required=True)
if jobfilter == 'build-trend':
bt_xml = XML.SubElement(job_filter_xml,
'hudson.views.BuildTrendFilter')
bt_xml.set('plugin', 'view-job-filters')
bt_data = jobfilters.get('build-trend')
mapping = [
('match-type', 'includeExcludeTypeString',
'includeMatched'),
('build-trend-type', 'buildCountTypeString', 'Latest'),
('amount-type', 'amountTypeString', 'Hours'),
('amount', 'amount', '0'),
('status', 'statusTypeString', 'Completed'),
]
convert_mapping_to_xml(bt_xml, bt_data, mapping,
fail_required=True)
c_xml = XML.SubElement(root, 'columns')
columns = data.get('columns', DEFAULT_COLUMNS)

View File

@ -0,0 +1,31 @@
<?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.BuildTrendFilter plugin="view-job-filters">
<includeExcludeTypeString>includeMatched</includeExcludeTypeString>
<buildCountTypeString>Latest</buildCountTypeString>
<amountTypeString>Hours</amountTypeString>
<amount>7.0</amount>
<statusTypeString>Completed</statusTypeString>
</hudson.views.BuildTrendFilter>
</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,14 @@
name: list-view-name01
view-type: list
description: 'Sample description'
filter-executors: true
filter-queue: true
job-filters:
build-trend:
match-type: includeMatched
build-count-type: Latest
amount-type: Hours
amount: 7.0
status: Completed
recurse: true
status-filter: false

View File

@ -0,0 +1,31 @@
<?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.BuildTrendFilter plugin="view-job-filters">
<includeExcludeTypeString>includeMatched</includeExcludeTypeString>
<buildCountTypeString>Latest</buildCountTypeString>
<amountTypeString>Hours</amountTypeString>
<amount>0</amount>
<statusTypeString>Completed</statusTypeString>
</hudson.views.BuildTrendFilter>
</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:
build-trend:
match-type: includeMatched
recurse: true
status-filter: false