206 lines
8.0 KiB
Python
206 lines
8.0 KiB
Python
# Copyright 2015 Openstack Foundation
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import xml.etree.ElementTree as XML
|
|
import jenkins_jobs.modules.helpers as helpers
|
|
|
|
|
|
def build_duration(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.BuildDurationFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("build-duration-type", "buildCountTypeString", "Latest"),
|
|
("amount-type", "amountTypeString", "Hours"),
|
|
("amount", "amount", "0"),
|
|
("less-than", "lessThan", True),
|
|
("build-duration-minutes", "buildDurationMinutes", "0"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def build_status(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.BuildStatusFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("never-built", "neverBuilt", False),
|
|
("building", "building", False),
|
|
("in-build-queue", "inBuildQueue", False),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def build_trend(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.BuildTrendFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("build-trend-type", "buildCountTypeString", "Latest"),
|
|
("amount-type", "amountTypeString", "Hours"),
|
|
("amount", "amount", "0"),
|
|
("status", "statusTypeString", "Completed"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def fallback(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.AddRemoveFallbackFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("fallback-type", "fallbackTypeString", "REMOVE_ALL_IF_ALL_INCLUDED"),
|
|
("fallback-type", "fallbackType", "REMOVE_ALL_IF_ALL_INCLUDED"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def job_status(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.JobStatusFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("unstable", "unstable", False),
|
|
("failed", "failed", False),
|
|
("aborted", "aborted", False),
|
|
("disabled", "disabled", False),
|
|
("stable", "stable", False),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def job_type(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.JobTypeFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("job-type", "jobType", "hudson.model.FreeStyleProject"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def most_recent(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.MostRecentJobsFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("max-to-include", "maxToInclude", "0"),
|
|
("check-start-time", "checkStartTime", False),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def other_views(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.OtherViewsFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("view-name", "otherViewName", "<select a view other than this one>"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def parameter(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.ParameterFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("name", "nameRegex", ""),
|
|
("value", "valueRegex", ""),
|
|
("description", "descriptionRegex", ""),
|
|
("use-default", "useDefaultValue", False),
|
|
("match-builds-in-progress", "matchBuildsInProgress", False),
|
|
("match-all-builds", "matchAllBuilds", False),
|
|
("max-builds-to-match", "maxBuildsToMatch", 0),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def scm(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.ScmTypeFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("scm-type", "scmType", "hudson.scm.NullSCM"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def secured_job(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.SecuredJobsFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [("match-type", "includeExcludeTypeString", "includeMatched")]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def regex_job(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.RegExJobFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("regex-name", "valueTypeString", ""),
|
|
("regex", "regex", ""),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def unclassified(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.UnclassifiedJobsFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [("match-type", "includeExcludeTypeString", "includeMatched")]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def upstream_downstream(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.UpstreamDownstreamJobsFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("include-upstream", "includeUpstream", False),
|
|
("include-downstream", "includeDownstream", False),
|
|
("recursive", "recursive", False),
|
|
("exclude-originals", "excludeOriginals", False),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def user_permissions(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.SecurityFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("configure", "configure", False),
|
|
("build", "build", False),
|
|
("workspace", "workspace", False),
|
|
("permission-check", "permissionCheckType", "MustMatchAll"),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|
|
|
|
|
|
def user_relevence(xml_parent, data):
|
|
xml = XML.SubElement(xml_parent, "hudson.views.UserRelevanceFilter")
|
|
xml.set("plugin", "view-job-filters")
|
|
mapping = [
|
|
("match-type", "includeExcludeTypeString", "includeMatched"),
|
|
("build-count", "buildCountTypeString", "AtLeastOne"),
|
|
("amount-type", "amountTypeString", "Hours"),
|
|
("amount", "amount", "0"),
|
|
("match-user-id", "matchUserId", False),
|
|
("match-user-fullname", "matchUserFullName", False),
|
|
("ignore-case", "ignoreCase", False),
|
|
("ignore-whitespace", "ignoreWhitespace", False),
|
|
("ignore-non-alphaNumeric", "ignoreNonAlphaNumeric", False),
|
|
("match-builder", "matchBuilder", False),
|
|
("match-email", "matchEmail", False),
|
|
("match-scm-changes", "matchScmChanges", False),
|
|
]
|
|
helpers.convert_mapping_to_xml(xml, data, mapping, fail_required=True)
|