# 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)