981 Commits

Author SHA1 Message Date
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
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
Jimmy Berry
5b44ea188d osclib/conf: provide Leap:N:Update default settings. 2018-08-17 00:08:09 -05:00
Jimmy Berry
f6550bfe87 osclib/conf: remove staging default for generic projects.
The original case was to enable remote config, but in general and with
up-coming changes having the staging setting falsely set like this is not
ideal. Since the remote config is loaded via attribute this does not even
affect it anymore. The proper change is to make the "dashboard" container
configurable which is planned.
2018-08-17 00:03:59 -05:00
Jimmy Berry
77e27fae9e osclib/conf: exclude sub-projects from matching project patterns.
Otherwise, :Update projects match the primary product settings which
gives the wrong impression to tools as things like :Update:Staging do
not exist. Since :Update and other sub-projects are in a different phase
of development they should really have separate settings. :Ports however
does have stagings and in theory should act like parent product. If it
becomes desirable to split that can be done in the future.

Some policy settings related to ReviewBots likely are desirable to carry
over, but that can be resolved in follow-up as they are not currently used.
2018-08-16 23:50:23 -05:00
Jimmy Berry
0696a0fe6c osclib/stagingapi: utilize osclib.core.attribute_value_*() implementations.
Provides convenience aliases that require less arguments.
2018-08-16 22:01:46 -05:00
Jimmy Berry
760ddf39e6 osclib/conf: decouple from StagingAPI and always fetch remote config.
As the remote config is no longer optional for SLE and is utilized by
openSUSE to the point were it is dangerous not to load the remote config
it should be required. Currently only certain users call apply_remote()
while this will make it built-in during construction and thus makes the
usage consistent and no longer require StagingAPI.
2018-08-16 21:53:40 -05:00
Jimmy Berry
68c3150069 osclib/conf: utilize osclib.core.attribute_value_load() instead of StagingAPI. 2018-08-16 21:42:58 -05:00
Jimmy Berry
65be714632 osclib/conf: drop dashboard/config migration to attribute.
Should no longer be needed and provides one less dependency on StagingAPI
which will be removed from Config class.
2018-08-16 21:41:14 -05:00
Jimmy Berry
8bdf571154 osclib/core: provide attribute_value_(load|save) adapted from StagingAPI. 2018-08-16 21:38:11 -05:00
Jimmy Berry
9c0eb82f51 osclib/prio: support non-important priority. 2018-08-16 18:05:20 -05:00