From 00f64f2e20fbe6596ebffec07e7cd9d2c601cb95 Mon Sep 17 00:00:00 2001 From: Anil Belur Date: Fri, 2 Mar 2018 12:45:41 +1000 Subject: [PATCH] Add support for job status job filter Add support for job status job filter for views. Change-Id: Iaeace8d2f4a150ab2497f25371f18b9b62617713 Signed-off-by: Anil Belur --- jenkins_jobs/modules/view_list.py | 31 ++++++++++++++++++ .../fixtures/view_list_job_status_full.xml | 32 +++++++++++++++++++ .../fixtures/view_list_job_status_full.yaml | 15 +++++++++ .../fixtures/view_list_job_status_min.xml | 32 +++++++++++++++++++ .../fixtures/view_list_job_status_min.yaml | 10 ++++++ 5 files changed, 120 insertions(+) create mode 100644 tests/views/fixtures/view_list_job_status_full.xml create mode 100644 tests/views/fixtures/view_list_job_status_full.yaml create mode 100644 tests/views/fixtures/view_list_job_status_min.xml create mode 100644 tests/views/fixtures/view_list_job_status_min.yaml diff --git a/jenkins_jobs/modules/view_list.py b/jenkins_jobs/modules/view_list.py index c02591072..36e28a62d 100644 --- a/jenkins_jobs/modules/view_list.py +++ b/jenkins_jobs/modules/view_list.py @@ -62,6 +62,20 @@ to the :ref:`view_list` definition. * **status**: ('str'): Job status. (default Completed) + * **job-status** (`dict`) + :job-status: * **match-type** ('str'): Jobs that match a filter + to include. (default includeMatched) + * **unstable** ('bool'): Jobs with status + unstable. (default False) + * **failed** ('bool'): Jobs with status + failed. (default False) + * **aborted** ('bool'): Jobs with status + aborted. (default False) + * **disabled** ('bool'): Jobs with status + disabled. (default False) + * **stable** ('bool'): Jobs with status + stable. (default False) + * **columns** (`list`): List of columns to be shown in view. * **regex** (`str`): . Regular expression for selecting jobs (optional) @@ -182,6 +196,23 @@ class List(jenkins_jobs.modules.base.Base): convert_mapping_to_xml(bt_xml, bt_data, mapping, fail_required=True) + if jobfilter == 'job-status': + js_xml = XML.SubElement(job_filter_xml, + 'hudson.views.JobStatusFilter') + js_xml.set('plugin', 'view-job-filters') + js_data = jobfilters.get('job-status') + mapping = [ + ('match-type', 'includeExcludeTypeString', + 'includeMatched'), + ('unstable', 'unstable', False), + ('failed', 'failed', False), + ('aborted', 'aborted', False), + ('disabled', 'disabled', False), + ('stable', 'stable', False), + ] + convert_mapping_to_xml(js_xml, js_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_job_status_full.xml b/tests/views/fixtures/view_list_job_status_full.xml new file mode 100644 index 000000000..6c6b8427e --- /dev/null +++ b/tests/views/fixtures/view_list_job_status_full.xml @@ -0,0 +1,32 @@ + + + list-view-name01 + Sample description + true + true + + + + + + + includeMatched + true + true + true + true + true + + + + + + + + + + + + true + false + diff --git a/tests/views/fixtures/view_list_job_status_full.yaml b/tests/views/fixtures/view_list_job_status_full.yaml new file mode 100644 index 000000000..631406d74 --- /dev/null +++ b/tests/views/fixtures/view_list_job_status_full.yaml @@ -0,0 +1,15 @@ +name: list-view-name01 +view-type: list +description: 'Sample description' +filter-executors: true +filter-queue: true +job-filters: + job-status: + match-type: includeMatched + unstable: true + failed: true + aborted: true + disabled: true + stable: true +recurse: true +status-filter: false diff --git a/tests/views/fixtures/view_list_job_status_min.xml b/tests/views/fixtures/view_list_job_status_min.xml new file mode 100644 index 000000000..1e4789630 --- /dev/null +++ b/tests/views/fixtures/view_list_job_status_min.xml @@ -0,0 +1,32 @@ + + + list-view-name01 + Sample description + true + true + + + + + + + includeMatched + false + false + false + false + false + + + + + + + + + + + + true + false + diff --git a/tests/views/fixtures/view_list_job_status_min.yaml b/tests/views/fixtures/view_list_job_status_min.yaml new file mode 100644 index 000000000..cb61c4194 --- /dev/null +++ b/tests/views/fixtures/view_list_job_status_min.yaml @@ -0,0 +1,10 @@ +name: list-view-name01 +view-type: list +description: 'Sample description' +filter-executors: true +filter-queue: true +job-filters: + job-status: + match-type: includeMatched +recurse: true +status-filter: false