Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2018-10-04 19:02:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Thu Oct 4 19:02:49 2018 rev:134 rq:639934 version:20181004.97e58e1
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2018-09-24 13:11:57.989843257 +0200
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes
2018-10-04 19:02:56.655111885 +0200
@@ -1,0 +2,77 @@
+Thu Oct 04 09:36:17 UTC 2018 - [email protected]
+
+- Update to version 20181004.97e58e1:
+ * Do no longer CC submitters in request comments
+
+-------------------------------------------------------------------
+Thu Oct 04 08:03:59 UTC 2018 - [email protected]
+
+- Update to version 20181004.caee905:
+ * pkglistgen: Make sure we don't calculate non-existant architectures in
stagings
+
+-------------------------------------------------------------------
+Thu Oct 04 05:05:23 UTC 2018 - [email protected]
+
+- Update to version 20181004.5ba0b87:
+ * Refactor conditional_PUT as core function
+ * pkglistgen: only PUT new data if it changed
+
+-------------------------------------------------------------------
+Sat Sep 29 05:28:13 UTC 2018 - [email protected]
+
+- Update to version 20180929.39a3f83:
+ * repo_checker: re-instate staging build failure check after generic rework.
+ * pkglistgen: Only check repository check per arch
+ * Optimize repository_state
+
+-------------------------------------------------------------------
+Thu Sep 27 13:29:40 UTC 2018 - [email protected]
+
+- Update to version 20180927.2deda1a:
+ * osclib/core: repository_state(): rework to utilize binarylist view.
+
+-------------------------------------------------------------------
+Thu Sep 27 05:22:25 UTC 2018 - [email protected]
+
+- Update to version 20180927.ed9afea:
+ * Move creation of the Solver object out of loop
+
+-------------------------------------------------------------------
+Wed Sep 26 22:32:59 UTC 2018 - [email protected]
+
+- Update to version 20180926.ea94191:
+ * dist/kubernetes: provide README covering basic operation.
+ * dist/kubernetes: provide repo-checker module.
+ * dist/kubernetes: provide check-source module.
+ * dist/kubernetes: provide base review_bot component prototype.
+ * dist/kubernetes: provide basic ksonnet setup for heroes cluster.
+ * dist/kiwi: provide kiwi for building worker-obs container.
+ * k8s-secret: provide tool to generate kubernetes secrets containing oscrc.
+ * osclib/cache_manager: rework base directory handling.
+ * dist/ci/osc-init: allow output file location to be set via OSCRC env var.
+
+-------------------------------------------------------------------
+Wed Sep 26 08:07:41 UTC 2018 - [email protected]
+
+- Update to version 20180926.015677f:
+ * Don't take unsorted.group as reference for SP1 product changes
+
+-------------------------------------------------------------------
+Mon Sep 24 15:40:56 UTC 2018 - [email protected]
+
+- Update to version 20180924.1527c61:
+ * check_tags_in_requests: factory property is actually an array
+
+-------------------------------------------------------------------
+Fri Sep 21 12:36:48 UTC 2018 - [email protected]
+
+- Update to version 20180921.e409a67:
+ * pkglistgen: compare repository state to determine when to update solv.
+
+-------------------------------------------------------------------
+Thu Sep 20 14:21:42 UTC 2018 - [email protected]
+
+- Update to version 20180920.35ea0e1:
+ * systemd/metrics-access.timer: utilize compatible calendar format.
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20180918.38e2d3f.obscpio
New:
----
openSUSE-release-tools-20181004.97e58e1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.xnSUGO/_old 2018-10-04 19:03:02.035106216 +0200
+++ /var/tmp/diff_new_pack.xnSUGO/_new 2018-10-04 19:03:02.035106216 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20180918.38e2d3f
+Version: 20181004.97e58e1
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
@@ -403,6 +403,7 @@
%{_bindir}/osrt-fcc_submitter
%{_bindir}/osrt-findfileconflicts
%{_bindir}/osrt-issue-diff
+%{_bindir}/osrt-k8s-secret
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-obs_clone
%{_bindir}/osrt-openqa-maintenance
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.xnSUGO/_old 2018-10-04 19:03:02.079106170 +0200
+++ /var/tmp/diff_new_pack.xnSUGO/_new 2018-10-04 19:03:02.079106170 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">38e2d3fa1c5cb72c91686aa91e70d89650fee0f6</param>
+ <param
name="changesrevision">97e58e173287133d05b7ad4bcfc451ae679401d1</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20180918.38e2d3f.obscpio ->
openSUSE-release-tools-20181004.97e58e1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/check_tags_in_requests.py
new/openSUSE-release-tools-20181004.97e58e1/check_tags_in_requests.py
--- old/openSUSE-release-tools-20180918.38e2d3f/check_tags_in_requests.py
2018-09-18 23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/check_tags_in_requests.py
2018-10-04 11:29:32.000000000 +0200
@@ -141,7 +141,7 @@
bot = ReviewBot.CommandLineInterface.setup_checker(self)
if self.options.factory:
- bot.factory = self.options.factory
+ bot.factory = [ self.options.factory ]
return bot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/ci/osc-init
new/openSUSE-release-tools-20181004.97e58e1/dist/ci/osc-init
--- old/openSUSE-release-tools-20180918.38e2d3f/dist/ci/osc-init
2018-09-18 23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/dist/ci/osc-init
2018-10-04 11:29:32.000000000 +0200
@@ -1,5 +1,6 @@
#!/bin/bash
+: ${OSCRC:=~/.oscrc}
OBS_API="${OBS_API:-https://api.opensuse.org}"
if [ -z ${OBS_PASS+x} ] || [ -z "$OBS_PASS" ] ; then
OBS_API="$OBS_API/public"
@@ -8,7 +9,7 @@
echo "OBS_API=$OBS_API"
echo "OBS_USER=$OBS_USER"
-cat << eom > ~/.oscrc
+cat << eom > "$OSCRC"
[general]
apiurl = $OBS_API
[$OBS_API]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kiwi/osrt-worker-obs.kiwi
new/openSUSE-release-tools-20181004.97e58e1/dist/kiwi/osrt-worker-obs.kiwi
--- old/openSUSE-release-tools-20180918.38e2d3f/dist/kiwi/osrt-worker-obs.kiwi
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20181004.97e58e1/dist/kiwi/osrt-worker-obs.kiwi
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<image schemaversion="6.5" name="osrt-worker-obs">
+ <description type="system">
+ <author>openSUSE Release Team</author>
+ <contact>[email protected]</contact>
+ <specification>openSUSE Release Tools (OSRT) worker for OBS container
image</specification>
+ </description>
+ <preferences>
+ <type image="docker"
derived_from="obsrepositories:/opensuse/tumbleweed#current">
+<!-- <containerconfig name="osrt/worker-obs" tag="%%TAG%%"
additionaltags="latest"/> -->
+ <containerconfig name="osrt/worker-obs" tag="latest"/>
+ </type>
+ <version>1.0.0</version>
+ <packagemanager>zypper</packagemanager>
+ <rpm-check-signatures>false</rpm-check-signatures>
+ <rpm-excludedocs>true</rpm-excludedocs>
+ </preferences>
+ <repository>
+ <source path="obsrepositories:/"/>
+ </repository>
+ <packages type="image">
+ <package name="openSUSE-release-tools-check-source"/>
+ <package name="openSUSE-release-tools-leaper"/>
+ <package name="openSUSE-release-tools-pkglistgen"/>
+ <package name="openSUSE-release-tools-repo-checker"/>
+ <package name="openSUSE-release-tools-staging-bot"/>
+ </packages>
+</image>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/README.md
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/README.md
--- old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/README.md
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/README.md
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,35 @@
+# OSRT Kubernetes
+
+The commands assume running from `dist/kubernetes`.
+
+## namespace
+
+If desired create the `osrt` namespace and set as current context namespace.
+
+ kubectl create namespace osrt
+ kubectl config set-context $(kubectl config current-context)
--namespace=osrt
+
+## secrets
+
+Create secrets for each module, containing `.oscrc`, by enter OBS credentials.
+
+ ./k8s-secret.py check-source
+ ./k8s-secret.py repo-checker
+
+## modules
+
+Adjust modules in `app.yaml` or configure a new environment.
+
+ ks env add --context heroes newenv
+ ks env targets --module / --module check-source newenv
+
+## configure
+
+- See `environments/*/{globals,params}.libsonnet` for environment specific
configuration of components.
+- See `components/*` for more detailed changes (like the command executed).
+
+## apply
+
+ ks show heroes
+ ks diff heroes
+ ks apply heroes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/app.yaml
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/app.yaml
--- old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/app.yaml
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/app.yaml
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,14 @@
+apiVersion: 0.2.0
+environments:
+ heroes:
+ destination:
+ namespace: osrt
+ server: https://caasp-master.infra.opensuse.org:6443
+ k8sVersion: v1.8.0
+ path: heroes
+ targets:
+ - check-source
+ - repo-checker
+kind: ksonnet.io/app
+name: openSUSE-release-tools
+version: 0.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/check-source/params.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/check-source/params.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/check-source/params.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/check-source/params.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,13 @@
+{
+ global: {
+ cpu: "100m",
+ memory: "64Mi",
+ cache: "64Mi",
+ image: null,
+ prefix: "check-source",
+ },
+ components: {
+ review: {
+ },
+ },
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/check-source/review.jsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/check-source/review.jsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/check-source/review.jsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/check-source/review.jsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,12 @@
+local params = std.extVar("__ksonnet/params").components.review;
+local review_bot = import '../review_bot.libsonnet';
+
+[
+ review_bot.parts.cache.base(
+ params.prefix, params.cache),
+
+ review_bot.parts.cron.base(
+ params.prefix, "review",
+ "*/3 * * * *", params.cpu, params.memory, params.image,
+ "osrt-check_source --verbose --group factory-auto review"),
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/params.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/params.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/params.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/params.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,6 @@
+{
+ global: {
+ },
+ components: {
+ },
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/params.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/params.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/params.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/params.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,16 @@
+{
+ global: {
+ cpu: "1",
+ memory: "2.5Gi",
+ cache: "100Gi",
+ image: null,
+ prefix: "repo-checker",
+ },
+ components: {
+ review: {
+ },
+ project_only: {
+ projects: [],
+ }
+ },
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/project_only.jsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/project_only.jsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/project_only.jsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/project_only.jsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,10 @@
+local params = std.extVar("__ksonnet/params").components.project_only;
+local review_bot = import '../review_bot.libsonnet';
+
+[
+ review_bot.parts.cron.base(
+ params.prefix, "project-only-" + std.asciiLower(std.strReplace(project,
":", "-")),
+ "0 * * * *", params.cpu, params.memory, params.image,
+ "osrt-repo_checker --debug project_only '" + project + "'")
+ for project in params.projects
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/review.jsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/review.jsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/repo-checker/review.jsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/repo-checker/review.jsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,12 @@
+local params = std.extVar("__ksonnet/params").components.review;
+local review_bot = import '../review_bot.libsonnet';
+
+[
+ review_bot.parts.cache.base(
+ params.prefix, params.cache),
+
+ review_bot.parts.cron.base(
+ params.prefix, "review",
+ "*/5 * * * *", params.cpu, params.memory, params.image,
+ "osrt-repo_checker --debug review"),
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/review_bot.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/review_bot.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/components/review_bot.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/components/review_bot.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,77 @@
+{
+ parts:: {
+ cron:: {
+ base(prefix, name, schedule, cpu, memory, image, command):: {
+ apiVersion: "batch/v1beta1",
+ kind: "CronJob",
+ metadata: {
+ name: prefix + "-" + name,
+ },
+ spec: {
+ schedule: schedule,
+ concurrencyPolicy: "Forbid",
+ jobTemplate: { spec: { template: { spec: {
+ containers: [{
+ name: "worker",
+ image: image,
+ args: [
+ "/bin/bash", "-c",
+ "cp /secret/.oscrc /root && osc staging --version && du -h
~/.cache && " + command
+ ],
+ volumeMounts: [
+ {
+ name: "oscrc",
+ mountPath: "/secret",
+ readOnly: true,
+ },
+ {
+ name: "cache",
+ mountPath: "/root/.cache",
+ },
+ ],
+ resources: {
+ requests: {
+ cpu: cpu,
+ memory: memory,
+ }
+ }
+ }],
+ restartPolicy: "Never",
+ volumes: [
+ {
+ name: "oscrc",
+ secret: {
+ secretName: prefix + "-oscrc",
+ }
+ },
+ {
+ name: "cache",
+ persistentVolumeClaim: {
+ claimName: prefix + "-pvc"
+ }
+ }
+ ],
+ } } } }
+ }
+ }
+ },
+
+ cache:: {
+ base(prefix, capacity):: {
+ apiVersion: "v1",
+ kind: "PersistentVolumeClaim",
+ metadata: {
+ name: prefix + "-pvc",
+ },
+ spec: {
+ accessModes: ["ReadWriteMany"],
+ resources: {
+ requests: {
+ storage: capacity,
+ }
+ }
+ }
+ }
+ },
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/base.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/base.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/base.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/base.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,3 @@
+local components = std.extVar("__ksonnet/components");
+components + {
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/globals.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/globals.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/globals.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/globals.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,7 @@
+local image =
"registry.opensuse.org/home/jberry/container/container/osrt/worker-obs";
+local image_version = "latest";
+local image_full = image + ':' + image_version;
+
+{
+ image: image_full,
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/main.jsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/main.jsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/main.jsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/main.jsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,4 @@
+local base = import "base.libsonnet";
+
+base + {
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/params.libsonnet
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/params.libsonnet
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/kubernetes/environments/heroes/params.libsonnet
1970-01-01 01:00:00.000000000 +0100
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/kubernetes/environments/heroes/params.libsonnet
2018-10-04 11:29:32.000000000 +0200
@@ -0,0 +1,20 @@
+local params = std.extVar("__ksonnet/params");
+local globals = import "globals.libsonnet";
+local envParams = params + {
+ components+: {
+ "repo-checker.project_only"+: {
+ projects: [
+ "openSUSE:Factory",
+ "openSUSE:Leap:15.0:Update",
+ "openSUSE:Leap:15.1",
+ ],
+ },
+ },
+};
+
+{
+ components: {
+ [x]: envParams.components[x] + globals,
+ for x in std.objectFields(envParams.components)
+ },
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/dist/package/openSUSE-release-tools.spec
new/openSUSE-release-tools-20181004.97e58e1/dist/package/openSUSE-release-tools.spec
---
old/openSUSE-release-tools-20180918.38e2d3f/dist/package/openSUSE-release-tools.spec
2018-09-18 23:45:12.000000000 +0200
+++
new/openSUSE-release-tools-20181004.97e58e1/dist/package/openSUSE-release-tools.spec
2018-10-04 11:29:32.000000000 +0200
@@ -403,6 +403,7 @@
%{_bindir}/osrt-fcc_submitter
%{_bindir}/osrt-findfileconflicts
%{_bindir}/osrt-issue-diff
+%{_bindir}/osrt-k8s-secret
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-obs_clone
%{_bindir}/osrt-openqa-maintenance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/k8s-secret.py
new/openSUSE-release-tools-20181004.97e58e1/k8s-secret.py
--- old/openSUSE-release-tools-20180918.38e2d3f/k8s-secret.py 1970-01-01
01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20181004.97e58e1/k8s-secret.py 2018-10-04
11:29:32.000000000 +0200
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+
+from __future__ import print_function
+import argparse
+import os
+from osclib.cache_manager import CacheManager
+import subprocess
+import sys
+
+CACHE_DIR = CacheManager.directory('k8s-secret')
+SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
+
+
+def secret_create(cache_file):
+ environment = {'OSCRC': cache_file}
+
+ print('Username: ', end='')
+ environment['OBS_USER'] = raw_input()
+
+ print('Password: ', end='')
+ environment['OBS_PASS'] = raw_input()
+
+ osc_init = os.path.join(SCRIPT_PATH, 'dist/ci/osc-init')
+ subprocess.Popen([osc_init], env=environment).wait()
+
+def secret_apply(prefix, cache_file):
+ print(subprocess.check_output([
+ 'kubectl', 'create', 'secret', 'generic',
+ '{}-oscrc'.format(prefix), '--from-file={}={}'.format('.oscrc',
cache_file)]))
+
+def main(args):
+ cache_file = os.path.join(CACHE_DIR, args.prefix)
+ if not os.path.exists(cache_file) or args.create:
+ secret_create(cache_file)
+
+ with open(cache_file, 'r') as f:
+ print(f.read())
+
+ print('Apply secret for {} [y/n] (y): '.format(args.prefix), end='')
+ response = raw_input().lower()
+ if response != '' and response != 'y':
+ return
+
+ secret_apply(args.prefix, cache_file)
+
+ if args.delete:
+ os.remove(cache_file)
+
+if __name__ == '__main__':
+ description = 'Apply kubernetes secrets for OSRT tool osc configuration.'
+ parser = argparse.ArgumentParser(description=description)
+ parser.add_argument('--create', action='store_true', help='create
regardless of existing file')
+ parser.add_argument('--delete', action='store_true', help='delete cached
secret after application')
+ parser.add_argument('prefix', help='prefix for which to create secret (ex.
check-source, repo-checker)')
+ args = parser.parse_args()
+
+ sys.exit(main(args))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/osclib/cache_manager.py
new/openSUSE-release-tools-20181004.97e58e1/osclib/cache_manager.py
--- old/openSUSE-release-tools-20180918.38e2d3f/osclib/cache_manager.py
2018-09-18 23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/osclib/cache_manager.py
2018-10-04 11:29:32.000000000 +0200
@@ -12,21 +12,18 @@
# This manager ensures that the entire cache is pruned periodically to remove
# files that have not been accessed recently and avoid endless growth.
class CacheManager(object):
- DIRECTORY = save_cache_path(NAME)
PRUNE_FREQUENCY = 60 * 60 * 24 * 7
PRUNE_TTL = 60 * 60 * 24 * 30
pruned = False
+ test = False
@staticmethod
def directory(*args):
CacheManager.prune_all()
- return os.path.join(CacheManager.DIRECTORY, *args)
-
- @staticmethod
- def directory_test():
- if not CacheManager.DIRECTORY.endswith('.test'):
- CacheManager.DIRECTORY = os.path.join(CacheManager.DIRECTORY,
'.test')
+ if CacheManager.test:
+ return save_cache_path(NAME, '.test', *args)
+ return save_cache_path(NAME, *args)
@staticmethod
def prune_all():
@@ -34,7 +31,7 @@
return
CacheManager.pruned = True
- prune_lock = os.path.join(CacheManager.DIRECTORY, '.prune')
+ prune_lock = os.path.join(CacheManager.directory(), '.prune')
if not os.path.exists(prune_lock):
CacheManager.migrate()
elif time() - os.stat(prune_lock).st_mtime <
CacheManager.PRUNE_FREQUENCY:
@@ -48,7 +45,7 @@
accessed_prune = time() - CacheManager.PRUNE_TTL
files_pruned = 0
bytes_pruned = 0
- for directory, subdirectories, files in
os.walk(CacheManager.DIRECTORY):
+ for directory, subdirectories, files in
os.walk(CacheManager.directory()):
files_pruned_directory = 0
for filename in files:
path = os.path.join(directory, filename)
@@ -79,9 +76,9 @@
print('> migrating caches', file=sys.stderr)
# Move existing dir out of the way in order to nest.
- cache_moved = CacheManager.DIRECTORY + '-main'
+ cache_moved = CacheManager.directory() + '-main'
if not os.path.exists(cache_moved):
- os.rename(CacheManager.DIRECTORY, cache_moved)
+ os.rename(CacheManager.directory(), cache_moved)
# Detected need to migrate, but may have already passed -main.
CacheManager.migrate(False)
@@ -128,6 +125,6 @@
for source, destination in path_map.items():
source = os.path.join(cache_root, source.format(base))
if destination:
- destination = os.path.join(CacheManager.DIRECTORY,
destination)
+ destination = os.path.join(CacheManager.directory(),
destination)
yield source, destination
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/osclib/core.py
new/openSUSE-release-tools-20181004.97e58e1/osclib/core.py
--- old/openSUSE-release-tools-20180918.38e2d3f/osclib/core.py 2018-09-18
23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/osclib/core.py 2018-10-04
11:29:32.000000000 +0200
@@ -265,6 +265,10 @@
url = makeurl(apiurl, ['source', project, package, filename], {'comment':
comment})
http_PUT(url, data=content)
+def source_file_ensure(apiurl, project, package, filename, content,
comment=None):
+ if content != source_file_load(apiurl, project, package, filename):
+ source_file_save(apiurl, project, package, filename, content, comment)
+
def project_pseudometa_package(apiurl, project):
package = Config.get(apiurl, project).get('pseudometa_package', '00Meta')
if '/' in package:
@@ -382,9 +386,20 @@
return None
+def repository_arch_state(apiurl, project, repository, arch):
+ # just checking the mtimes of the repository's binaries
+ url = makeurl(apiurl, ['build', project, repository, arch, '_repository'])
+ from osclib.util import sha1_short
+ return sha1_short(http_GET(url).read())
+
def repository_state(apiurl, project, repository):
- return ET.fromstringlist(show_results_meta(
- apiurl, project, multibuild=True,
repository=[repository])).get('state')
+ # Unfortunately, the state hash reflects the published state and not the
+ # binaries published in repository. As such request binary list and hash.
+ combined_state = []
+ for arch in target_archs(apiurl, project, repository):
+ combined_state.append(repository_arch_state(apiurl, project,
repository, arch))
+ from osclib.util import sha1_short
+ return sha1_short(combined_state)
def repositories_states(apiurl, repository_pairs):
states = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/osclib/stagingapi.py
new/openSUSE-release-tools-20181004.97e58e1/osclib/stagingapi.py
--- old/openSUSE-release-tools-20180918.38e2d3f/osclib/stagingapi.py
2018-09-18 23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/osclib/stagingapi.py
2018-10-04 11:29:32.000000000 +0200
@@ -1555,7 +1555,7 @@
requests = meta['requests']
for req in requests:
- lines.append(' * {}request#{} for package {} submitted by
@{}'.format(
+ lines.append(' * {}request#{} for package {} submitted by
{}'.format(
req.get('prefix', ''), req['id'], req['package'],
req.get('author')))
msg = '\n'.join(lines)
msg = comment_api.add_marker(msg, bot, info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/pkglistgen.py
new/openSUSE-release-tools-20181004.97e58e1/pkglistgen.py
--- old/openSUSE-release-tools-20180918.38e2d3f/pkglistgen.py 2018-09-18
23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/pkglistgen.py 2018-10-04
11:29:32.000000000 +0200
@@ -16,12 +16,16 @@
from osc.core import http_GET, http_PUT
from osc.core import makeurl
from osc.core import Package
+from osc.core import HTTPError
from osc.core import show_results_meta
from osc.core import undelete_package
from osc import conf
from osclib.cache_manager import CacheManager
from osclib.conf import Config, str2bool
from osclib.core import repository_path_expand
+from osclib.core import repository_arch_state
+from osclib.core import source_file_ensure
+from osclib.core import target_archs
from osclib.stagingapi import StagingAPI
from osclib.util import project_list_family
from osclib.util import project_list_family_prior
@@ -43,6 +47,7 @@
import random
import shutil
import string
+import time
import ToolBase
@@ -134,7 +139,7 @@
# do not repeat packages
def ignore(self, without):
- for arch in ['*'] + self.architectures:
+ for arch in ['*'] + self.pkglist.filtered_architectures:
s = set(without.solved_packages[arch].keys())
s |= set(without.solved_packages['*'].keys())
for p in s:
@@ -153,14 +158,18 @@
""" base: list of base groups or None """
solved = dict()
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
solved[arch] = dict()
self.srcpkgs = dict()
self.recommends = dict()
self.suggested = dict()
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
pool = self.pkglist._prepare_pool(arch)
+ solver = pool.Solver()
+ if ignore_recommended:
+ solver.set_flag(solver.SOLVER_FLAG_IGNORE_RECOMMENDED, 1)
+
# pool.set_debuglevel(10)
suggested = []
@@ -199,10 +208,6 @@
else:
jobs += sel.jobs(solv.Job.SOLVER_INSTALL)
- solver = pool.Solver()
- if ignore_recommended:
- solver.set_flag(solver.SOLVER_FLAG_IGNORE_RECOMMENDED, 1)
-
problems = solver.solve(jobs)
if problems:
for problem in problems:
@@ -242,8 +247,11 @@
src = s.lookup_str(solv.SOLVABLE_SOURCENAME)
self.srcpkgs[src] = group + ':' + s.name
+ start = time.time()
for n, group in self.packages[arch]:
solve_one_package(n, group)
+ end = time.time()
+ logger.info('%s - solving took %f', self.name, end - start)
if include_suggested:
seen = set()
@@ -256,7 +264,7 @@
common = None
# compute common packages across all architectures
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
if common is None:
common = set(solved[arch].keys())
continue
@@ -267,7 +275,7 @@
# reduce arch specific set by common ones
solved['*'] = dict()
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
for p in common:
solved['*'][p] = solved[arch].pop(p)
@@ -278,7 +286,7 @@
if not overlap:
return
packages = set(self.solved_packages['*'])
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
packages.update(self.solved_packages[arch])
for m in modules:
# do not check with ourselves and only once for the rest
@@ -287,7 +295,7 @@
if self.name in m.conflicts or m.name in self.conflicts:
continue
mp = set(m.solved_packages['*'])
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
mp.update(m.solved_packages[arch])
if len(packages & mp):
overlap.comment += '\n overlapping between ' + self.name + '
and ' + m.name + "\n"
@@ -296,12 +304,13 @@
if m.solved_packages[arch].get(p, None):
overlap.comment += " # " + m.name + "." + arch +
': ' + m.solved_packages[arch][p] + "\n"
if self.solved_packages[arch].get(p, None):
- overlap.comment += " # " + self.name + "." + arch
+ ': ' + self.solved_packages[arch][p] + "\n"
+ overlap.comment += " # " + self.name + "." + \
+ arch + ': ' + self.solved_packages[arch][p] +
"\n"
overlap.comment += ' - ' + p + "\n"
overlap._add_to_packages(p)
def collect_devel_packages(self):
- for arch in self.architectures:
+ for arch in self.pkglist.filtered_architectures:
pool = self.pkglist._prepare_pool(arch)
sel = pool.Selection()
for s in pool.solvables_iter():
@@ -320,7 +329,7 @@
for p in pkgdict.keys():
already_present = False
for m in modules:
- for arch in ['*'] + self.architectures:
+ for arch in ['*'] + self.pkglist.filtered_architectures:
already_present = already_present or (p in
m.solved_packages[arch])
if already_present:
del pkgdict[p]
@@ -330,7 +339,7 @@
self._filter_already_selected(modules, self.suggested)
def toxml(self, arch, ignore_broken=False, comment=None):
- packages = self.solved_packages[arch]
+ packages = self.solved_packages.get(arch, dict())
name = self.name
if arch != '*':
@@ -384,7 +393,7 @@
# just list all packages in it as an array - to be output as one yml
def summary(self):
ret = set()
- for arch in ['*'] + self.architectures:
+ for arch in ['*'] + self.pkglist.filtered_architectures:
ret |= set(self.solved_packages[arch].keys())
return ret
@@ -392,7 +401,7 @@
pprint({'name': self.name, 'missing': self.missing, 'packages':
self.packages,
'solved': self.solved_packages, 'silents': self.silents})
return
- archs = ['*'] + self.architectures
+ archs = ['*'] + self.pkglist.filtered_architectures
for arch in archs:
x = self.toxml(arch)
print(ET.tostring(x, pretty_print=True))
@@ -511,7 +520,7 @@
def _check_supplements(self):
tocheck = set()
tocheck_locales = set()
- for arch in self.architectures:
+ for arch in self.filtered_architectures:
pool = self._prepare_pool(arch)
sel = pool.Selection()
for s in pool.solvables_iter():
@@ -595,7 +604,7 @@
unsorted.solved_packages = dict()
unsorted.solved_packages['*'] = dict()
- for arch in self.architectures:
+ for arch in self.filtered_architectures:
pool = self._prepare_pool(arch)
sel = pool.Selection()
archpacks = [s.name for s in pool.solvables_iter()]
@@ -627,14 +636,14 @@
if unsorted:
common = None
- for arch in self.architectures:
+ for arch in self.filtered_architectures:
if common is None:
common = set(unsorted.solved_packages[arch].keys())
continue
common &= set(unsorted.solved_packages[arch].keys())
for p in common:
unsorted.solved_packages['*'][p] = None
- for arch in self.architectures:
+ for arch in self.filtered_architectures:
del unsorted.solved_packages[arch][p]
with open(os.path.join(self.output_dir, 'unsorted.yml'), 'w') as fh:
@@ -642,7 +651,7 @@
for p in sorted(packages.keys()):
fh.write(" - ")
fh.write(p)
- if len(packages[p]) != len(self.architectures):
+ if len(packages[p]) != len(self.filtered_architectures):
fh.write(": [")
fh.write(','.join(sorted(packages[p])))
fh.write("]")
@@ -726,27 +735,41 @@
bs_mirrorfull = os.path.join(SCRIPT_PATH, 'bs_mirrorfull')
global_update = False
for project, repo in self.repos:
- for arch in self.tool.architectures:
+ for arch in opts.filtered_architectures:
# TODO: refactor to common function with repo_checker.py
d = os.path.join(CACHEDIR, project, repo, arch)
if not os.path.exists(d):
os.makedirs(d)
+ try:
+ # Fetch state before mirroring in-case it changes during
download.
+ state = repository_arch_state(self.tool.apiurl, project,
repo, arch)
+ except HTTPError:
+ continue
+
+ # Would be preferable to include hash in name, but cumbersome
to handle without
+ # reworking a fair bit since the state needs to be tracked.
+ solv_file = os.path.join(CACHEDIR,
'repo-{}-{}-{}.solv'.format(project, repo, arch))
+ solv_file_hash = '{}::{}'.format(solv_file, state)
+ if os.path.exists(solv_file) and
os.path.exists(solv_file_hash):
+ # Solve file exists and hash unchanged, skip updating solv.
+ logger.debug('skipping solv generation for {} due to
matching state {}'.format(
+ '/'.join([project, repo, arch]), state))
+ continue
+
+ # Either hash changed or new, so remove any old hash files.
+ self.unlink_list(None, glob.glob(solv_file + '::*'))
+ global_update = True
+
logger.debug('updating %s', d)
args = [bs_mirrorfull]
args.append('--nodebug')
args.append('{}/public/build/{}/{}/{}'.format(self.tool.apiurl, project, repo,
arch))
args.append(d)
p = subprocess.Popen(args, stdout=subprocess.PIPE)
- repo_update = False
for line in p.stdout:
logger.info(line.rstrip())
- global_update = True
- repo_update = True
- solv_file = os.path.join(CACHEDIR,
'repo-{}-{}-{}.solv'.format(project, repo, arch))
- if os.path.exists(solv_file) and not repo_update:
- continue
files = [os.path.join(d, f)
for f in os.listdir(d) if f.endswith('.rpm')]
fh = open(solv_file, 'w')
@@ -755,6 +778,10 @@
p.communicate('\0'.join(files))
p.wait()
fh.close()
+
+ # Create hash file now that solv creation is complete.
+ open(solv_file_hash, 'a').close()
+
return global_update
def update_merge(self, nonfree):
@@ -1062,6 +1089,7 @@
with open(os.path.join(self.tool.input_dir, opts.locales_from),
'r') as fh:
root = ET.parse(fh).getroot()
self.tool.locales |= set([lang.text for lang in
root.findall(".//linguas/language")])
+ self.tool.filtered_architectures = opts.filtered_architectures
modules = []
# the yml parser makes an array out of everything, so
@@ -1090,7 +1118,7 @@
ignores = [x.name for x in overlap.ignored]
self.tool.solve_module(overlap.name, [], ignores)
overlapped = set(overlap.solved_packages['*'])
- for arch in overlap.architectures:
+ for arch in self.tool.filtered_architectures:
overlapped |= set(overlap.solved_packages[arch])
for module in modules:
if module.name == 'overlap' or module in overlap.ignored:
@@ -1208,6 +1236,12 @@
product = target_config.get('pkglistgen-product', '000product')
release = target_config.get('pkglistgen-release',
'000release-packages')
+ opts.filtered_architectures = []
+ # make sure we only calculcate existant architectures
+ for arch in target_archs(api.apiurl, opts.project, main_repo):
+ if arch in self.options.architectures:
+ opts.filtered_architectures.append(arch)
+
url = api.makeurl(['source', opts.project])
packages = ET.parse(http_GET(url)).getroot()
if packages.find('entry[@name="{}"]'.format(product)) is None:
@@ -1349,12 +1383,18 @@
if api.item_exists(opts.project, '000product-summary'):
summary_str = "# Summary of packages in groups"
for group in sorted(summary.keys()):
+ # the unsorted group should appear filtered by
+ # unneeded.yml - so we need the content of unsorted.yml
+ # not unsorted.group (this grew a little unnaturally)
+ if group == 'unsorted':
+ continue
summary_str += "\n" + group + ":\n"
for package in sorted(summary[group]):
summary_str += " - " + package + "\n"
- url = api.makeurl(['source', opts.project, '000product-summary',
'summary.yml'])
- http_PUT(url, data=summary_str)
+ source_file_ensure(api.apiurl, opts.project, '000product-summary',
'summary.yml', summary_str, 'Updating summary.yml')
+ unsorted_yml = open(os.path.join(product_dir,
'unsorted.yml')).read()
+ source_file_ensure(api.apiurl, opts.project, '000product-summary',
'unsorted.yml', summary_str, 'Updating unsorted.yml')
def solv_cache_update(self, apiurl, cache_dir_solv, target_project,
family_last, family_include, opts):
"""Dump solv files (do_dump_solv) for all products in family."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/repo_checker.py
new/openSUSE-release-tools-20181004.97e58e1/repo_checker.py
--- old/openSUSE-release-tools-20180918.38e2d3f/repo_checker.py 2018-09-18
23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/repo_checker.py 2018-10-04
11:29:32.000000000 +0200
@@ -494,6 +494,21 @@
return repository
+ def staging_build_failure_check(self, api, staging):
+ # This check is only utilize to avoid the case of staging changes after
+ # a review succeeds and thus does not re-review after the changes
needed
+ # to resolve the build failure are performed. This is one of a variety
+ # of cases in which this can occur, but rather than fix real issue
+ # re-instating this to workaround a common case. (see #1712)
+
+ status = api.project_status(staging, True)
+ # Corrupted requests may reference non-existent projects and will
+ # thus return a None status which should be considered not ready.
+ if not status or (str(status['overall_state']) == 'failed' and
len(status['broken_packages']) > 0):
+ return False
+
+ return True
+
@memoize(ttl=60, session=True)
def request_repository_pairs(self, request, action):
if str2bool(Config.get(self.apiurl,
action.tgt_project).get('repo_checker-project-skip', 'False')):
@@ -511,11 +526,16 @@
repository_pairs = []
# Assumes maintenance_release target project has staging disabled.
if Config.get(self.apiurl, action.tgt_project).get('staging'):
- stage_info =
self.staging_api(action.tgt_project).packages_staged.get(action.tgt_package)
+ api = self.staging_api(action.tgt_project)
+ stage_info = api.packages_staged.get(action.tgt_package)
if not stage_info or str(stage_info['rq_id']) !=
str(request.reqid):
self.logger.info('{} not staged'.format(request.reqid))
return None
+ if not self.force and not self.staging_build_failure_check(api,
stage_info['prj']):
+ self.logger.info('{} not ready due to staging build
failure(s)'.format(request.reqid))
+ return None
+
# Staging setup is convoluted and thus the repository setup does
not
# contain a path to the target project. Instead the ports
repository
# is used to import the target prjconf. As such the staging group
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/systemd/osrt-metrics-access.timer
new/openSUSE-release-tools-20181004.97e58e1/systemd/osrt-metrics-access.timer
---
old/openSUSE-release-tools-20180918.38e2d3f/systemd/osrt-metrics-access.timer
2018-09-18 23:45:12.000000000 +0200
+++
new/openSUSE-release-tools-20181004.97e58e1/systemd/osrt-metrics-access.timer
2018-10-04 11:29:32.000000000 +0200
@@ -6,7 +6,9 @@
# Allow for log rotation to take place on download server.
# Skip Monday during which [email protected] are run as openSUSE:Factory
# takes 5 hours and uses up most of the RAM on machine.
-OnCalendar=Tue..Sun *-*-* 4:00:00
+# OnCalendar=Tue..Sun *-*-* 4:00:00
+# TODO Use the above once updated to Leap 15.0 with systemd that supports.
+OnCalendar=Tue,Wed,Thu,Fri,Sat,Sun *-*-* 04:00:00
Unit=osrt-metrics-access.service
[Install]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20180918.38e2d3f/tests/obs.py
new/openSUSE-release-tools-20181004.97e58e1/tests/obs.py
--- old/openSUSE-release-tools-20180918.38e2d3f/tests/obs.py 2018-09-18
23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/tests/obs.py 2018-10-04
11:29:32.000000000 +0200
@@ -115,7 +115,7 @@
"""Instance constructor."""
self.fixtures = fixtures
- CacheManager.directory_test()
+ CacheManager.test = True
Cache.init()
Cache.delete_all()
httpretty.enable()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180918.38e2d3f/tests/select_tests.py
new/openSUSE-release-tools-20181004.97e58e1/tests/select_tests.py
--- old/openSUSE-release-tools-20180918.38e2d3f/tests/select_tests.py
2018-09-18 23:45:12.000000000 +0200
+++ new/openSUSE-release-tools-20181004.97e58e1/tests/select_tests.py
2018-10-04 11:29:32.000000000 +0200
@@ -37,7 +37,7 @@
# Only one comment is added
self.assertEqual(len(first_select_comments), len(comments) + 1)
# With the right content
- self.assertTrue('request#123 for package gcc submitted by @Admin' in
first_select_comment['comment'])
+ self.assertTrue('request#123 for package gcc submitted by Admin' in
first_select_comment['comment'])
# Second select
self.assertEqual(True, SelectCommand(self.api,
staging_b).perform(['puppet']))
@@ -48,8 +48,8 @@
self.assertEqual(len(second_select_comments) - 1,
len(first_select_comments))
self.assertNotEqual(second_select_comment['comment'],
first_select_comment['comment'])
# The new comments contains new, but not old
- self.assertFalse('request#123 for package gcc submitted by @Admin' in
second_select_comment['comment'])
- self.assertTrue('added request#321 for package puppet submitted by
@Admin' in second_select_comment['comment'])
+ self.assertFalse('request#123 for package gcc submitted by Admin' in
second_select_comment['comment'])
+ self.assertTrue('added request#321 for package puppet submitted by
Admin' in second_select_comment['comment'])
def test_no_matches(self):
# search for requests
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.xnSUGO/_old 2018-10-04 19:03:02.847105360 +0200
+++ /var/tmp/diff_new_pack.xnSUGO/_new 2018-10-04 19:03:02.847105360 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20180918.38e2d3f
-mtime: 1537307112
-commit: 38e2d3fa1c5cb72c91686aa91e70d89650fee0f6
+version: 20181004.97e58e1
+mtime: 1538645372
+commit: 97e58e173287133d05b7ad4bcfc451ae679401d1