990 Commits

Author SHA1 Message Date
Jimmy Berry
52eb890d76 osclib/request_splitter: provide stageable option and make default True.
Without this, the relative rarer types of requests seen in projects with
staging and handled by list command will be included in staging proposal.
However, since they are not stageable the select operation will fail. This
change ensures that a filter is always present when stageable is True to
exclude non-stableable requests. The list command sets stageable to false
in order to list out the non-stageable requests of interest.

This was not observed in openSUSE since the main non-stageable request was
change_devel and that was exluded in StrategyNone. That filter could be
replaced with the stageable filter, but having an always on filter seems to
make more sense since generally operating in one of two modes.
2018-11-01 09:21:28 -05:00
Jimmy Berry
0d9cde5a90
Merge pull request #1756 from jberry-suse/repo_checker-x86_64-published-dependent-on-i586
osclib/core: repository_published() make x86_64 dependent on i586.
2018-10-31 15:13:12 -05:00
Jimmy Berry
6ad58c8ceb osclib/core: repository_published() make x86_64 dependent on i586. 2018-10-30 15:09:17 -05:00
Jimmy Berry
fa84030142 osclib/select: only check filter-from logic if argument was passed. 2018-10-29 16:00:09 -05:00
Jimmy Berry
5558473999
Merge pull request #1748 from jberry-suse/repo_checker-arch-filter-state-queries
repo_checker: filter repository state and published checks by relevant architectures.
2018-10-25 13:44:10 -05:00
Jimmy Berry
83688cf0ed osclib/core: provide archs filter for repository state and published queries. 2018-10-24 17:50:19 -05:00
Jimmy Berry
4c8ade1a93 flake8: utilize raw strings to avoid invalid escape character warnings. 2018-10-24 16:34:16 -05:00
Stephan Kulow
14837b3657
Merge pull request #1738 from jberry-suse/staging-filter-from
osc-staging: select: replace --from with --filter-from.
2018-10-21 16:48:02 +02:00
Jimmy Berry
7d58952ad8
Merge pull request #1737 from jberry-suse/nonfree-config-staging-workflow
repo_checker: utilize 'staging' config option for instantiating StagingAPI (and related)
2018-10-19 09:43:23 -05:00
b184670d7c
Merge pull request #1736 from jberry-suse/nonfree-config
osclib/conf: include NonFree subproject in openSUSE patterns.
2018-10-19 16:59:06 +08:00
Jimmy Berry
ef9ff661bb osc-staging: select: replace --from with --filter-from.
--from no longer serves a purpose since requests should never live in
more than one staging (apparent from linking).
2018-10-18 17:24:59 -05:00
Jimmy Berry
c74e40ba70 osclib/cycle: remove need for StagingApi instance in favor of apiurl. 2018-10-18 16:20:30 -05:00
Jimmy Berry
35594e5f05 osclib/conf: include NonFree subproject in openSUSE patterns.
Intentionally left outside of <project> group so that the NonFree
subproject still uses the main Staging subproject.
2018-10-18 15:55:41 -05:00
Jimmy Berry
8ec1e1777b osclib/conf: remove Ports subprojects as they no longer exist. 2018-10-18 15:54:20 -05:00
Stephan Kulow
ff84b79171 We need the images repo published to have a status check
We can't generally assume ISOs can be fetched from backend (we can't
have this on IBS), so publish it - and disable the actual publishing
on the staging backend of OBS
2018-10-12 13:00:18 +02:00
Stephan Kulow
e6bf5ccb7b Do no longer CC submitters in request comments
Submitters complain more and more about the spam they're getting from
staging projects - and we rather leave that weapon for actual feedback.

One especially annoying case is if a package is added to one staging project
and then later moved to another, the submitter will receive notifications
of all kind of bots and actions for both staging projects.
2018-10-04 09:52:49 +02:00
Stephan Kulow
c4fa49aef2 Refactor conditional_PUT as core function
Introduce source_file_ensure in osclib.core following review in #1717
2018-10-03 07:36:42 +02:00
Stephan Kulow
4539190af7 Optimize repository_state
The _result view checks way more things than we need, so just iterate
through the architectures of a repository and check the binaryversions
per arch. And combine the sha1sums to one sha1 per repository
2018-09-28 08:05:15 +02:00
Jimmy Berry
2deda1a5f1
Merge pull request #1710 from jberry-suse/osclib-core-repository-state
osclib/core: repository_state(): rework to utilize binarylist view.
2018-09-27 08:24:24 -05:00
Jimmy Berry
ea94191d21
Merge pull request #1688 from jberry-suse/kubernetes
[WIP] dist/kubernetes: provide basic ksonnet setup for heroes cluster including check-source and repo-checker modules
2018-09-26 17:27:55 -05:00
Jimmy Berry
73edfb8121 osclib/core: repository_state(): rework to utilize binarylist view.
For whatever reason the state hash only includes the overall publish states
and not the binaries within the repository. As such, rebuilding state
before a  rebuild and after may be the same.
2018-09-26 17:11:45 -05:00
Jimmy Berry
1fc5232c5e osclib/core: project_pseudometa_file_ensure(): correct comparison logic.
Previously, ends up comparing the wrong package, but saving to the correct
one. This ends up with extra blank commits. :(
2018-09-17 17:25:00 -05:00
Jimmy Berry
d74c1c69ff osclib/cache_manager: rework base directory handling.
Ensure the returned directory is always created and while continuing to
handle test mode.
2018-09-13 20:26:08 -05:00
Jimmy Berry
3b8ae3174c osclib/cache: provide mechanism to init multiple times.
Useful for staging plugin to cache the remote config before StagingAPI
is initialized.
2018-09-04 15:19:02 -05:00
Jimmy Berry
c47bb4c902 Utilize CacheManager for all existing caches. 2018-09-04 15:19:02 -05:00
Jimmy Berry
27cba7e26c osclib/cache_manager: provide general cache manager for all tools. 2018-09-04 15:18:55 -05:00
Jimmy Berry
f49b8d1149 osclib/common: provide project name and version constants.
Not specific to staging plugin, but previously only place to provide
version.
2018-09-04 15:04:33 -05:00
Jimmy Berry
6069245350 Remove SUSE copyright, warranty, and license headers.
Distinct copyrights were left as I do not wish to track down commit
history to ensure it properly documents the copyright holders. Also left
non-GPLv2 licenses and left bs_copy untouched as a mirror from OBS.

Already have a mix of with and without headers and even OBS does not place
on majority of files. If SUSE lawyers have an issue it will come up in
legal review for Factory.
2018-08-23 19:18:06 -05:00
Jimmy Berry
ec3c1d1b6e
Merge pull request #1668 from jberry-suse/repo_checker-project-skip
repo_checker: provide repo_checker-project-skip option (and utilize for OBS SLE projects)
2018-08-23 08:00:05 -05:00
Jimmy Berry
dbfafe8e85 osclib/conf: utilize repo_checker-project-skip for OBS SLE projects. 2018-08-23 00:13:30 -05:00
Jimmy Berry
cdef5bf129 repo_checker: change package comment default to be direct instead of devel.
Since the tool has been expanded to work on any repository, there are more
repositories that would want direct comments than devel. Set the value
to be devel for the openSUSE products which are the places where that is
desirable.
2018-08-22 21:43:47 -05:00
Jimmy Berry
a8cfd74f1f osclib/core: repository_path_expand(): skip adding duplicate path. 2018-08-21 21:37:48 -05:00
Jimmy Berry
af0d74a2df StagingAPI: drop inferior expanded_repos() implementation for osclib.core. 2018-08-21 20:49:31 -05:00
Jimmy Berry
a57fe7ba4e repo_checker: complete rework to handle arbitrary repos and maintenance.
The rework includes a variety of changes:

- multiple actions per request supported
- automatically detecting "main" repo (useful for devel/home projects)
- full layered repository path state and published taken into account
- arbitrary repository name (ie. not just standard) supported
- intermediate results (used for staging) no longer accept (even if no
  problems detected) until all layers are published
- no longer tied to staging process, but still supports staging workflow
- robust handling of repository state changes during review cycle
- multiple repositories supported for project_only output (ie. file name)
- project_only run supports any OBS project instead of only products
- maintenance_release requests supported with alternate staging approach
2018-08-21 20:49:26 -05:00
Jimmy Berry
341301fd0d osclib/util: provide sha1_short() adapted from repo_checker. 2018-08-21 20:47:37 -05:00
Jimmy Berry
7cb40bbe21 osclib/core: provide project_meta_revision() adapted from repo_checker. 2018-08-21 20:47:37 -05:00
Jimmy Berry
9f89eaad04 osclib/core: provide repository state and published functions. 2018-08-21 20:47:37 -05:00
Jimmy Berry
6e28fc4ec8 osclib/core: provide repository_path_search(). 2018-08-21 20:47:37 -05:00
Jimmy Berry
37540add5f osclib/core: provide repository_path_expand() adapted from StagingAPI. 2018-08-21 20:47:37 -05:00
Jimmy Berry
b6ab577a7f osclib/core: target_archs(): expose repository argument. 2018-08-21 20:47:37 -05:00
Jimmy Berry
6f9a81ff73 osclib/conf: drop main-repo default for all projects. 2018-08-21 20:47:37 -05:00
Jimmy Berry
6d60708b59 osclib/core: source_file_save(): always include host in message. 2018-08-17 23:19:28 -05:00
Jimmy Berry
536e17cb79 osclib/stagingapi: rename dashboard_content_* methods to pseudometa_file_*.
No need to be confusing and use the deprecated dashboard name.
2018-08-17 23:19:24 -05:00
Jimmy Berry
5e6df089a6 osclib/stagingapi: drop {load,save}_file_content() methods.
Since the implementations have been made generic and dropped to osclib.core
there is not point in having wrappers in StagingAPI with the same args.
2018-08-17 22:15:58 -05:00
Jimmy Berry
26884da458 osclib/core: provide project_pseudometa_*() functions.
These methods provide for a generic place to store meta data related to
a project. For the time being, keep the original :Staging/dashboard
location for openSUSE products.
2018-08-17 22:11:28 -05:00
Jimmy Berry
89ab151a59 osclib/core: provide source_file_save() adapted from StagingAPI. 2018-08-17 22:07:14 -05:00
Jimmy Berry
c11f78eb83
Merge pull request #1651 from jberry-suse/conf-default-drop-staging
osclib/conf: remove staging default for generic projects.
2018-08-17 11:20:13 -05:00
Jimmy Berry
f0fadd6a05
Merge pull request #1650 from jberry-suse/conf-exclude-sub-projects
osclib/conf: exclude sub-projects from matching project patterns (and Leap:N:Update defaults)
2018-08-17 10:53:24 -05:00
Jimmy Berry
5b5d917074 osclib/conf: provide cached get() method to supersede ReviewBot cache.
Given the slow migration of everything to the shared project config in
tools that change project contexts multiple times a consistent way of
accessing the config without forcing remote calls is needed.
2018-08-17 10:16:43 -05:00
Jimmy Berry
55116d31b5
Merge pull request #1648 from jberry-suse/config-decouple-and-require
osclib/conf: decouple from StagingAPI and always fetch remote config.
2018-08-17 10:02:37 -05:00