summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnil Belur <askb23@gmail.com>2018-03-11 13:17:15 +1000
committerSorin Sbarnea <ssbarnea@redhat.com>2018-04-19 09:37:35 +0100
commit1aa3f9895cef87aabaae0e29e0d07d89106485c5 (patch)
tree0022059eedcef286796ca53af9b5d42ae6be2b1c
parentac345d0e6635d2809b730e3e659f369e3571511b (diff)
downloadpython-jenkins-job-builder-1aa3f9895cef87aabaae0e29e0d07d89106485c5.tar.gz
python-jenkins-job-builder-1aa3f9895cef87aabaae0e29e0d07d89106485c5.tar.xz
python-jenkins-job-builder-1aa3f9895cef87aabaae0e29e0d07d89106485c5.zip
Add support for unclassified job filters
Add support for unclassified job filters for views. Change-Id: I64f0464857b4925cd5b5b9714b8ba1bb1f860244 Signed-off-by: Anil Belur <askb23@gmail.com>
-rw-r--r--jenkins_jobs/modules/view_list.py17
-rw-r--r--tests/views/fixtures/view_list_unclassified_filter_full.xml27
-rw-r--r--tests/views/fixtures/view_list_unclassified_filter_full.yaml10
3 files changed, 54 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/view_list.py b/jenkins_jobs/modules/view_list.py
index e9946f95..945fb31b 100644
--- a/jenkins_jobs/modules/view_list.py
+++ b/jenkins_jobs/modules/view_list.py
@@ -198,6 +198,11 @@ to the :ref:`view_list` definition.
* **exclude-originals** ('bool'): Jobs that are originals.
(default False)
+ * **unclassified** (`dict`)
+ :unclassified:
+ * **match-type** ('str'): Jobs that match a filter to include.
+ (default includeMatched)
+
* **columns** (`list`): List of columns to be shown in view.
* **regex** (`str`): . Regular expression for selecting jobs
(optional)
@@ -507,6 +512,18 @@ class List(jenkins_jobs.modules.base.Base):
convert_mapping_to_xml(up_xml, up_data, mapping,
fail_required=True)
+ if jobfilter == 'unclassified':
+ uc_xml = XML.SubElement(job_filter_xml,
+ 'hudson.views.UnclassifiedJobsFilter')
+ uc_xml.set('plugin', 'view-job-filters')
+ uc_data = jobfilters.get('unclassified')
+ mapping = [
+ ('match-type', 'includeExcludeTypeString',
+ 'includeMatched'),
+ ]
+ convert_mapping_to_xml(uc_xml, uc_data, mapping,
+ fail_required=True)
+
c_xml = XML.SubElement(root, 'columns')
columns = data.get('columns', DEFAULT_COLUMNS)
diff --git a/tests/views/fixtures/view_list_unclassified_filter_full.xml b/tests/views/fixtures/view_list_unclassified_filter_full.xml
new file mode 100644
index 00000000..2dbb3eb0
--- /dev/null
+++ b/tests/views/fixtures/view_list_unclassified_filter_full.xml
@@ -0,0 +1,27 @@
+<?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.UnclassifiedJobsFilter plugin="view-job-filters">
+ <includeExcludeTypeString>includeMatched</includeExcludeTypeString>
+ </hudson.views.UnclassifiedJobsFilter>
+ </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>
diff --git a/tests/views/fixtures/view_list_unclassified_filter_full.yaml b/tests/views/fixtures/view_list_unclassified_filter_full.yaml
new file mode 100644
index 00000000..492ad140
--- /dev/null
+++ b/tests/views/fixtures/view_list_unclassified_filter_full.yaml
@@ -0,0 +1,10 @@
+name: list-view-name01
+view-type: list
+description: 'Sample description'
+filter-executors: true
+filter-queue: true
+job-filters:
+ unclassified:
+ match-type: includeMatched
+recurse: true
+status-filter: false