Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2024-03-01 23:38:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Fri Mar 1 23:38:41 2024 rev:522 rq:1154000 version:20240223.f941f9d
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2024-02-14 23:20:05.199168562 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1770/openSUSE-release-tools.changes
2024-03-01 23:38:49.232434814 +0100
@@ -1,0 +2,44 @@
+Fri Feb 23 12:37:59 UTC 2024 - [email protected]
+
+- Update to version 20240223.f941f9d:
+ * Call rabbit-repoid.py for openSUSE:Slowroll
+
+-------------------------------------------------------------------
+Thu Feb 22 15:43:06 UTC 2024 - [email protected]
+
+- Update to version 20240222.1748b20:
+ * osclib/repochecks.py: Use libsolv for checking conflicts between packages
+ * findfileconflicts: Quote version and release in YAML output
+
+-------------------------------------------------------------------
+Thu Feb 22 13:43:26 UTC 2024 - [email protected]
+
+- Update to version 20240222.db4bd75:
+ * Introduce new openSUSE|SUSE.Legal group and move pipelines into them
+
+-------------------------------------------------------------------
+Wed Feb 21 10:27:20 UTC 2024 - [email protected]
+
+- Update to version 20240221.84b76ec:
+ * Fix mkdir permissions argument
+ * Add IPv4 and IPv6 handling in one file
+
+-------------------------------------------------------------------
+Tue Feb 20 08:47:19 UTC 2024 - [email protected]
+
+- Update to version 20240220.9919e02:
+ * Maintenance setup for Leap 15.6
+
+-------------------------------------------------------------------
+Thu Feb 15 10:07:18 UTC 2024 - [email protected]
+
+- Update to version 20240215.54075b0:
+ * Remove 15.4 and add 15.6 where missing
+
+-------------------------------------------------------------------
+Thu Feb 15 10:05:30 UTC 2024 - [email protected]
+
+- Update to version 20240215.9e5a7f9:
+ * ttm: Remove livecd size checks
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20240207.602b3d2.obscpio
New:
----
openSUSE-release-tools-20240223.f941f9d.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.XCLXsv/_old 2024-03-01 23:38:49.896458825 +0100
+++ /var/tmp/diff_new_pack.XCLXsv/_new 2024-03-01 23:38:49.896458825 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20240207.602b3d2
+Version: 20240223.f941f9d
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.XCLXsv/_old 2024-03-01 23:38:49.928459982 +0100
+++ /var/tmp/diff_new_pack.XCLXsv/_new 2024-03-01 23:38:49.932460127 +0100
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">602b3d2b1e47b7ba9397524ebd94446982f88c03</param>
+ <param
name="changesrevision">f941f9da356c0e561c42a69596eef616ea1f2c77</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20240207.602b3d2.obscpio ->
openSUSE-release-tools-20240223.f941f9d.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/dashboard/generate.py
new/openSUSE-release-tools-20240223.f941f9d/dashboard/generate.py
--- old/openSUSE-release-tools-20240207.602b3d2/dashboard/generate.py
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/dashboard/generate.py
2024-02-23 13:35:56.000000000 +0100
@@ -191,13 +191,6 @@
openqa_group='openSUSE Leap 15.5 ARMv7',
openqa_version='15.5', openqa_groupid=106)
fetcher.add('openSUSE:Leap:15.5:ARM:Images',
nick='Leap:15.5:ARM:Images',
openqa_group='openSUSE Leap 15.5 ARMv7 Images',
openqa_version='15.5', openqa_groupid=104)
- fetcher.add('openSUSE:Leap:15.4:Images', nick='Leap:15.4:Images',
openqa_group='openSUSE Leap 15.4 Images',
- openqa_version='15.4', openqa_groupid=89)
- fetcher.add('openSUSE:Leap:15.4:ARM', nick='Leap:15.4:ARM',
-
download_url='https://download.opensuse.org/ports/armv7hl/distribution/leap/15.4/iso',
- openqa_group='openSUSE Leap 15.4 ARMv7',
openqa_version='15.4', openqa_groupid=92)
- fetcher.add('openSUSE:Leap:15.4:ARM:Images',
nick='Leap:15.4:ARM:Images',
- openqa_group='openSUSE Leap 15.4 ARMv7 Images',
openqa_version='15.4', openqa_groupid=91)
with app.app_context():
rendered = render_template('dashboard.html',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/data/apimap.json
new/openSUSE-release-tools-20240223.f941f9d/data/apimap.json
--- old/openSUSE-release-tools-20240207.602b3d2/data/apimap.json
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/data/apimap.json
2024-02-23 13:35:56.000000000 +0100
@@ -18,5 +18,15 @@
"version": "15.5",
"flavor": "DVD-Backports-Incidents",
"distri": "opensuse"
+ },
+ "openSUSE:Leap:15.6:Update" : {
+ "version": "15.6",
+ "flavor": "DVD-Incidents",
+ "distri": "opensuse"
+ },
+ "openSUSE:Backports:SLE-15-SP6:Update" : {
+ "version": "15.6",
+ "flavor": "DVD-Backports-Incidents",
+ "distri": "opensuse"
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/data/incidents.json
new/openSUSE-release-tools-20240223.f941f9d/data/incidents.json
--- old/openSUSE-release-tools-20240207.602b3d2/data/incidents.json
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/data/incidents.json
2024-02-23 13:35:56.000000000 +0100
@@ -28,5 +28,20 @@
"FLAVOR": "DVD-Backports-Incidents",
"VERSION": "15.5",
"ARCH": "x86_64"
+ },
+ "openSUSE:Leap:15.6:Update": {
+ "DISTRI": "opensuse",
+ "FLAVOR": "DVD-Incidents",
+ "VERSION": "15.6",
+ "ARCH": [
+ "x86_64",
+ "aarch64"
+ ]
+ },
+ "openSUSE:Backports:SLE-15-SP6:Update": {
+ "DISTRI": "opensuse",
+ "FLAVOR": "DVD-Backports-Incidents",
+ "VERSION": "15.6",
+ "ARCH": "x86_64"
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/data/repos.json
new/openSUSE-release-tools-20240223.f941f9d/data/repos.json
--- old/openSUSE-release-tools-20240207.602b3d2/data/repos.json 2024-02-07
15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/data/repos.json 2024-02-23
13:35:56.000000000 +0100
@@ -59,6 +59,36 @@
"http://download.opensuse.org/update/leap/15.5/backports/",
"http://download.opensuse.org/update/leap/15.5/sle/"
]
+ },
+ "openSUSE:Leap:15.6:Update": {
+ "settings": {
+ "OS_TEST_ISSUES": "",
+ "FLAVOR": "DVD-Updates",
+ "DISTRI": "opensuse",
+ "VERSION": "15.6",
+ "ARCH": "x86_64"
+ },
+ "test": "textmode",
+ "repos": [
+ "http://download.opensuse.org/update/leap/15.6/oss/",
+ "http://download.opensuse.org/update/leap/15.6/non-oss/",
+ "http://download.opensuse.org/update/leap/15.6/backports/",
+ "http://download.opensuse.org/update/leap/15.6/sle/"
+ ]
+ },
+ "openSUSE:Backports:SLE-15-SP6:Update": {
+ "settings": {
+ "OS_TEST_ISSUES": "",
+ "FLAVOR": "DVD-Backports-Incidents",
+ "DISTRI": "opensuse",
+ "VERSION": "15.6",
+ "ARCH": "x86_64"
+ },
+ "test": "textmode",
+ "repos": [
+ "http://download.opensuse.org/update/leap/15.6/backports/",
+ "http://download.opensuse.org/update/leap/15.6/sle/"
+ ]
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/docker_publisher.py
new/openSUSE-release-tools-20240223.f941f9d/docker_publisher.py
--- old/openSUSE-release-tools-20240207.602b3d2/docker_publisher.py
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/docker_publisher.py
2024-02-23 13:35:56.000000000 +0100
@@ -377,16 +377,6 @@
},
'publisher': DockerImagePublisherRegistry(drc_tw, "latest"),
},
- 'leap-15.4': {
- 'fetchers': {
- 'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'aarch64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers/aarch64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'armv7l':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers_armv7/armv7l/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'ppc64le':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers/ppc64le/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 's390x':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers/s390x/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- },
- 'publisher': DockerImagePublisherRegistry(drc_leap, "15.4"),
- },
'leap-15.5': {
'fetchers': {
'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
@@ -397,6 +387,16 @@
},
'publisher': DockerImagePublisherRegistry(drc_leap, "latest",
["15.5", "15"]),
},
+ 'leap-15.6': {
+ 'fetchers': {
+ 'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.6/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'aarch64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.6/containers/aarch64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'armv7l':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.6/containers_armv7/armv7l/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'ppc64le':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.6/containers/ppc64le/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 's390x':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.6/containers/s390x/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ },
+ 'publisher': DockerImagePublisherRegistry(drc_leap, "15.6"),
+ },
}
# Parse args after defining the config - the available distros are included
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/findfileconflicts
new/openSUSE-release-tools-20240223.f941f9d/findfileconflicts
--- old/openSUSE-release-tools-20240207.602b3d2/findfileconflicts
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/findfileconflicts
2024-02-23 13:35:56.000000000 +0100
@@ -446,8 +446,8 @@
my @sp1 = split(' ', $p1);
my @sp2 = split(' ', $p2);
print "- between:\n";
- print " - [$sp1[0], $sp1[1], $sp1[2], $sp1[3]]\n";
- print " - [$sp2[0], $sp2[1], $sp2[2], $sp2[3]]\n";
+ print " - [$sp1[0], '$sp1[1]', '$sp1[2]', $sp1[3]]\n";
+ print " - [$sp2[0], '$sp2[1]', '$sp2[2]', $sp2[3]]\n";
print " conflicts: |-\n";
print " $_\n" for (@con);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.opensuse.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.opensuse.gocd.yaml
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.opensuse.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.opensuse.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -41,7 +41,7 @@
tasks:
- script: ./maintenance-installcheck.py -A
https://api.opensuse.org --user=maintenance-installcheck --debug review
openSUSE.Legal.Check:
- group: openSUSE.Checkers
+ group: openSUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 */5 * ? * *
@@ -62,7 +62,7 @@
- script: ./legal-auto.py -A https://api.opensuse.org --debug
--legaldb https://legaldb.suse.de --group=legal-auto review
- script: ./legal-auto.py -A https://api.opensuse.org --debug
--legaldb https://legaldb.suse.de --user=licensedigger review
openSUSE.Legal.Import:
- group: openSUSE.Checkers
+ group: openSUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 0 */3 ? * *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.suse.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.suse.gocd.yaml
--- old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.suse.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.suse.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -233,7 +233,7 @@
tasks:
- script: ./check_source.py -A https://api.suse.de --verbose
--skip-add-reviews --group factory-auto --user factory-auto review
SLE.Legal.Check:
- group: SLE.Checkers
+ group: SUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 */5 * ? * *
@@ -255,7 +255,7 @@
- script: ./legal-auto.py -A https://api.suse.de --debug --legaldb
https://legaldb.suse.de --group=legal-auto review
- script: ./legal-auto.py -A https://api.suse.de --debug --legaldb
https://legaldb.suse.de --user=licensedigger review
SLE.Legal.Import:
- group: SLE.Checkers
+ group: SUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 0 0 ? * *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.suse.gocd.yaml.erb
new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.suse.gocd.yaml.erb
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/checkers.suse.gocd.yaml.erb
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/checkers.suse.gocd.yaml.erb
2024-02-23 13:35:56.000000000 +0100
@@ -233,7 +233,7 @@
tasks:
- script: ./check_source.py -A https://api.suse.de --verbose
--skip-add-reviews --group factory-auto --user factory-auto review
SLE.Legal.Check:
- group: SLE.Checkers
+ group: SUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 */5 * ? * *
@@ -255,7 +255,7 @@
- script: ./legal-auto.py -A https://api.suse.de --debug --legaldb
https://legaldb.suse.de --group=legal-auto review
- script: ./legal-auto.py -A https://api.suse.de --debug --legaldb
https://legaldb.suse.de --user=licensedigger review
SLE.Legal.Import:
- group: SLE.Checkers
+ group: SUSE.Legal
lock_behavior: unlockWhenFinished
timer:
spec: 0 0 0 ? * *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/generate.sh
new/openSUSE-release-tools-20240223.f941f9d/gocd/generate.sh
--- old/openSUSE-release-tools-20240207.602b3d2/gocd/generate.sh
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/gocd/generate.sh
2024-02-23 13:35:56.000000000 +0100
@@ -14,7 +14,7 @@
grep group: *.yaml | cut -d: -f3 | sort -u | while read group; do
case $group in
-
BCI|Factory|Leap|Admin|MicroOS|Monitors|openSUSE.Checkers|SLE15.Stagings|SLE15.Target|SLE.Checkers|ALP.Stagings|ALP.Target|ALP.Checkers)
+
BCI|Factory|Leap|Admin|MicroOS|Monitors|openSUSE.Checkers|SLE15.Stagings|SLE15.Target|SLE.Checkers|ALP.Stagings|ALP.Target|ALP.Checkers|openSUSE.Legal|SUSE.Legal)
;;
*)
echo "Do not create new groups without being admin and knowing the
consequences - found $group"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/monitors.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/monitors.gocd.yaml
--- old/openSUSE-release-tools-20240207.602b3d2/gocd/monitors.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/gocd/monitors.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -121,7 +121,7 @@
git config --global user.email "[email protected]"
git config --global user.name "GoCD Repo Monitor"
cd repos
- ../scripts/gocd/rabbit-repoid.py -A https://api.opensuse.org
openSUSE:Factory openSUSE:Leap openSUSE:Backports Virtualization:WSL KDE:Medias
systemsmanagement:Agama SUSE:ALP
+ ../scripts/gocd/rabbit-repoid.py -A https://api.opensuse.org
openSUSE:Factory openSUSE:Leap openSUSE:Backports Virtualization:WSL KDE:Medias
systemsmanagement:Agama SUSE:ALP openSUSE:Slowroll
openSUSE.ObsRsync:
group: Monitors
lock_behavior: unlockWhenFinished
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/pkglistgen.opensuse.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/pkglistgen.opensuse.gocd.yaml
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/pkglistgen.opensuse.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/pkglistgen.opensuse.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -151,28 +151,6 @@
tasks:
- script: python3 ./skippkg-finder.py -A https://api.opensuse.org
-o openSUSE:Leap:15.6 -s SUSE:SLE-15-SP6:GA
- script: python3 ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Leap:15.6 -s target
- Pkglistgen.openSUSE_Leap_15.4_CR:
- group: Leap
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-staging-bot
- timer:
- spec: 0 40 * ? * *
- only_on_changes: false
- materials:
- git:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- stages:
- - pkglistgen:
- approval:
- type: manual
- jobs:
- openSUSE_Leap_15.4_Images_target:
- resources:
- - repo-checker
- tasks:
- - script: python3 ./skippkg-finder.py -A https://api.opensuse.org
-o openSUSE:Leap:15.4:Images -t openSUSE:Leap:15.4:Update -s
SUSE:SLE-15-SP4:Update
- - script: python3 ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Leap:15.4:Images -s target
Update.Repos.Leap.openSUSE_Leap_15.6:
group: Leap
lock_behavior: unlockWhenFinished
@@ -194,24 +172,3 @@
- repo-checker
tasks:
- script: python3 ./pkglistgen.py --apiurl
https://api.opensuse.org handle_update_repos openSUSE:Leap:15.6
- Update.Repos.Leap.openSUSE_Leap_15.4_Images:
- group: Leap
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-staging-bot
- timer:
- spec: 0 0 0 */3 * ?
- only_on_changes: false
- materials:
- git:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- stages:
- - Update:
- approval:
- type: manual
- jobs:
- openSUSE_Leap_15.4_Images:
- resources:
- - repo-checker
- tasks:
- - script: python3 ./pkglistgen.py --apiurl
https://api.opensuse.org handle_update_repos openSUSE:Leap:15.4:Images
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/pkglistgen.opensuse.gocd.yaml.erb
new/openSUSE-release-tools-20240223.f941f9d/gocd/pkglistgen.opensuse.gocd.yaml.erb
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/pkglistgen.opensuse.gocd.yaml.erb
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/pkglistgen.opensuse.gocd.yaml.erb
2024-02-23 13:35:56.000000000 +0100
@@ -118,38 +118,7 @@
- script: python3 ./skippkg-finder.py -A https://api.opensuse.org
-o openSUSE:Leap:15.6 -s SUSE:SLE-15-SP6:GA
- script: python3 ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p <%= project[0] %><%= options %>
<% end -%>
- Pkglistgen.openSUSE_Leap_15.4_CR:
- group: Leap
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-staging-bot
- timer:
- spec: 0 40 * ? * *
- only_on_changes: false
- materials:
- git:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- stages:
- - pkglistgen:
- approval:
- type: manual
- jobs:
-<% ['openSUSE:Leap:15.4:Images/target'].each do |project|
- project=project.split('/')
- name=project[0].gsub(':', '_')
- if project.size > 1
- options=" -s #{project[1]}"
- name = name + "_#{project[1]}"
- end
- -%>
- <%= name %>:
- resources:
- - repo-checker
- tasks:
- - script: python3 ./skippkg-finder.py -A https://api.opensuse.org
-o openSUSE:Leap:15.4:Images -t openSUSE:Leap:15.4:Update -s
SUSE:SLE-15-SP4:Update
- - script: python3 ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p <%= project[0] %><%= options %>
-<% end -%>
-<% %w(openSUSE:Leap:15.6 openSUSE:Leap:15.4:Images).each do |project| -%>
+<% %w(openSUSE:Leap:15.6).each do |project| -%>
Update.Repos.Leap.<%= project.gsub(':', '_') %>:
group: Leap
lock_behavior: unlockWhenFinished
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/totestmanager.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/totestmanager.gocd.yaml
--- old/openSUSE-release-tools-20240207.602b3d2/gocd/totestmanager.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/gocd/totestmanager.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -105,69 +105,6 @@
- script: |-
install -D /home/go/config/openqa-client.conf
/home/go/.config/openqa/client.conf
scripts/totest-manager.py -A https://api.opensuse.org --debug run
openSUSE:Factory:zSystems
- TTM.Leap_15.4_Images:
- group: openSUSE.Checkers
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-totest-manager
- materials:
- script:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- destination: scripts
- timer:
- spec: 0 */15 * ? * *
- only_on_changes: false
- stages:
- - Run:
- approval: manual
- resources:
- - staging-bot
- tasks:
- - script: |-
- install -D /home/go/config/openqa-client.conf
/home/go/.config/openqa/client.conf
- scripts/totest-manager.py -A https://api.opensuse.org --debug run
openSUSE:Leap:15.4:Images
- TTM.Leap_15.4_ARM:
- group: openSUSE.Checkers
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-totest-manager
- materials:
- script:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- destination: scripts
- timer:
- spec: 0 */15 * ? * *
- only_on_changes: false
- stages:
- - Run:
- approval: manual
- resources:
- - staging-bot
- tasks:
- - script: |-
- install -D /home/go/config/openqa-client.conf
/home/go/.config/openqa/client.conf
- scripts/totest-manager.py -A https://api.opensuse.org --debug run
openSUSE:Leap:15.4:ARM
- TTM.Leap_15.4_ARM_Images:
- group: openSUSE.Checkers
- lock_behavior: unlockWhenFinished
- environment_variables:
- OSC_CONFIG: /home/go/config/oscrc-totest-manager
- materials:
- script:
- git: https://github.com/openSUSE/openSUSE-release-tools.git
- destination: scripts
- timer:
- spec: 0 */15 * ? * *
- only_on_changes: false
- stages:
- - Run:
- approval: manual
- resources:
- - staging-bot
- tasks:
- - script: |-
- install -D /home/go/config/openqa-client.conf
/home/go/.config/openqa/client.conf
- scripts/totest-manager.py -A https://api.opensuse.org --debug run
openSUSE:Leap:15.4:ARM:Images
TTM.Leap_15.5_Images:
group: openSUSE.Checkers
lock_behavior: unlockWhenFinished
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/totestmanager.gocd.yaml.erb
new/openSUSE-release-tools-20240223.f941f9d/gocd/totestmanager.gocd.yaml.erb
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/totestmanager.gocd.yaml.erb
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/totestmanager.gocd.yaml.erb
2024-02-23 13:35:56.000000000 +0100
@@ -6,9 +6,6 @@
openSUSE:Factory:LegacyX86
openSUSE:Factory:PowerPC
openSUSE:Factory:zSystems
- openSUSE:Leap:15.4:Images
- openSUSE:Leap:15.4:ARM
- openSUSE:Leap:15.4:ARM:Images
openSUSE:Leap:15.5:Images
openSUSE:Leap:15.5:ARM
openSUSE:Leap:15.5:ARM:Images
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/vagrant-publisher.gocd.yaml
new/openSUSE-release-tools-20240223.f941f9d/gocd/vagrant-publisher.gocd.yaml
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/vagrant-publisher.gocd.yaml
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/vagrant-publisher.gocd.yaml
2024-02-23 13:35:56.000000000 +0100
@@ -51,27 +51,27 @@
tasks:
- script: |
ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/ports/aarch64/tumbleweed/appliances/boxes/openSUSE-MicroOS.aarch64-ContainerHost-Vagrant.json
--organization opensuse --new-box-name MicroOS-ContainerHost.aarch64
- publish_Leap-15_4_x86_64:
+ publish_Leap-15_5_x86_64:
resources:
- staging-bot
tasks:
- script: |
- ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.x86_64.json
--organization opensuse --new-box-name Leap-15.4.x86_64
- publish_Leap-15_4_aarch64:
+ ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.x86_64.json
--organization opensuse --new-box-name Leap-15.5.x86_64
+ publish_Leap-15_5_aarch64:
resources:
- staging-bot
tasks:
- script: |
- ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.aarch64-libvirt_aarch64.json
--organization opensuse --new-box-name Leap-15.4.aarch64
- publish_Leap-15_5_x86_64:
+ ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.aarch64-libvirt_aarch64.json
--organization opensuse --new-box-name Leap-15.5.aarch64
+ publish_Leap-15_6_x86_64:
resources:
- staging-bot
tasks:
- script: |
- ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.x86_64.json
--organization opensuse --new-box-name Leap-15.5.x86_64
- publish_Leap-15_5_aarch64:
+ ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.6/appliances/boxes/Leap-15.6.x86_64.json
--organization opensuse --new-box-name Leap-15.6.x86_64
+ publish_Leap-15_6_aarch64:
resources:
- staging-bot
tasks:
- script: |
- ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.aarch64-libvirt_aarch64.json
--organization opensuse --new-box-name Leap-15.5.aarch64
+ ruby obs-to-vagrantcloud.rb --url
https://download.opensuse.org/distribution/leap/15.6/appliances/boxes/Leap-15.6.aarch64-libvirt_aarch64.json
--organization opensuse --new-box-name Leap-15.6.aarch64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/gocd/vagrant-publisher.gocd.yaml.erb
new/openSUSE-release-tools-20240223.f941f9d/gocd/vagrant-publisher.gocd.yaml.erb
---
old/openSUSE-release-tools-20240207.602b3d2/gocd/vagrant-publisher.gocd.yaml.erb
2024-02-07 15:42:32.000000000 +0100
+++
new/openSUSE-release-tools-20240223.f941f9d/gocd/vagrant-publisher.gocd.yaml.erb
2024-02-23 13:35:56.000000000 +0100
@@ -21,10 +21,10 @@
['https://download.opensuse.org/tumbleweed/appliances/boxes/openSUSE-MicroOS.x86_64-ContainerHost-Vagrant.json',
'MicroOS-ContainerHost.x86_64'],
['https://download.opensuse.org/ports/aarch64/tumbleweed/appliances/boxes/openSUSE-MicroOS.aarch64-Vagrant.json',
'MicroOS.aarch64'],
['https://download.opensuse.org/ports/aarch64/tumbleweed/appliances/boxes/openSUSE-MicroOS.aarch64-ContainerHost-Vagrant.json',
'MicroOS-ContainerHost.aarch64'],
-['https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.x86_64.json',
'Leap-15.4.x86_64'],
-['https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.aarch64-libvirt_aarch64.json',
'Leap-15.4.aarch64'],
['https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.x86_64.json',
'Leap-15.5.x86_64'],
['https://download.opensuse.org/distribution/leap/15.5/appliances/boxes/Leap-15.5.aarch64-libvirt_aarch64.json',
'Leap-15.5.aarch64'],
+['https://download.opensuse.org/distribution/leap/15.6/appliances/boxes/Leap-15.6.x86_64.json',
'Leap-15.6.x86_64'],
+['https://download.opensuse.org/distribution/leap/15.6/appliances/boxes/Leap-15.6.aarch64-libvirt_aarch64.json',
'Leap-15.6.aarch64'],
].each do |url, box_name| %>
publish_<%= box_name.gsub('.', '_') %>:
resources:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/metrics/access/aggregate.php
new/openSUSE-release-tools-20240223.f941f9d/metrics/access/aggregate.php
--- old/openSUSE-release-tools-20240207.602b3d2/metrics/access/aggregate.php
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/metrics/access/aggregate.php
2024-02-23 13:35:56.000000000 +0100
@@ -1,11 +1,12 @@
#!/usr/bin/php
<?php
-use InfluxDB\Point;
-use InfluxDB\Database;
+use InfluxDB2\Client;
+use InfluxDB2\Point;
$CACHE_DIR = $_SERVER['HOME'] .
'/.cache/openSUSE-release-tools/metrics-access';
const PROTOCOLS = ['ipv4', 'ipv6'];
+const DOWNLOAD_OPENSUSE_ORG = 'https://download.opensuse.org/logs';
const PONTIFEX = 'http://pontifex.infra.opensuse.org/logs';
const BACKUP = 'http://backup.infra.opensuse.org';
const LANGLEY = 'http://langley.suse.de/pub/pontifex%s-opensuse.suse.de';
@@ -19,22 +20,24 @@
$begin->sub(date_interval_create_from_date_string('1 day'));
$source_map = [
'ipv4' => [
+ // the first item defines the starting date for aggregation
'2023-01-01' => false,
- //'2014-04-14' => sprintf(LANGLEY, 2) . '/' . VHOST,
- //'2017-12-04' => sprintf(LANGLEY, 3) . '/' . VHOST,
- '2023-06-18' => BACKUP . '/' . VHOST,
- $begin->format('Y-m-d') => PONTIFEX . '/' . VHOST,
+ '2023-11-13' => DOWNLOAD_OPENSUSE_ORG . '/' . VHOST,
'filename' => FILENAME,
],
'ipv6' => [
'2012-12-31' => false,
- //'2017-12-04' => sprintf(LANGLEY, 3) . '/' . IPV6_PREFIX . VHOST,
- '2023-06-18' => BACKUP . '/' . IPV6_PREFIX . VHOST,
- $begin->format('Y-m-d') => PONTIFEX . '/' . IPV6_PREFIX . VHOST,
+ '2023-11-13' => DOWNLOAD_OPENSUSE_ORG . '/' . IPV6_PREFIX . VHOST,
'filename' => IPV6_PREFIX . FILENAME,
],
+ 'ipv4+6' => [
+ '2023-11-13' => false,
+ $begin->format('Y-m-d') => DOWNLOAD_OPENSUSE_ORG . '/' . VHOST,
+ 'filename' => FILENAME,
+ ],
];
$end = new DateTime(key($source_map['ipv4'])); // decide about adding one day
+$migration_date = new DateTime(key($source_map['ipv4+6']));
$period_reversed = date_period_reversed($end, '1 day', $begin);
error_log('begin: ' . $begin->format('Y-m-d'));
@@ -53,9 +56,11 @@
foreach (PROTOCOLS as $protocol) {
mkdir("$CACHE_DIR/$protocol", 0755, true);
}
+ mkdir("$CACHE_DIR/ipv4+6", 0755, true);
// Avoid packaging mess while still automating, but not ideal.
- passthru('cd ' . escapeshellarg($CACHE_DIR) . ' && composer require
influxdb/influxdb-php ~1');
+ passthru('cd ' . escapeshellarg($CACHE_DIR) .
+ ' && composer require influxdata/influxdb-client-php:~3.4
guzzlehttp/guzzle');
}
require "$CACHE_DIR/vendor/autoload.php";
@@ -68,9 +73,10 @@
$found = [];
// Walk backwards until found in cache.
foreach ($period_reversed as $date) {
- $date_string = $date->format('Y-m-d');
+ $date_string = print_date($date);
+ $protocols_on_day = get_protocols($date);
- foreach (PROTOCOLS as $protocol) {
+ foreach ($protocols_on_day as $protocol) {
if (!empty($found[$protocol])) continue;
if (isset($source_map[$protocol][$date_string]))
$source[$protocol] = $source_map[$protocol][$date_string];
@@ -78,7 +84,7 @@
// Skip date+protocol if no source is available.
if (empty($source[$protocol])) continue;
- $cache_file = "$CACHE_DIR/$protocol/$date_string.json";
+ $cache_file = get_cache_file($protocol, $date);
if (file_exists($cache_file)) {
error_log("[$date_string] [$protocol] found");
$found[$protocol] = true;
@@ -88,7 +94,8 @@
}
}
- if (count($found) == count(PROTOCOLS)) {
+ // Stop when all cache files were found
+ if (count($found) == count($protocols_on_day)) {
error_log('ingest initialization complete');
break;
}
@@ -98,6 +105,47 @@
subprocess_wait(1, 1);
}
+function print_date($date)
+{
+ return $date->format('Y-m-d');
+}
+
+// Logs before migration date have been kept in separate files for IPv4 and
IPv6 addresses
+function has_separate_protocol_logs($date)
+{
+ global $migration_date;
+ if ($date > $migration_date)
+ return false;
+ else
+ return true;
+}
+
+function get_cache_file($protocol, $date)
+{
+ global $CACHE_DIR;
+ if (has_separate_protocol_logs($date))
+ return "$CACHE_DIR/$protocol/" . print_date($date) . ".json";
+ else
+ return "$CACHE_DIR/ipv4+6/" . print_date($date) . ".json";
+}
+
+function get_cache_files($date)
+{
+ $files = [];
+ foreach (get_protocols($date) as $protocol)
+ array_push($files, get_cache_file($protocol, $date));
+
+ return $files;
+}
+
+function get_protocols($date)
+{
+ if (has_separate_protocol_logs($date))
+ return PROTOCOLS;
+ else
+ return array("ipv4+6");
+}
+
function ingest($date, $source, $filename, $destination)
{
$url = implode('/', [
@@ -107,7 +155,7 @@
sprintf($filename, $date->format('Ymd')),
]);
$command = implode(' ', [
- 'curl -s',
+ 'curl -s --digest --netrc',
escapeshellarg($url),
'| xzcat',
'| ' . __DIR__ . '/ingest.php',
@@ -159,14 +207,14 @@
$merged_protocol = [];
$date_previous = null;
foreach ($period as $date) {
- $date_string = $date->format('Y-m-d');
+ $date_string = print_date($date);
$data = null;
foreach (PROTOCOLS as $protocol) {
- $cache_file = "$CACHE_DIR/$protocol/$date_string.json";
+ $cache_file = get_cache_file($protocol, $date);
if (!file_exists($cache_file) or !filesize($cache_file)) continue;
- error_log("[$date_string] [$protocol] load cache");
+ error_log("[$date_string]" . (has_separate_protocol_logs($date) ? "
[$protocol]" : "") . " load cache");
$data_new = json_decode(file_get_contents($cache_file), true);
if (!$data_new) {
error_log('ERROR: failed to load ' . $cache_file);
@@ -174,17 +222,31 @@
exit(1);
}
+ if (isset($data_new[$protocol])) {
+ // new cache files have 'ipv4' and 'ipv6' array keys
+ $data_protocol = $data_new[$protocol];
+ // we don't want to count 'total_invalid' and 'bytes' twice
+ if ($data) {
+ $data_protocol['total_invalid'] = 0;
+ $data_protocol['bytes'] = 0;
+ } else {
+ $data_protocol['total_invalid'] = $data_new['total_invalid'];
+ $data_protocol['bytes'] = $data_new['bytes'];
+ }
+ }
+ else
+ $data_protocol = $data_new;
if (!isset($merged_protocol[$protocol])) $merged_protocol[$protocol] =
[];
- $data_new['days'] = 1;
- normalize($data_new);
- aggregate($intervals, $merged_protocol[$protocol], $date,
$date_previous, $data_new,
+ $data_protocol['days'] = 1;
+ normalize($data_protocol);
+ aggregate($intervals, $merged_protocol[$protocol], $date,
$date_previous, $data_protocol,
['protocol' => $protocol], 'protocol');
if ($data) {
- merge($data, $data_new);
+ merge($data, $data_protocol);
$data['days'] = 1;
} else {
- $data = $data_new;
+ $data = $data_protocol;
}
}
@@ -213,12 +275,12 @@
function aggregate($intervals, &$merged, $date, $date_previous, $data, $tags =
[], $prefix = 'access')
{
foreach ($intervals as $interval => $format) {
- if ($interval == 'FQ') {
+ if ($interval === 'FQ') {
$value = format_FQ($date);
if (isset($date_previous))
$value_previous = format_FQ($date_previous);
}
- elseif ($interval == 'FY') {
+ elseif ($interval === 'FY') {
$value = format_FY($date);
if (isset($date_previous))
$value_previous = format_FY($date_previous);
@@ -231,7 +293,7 @@
if (!isset($merged[$interval]) || $value != $merged[$interval]['value']) {
if (!empty($merged[$interval]['data'])) {
$summary = summarize($merged[$interval]['data']);
- if ($prefix == 'protocol') {
+ if ($prefix === 'protocol') {
$summary = ['-' => $summary['-']];
}
$flavors = [];
@@ -248,7 +310,7 @@
$count += write_flavors($interval, $date_previous, $flavors);
}
- if ($prefix == 'access') {
+ if ($prefix === 'access') {
$summary =
summarize_product_plus_key($merged[$interval]['data']['total_image_product']);
$count += write_summary_product_plus_key($interval,
$date_previous, $summary, 'image');
}
@@ -313,7 +375,7 @@
if (empty($data1['total_product'][$product]))
$data1['total_product'][$product] = 0;
- $data1['total_product'][$product] += $data2['total_product'][$product];
+ $data1['total_product'][$product] += $total;
}
merge_unique_products($data1['unique_product'], $data2['unique_product']);
@@ -451,8 +513,7 @@
$measurement = $prefix . '_' . $interval;
$points = [];
foreach ($summary as $product => $fields) {
- $points[] = new Point($measurement, null,
- ['product' => $product] + $tags, $fields, $value->getTimestamp());
+ $points[] = new Point($measurement, ['product' => $product] + $tags,
$fields, $value->getTimestamp());
}
write($points);
return count($points);
@@ -465,7 +526,8 @@
foreach ($flavors as $product => $unique_flavors) {
foreach($unique_flavors as $flavor => $unique_count) {
$tags = ['product' => $product, 'flavor' => $flavor];
- $points[] = new Point($measurement, $unique_count, $tags, [],
$value->getTimestamp());
+ $fields = ['value' => $unique_count];
+ $points[] = new Point($measurement, $tags, $fields,
$value->getTimestamp());
}
}
write($points);
@@ -478,7 +540,7 @@
$points = [];
foreach ($summary as $product => $pairs) {
foreach ($pairs as $key => $value) {
- $points[] = new Point($measurement, null,
+ $points[] = new Point($measurement,
['product' => $product, 'key' => $key], ['value' => $value],
$date->getTimestamp());
}
}
@@ -488,13 +550,20 @@
function write($points)
{
- static $database = null;
+ static $client;
+ static $writeApi;
- if (!$database) {
- $database =
InfluxDB\Client::fromDSN('influxdb://0.0.0.0:8086/osrt_access');
- // $database->drop();
- // $database->create();
+ if (!$client) {
+ $client = new Client([
+ "url" => "http://localhost:8086",
+ "token" => "",
+ "bucket" => "osrt_access/autogen",
+ "org" => "-",
+ "precision" => InfluxDB2\Model\WritePrecision::S
+ ]);
+ $writeApi = $client->createWriteApi();
}
- if (!$database->writePoints($points, Database::PRECISION_SECONDS))
die('failed to write points');
+ if (!is_null($writeApi->write($points)))
+ die('failed to write points');
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/metrics/access/ingest.php
new/openSUSE-release-tools-20240223.f941f9d/metrics/access/ingest.php
--- old/openSUSE-release-tools-20240207.602b3d2/metrics/access/ingest.php
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/metrics/access/ingest.php
2024-02-23 13:35:56.000000000 +0100
@@ -4,16 +4,21 @@
const REGEX_LINE = '/(\S+) \S+ \S+ \[([^:]+:\d+:\d+:\d+ [^\]]+)\] "(\S+)(?:
(\S+) \S+)?" (\S+) (\S+) "[^"]*" "[^"]*" .* (?:size:|want:- give:- \d+ )(\S+)
\S+(?: +"?(\S+-\S+-\S+-\S+-[^\s"]+|-)"?
"?(dvd|ftp|mini|usb-[^"]*|livecd-[^"]*|appliance-?[^"]*|-)"?)?/';
const REGEX_PRODUCT =
'#/(?:(tumbleweed)|distribution/(?:leap/)?(\d+\.\d+)|openSUSE(?:_|:/)(?:leap(?:_|:/))?(factory|tumbleweed|\d+\.\d+))#i';
const REGEX_IMAGE =
'#(?:/(?:iso|live)/[^/]+-(DVD|NET|GNOME-Live|KDE-Live|Rescue-CD|Kubic-DVD)-[^/]+\.iso(?:\.torrent)?|/jeos/[^/]+-(JeOS)\.[^/]+\.(?:qcow2|vhdx|vmdk|vmx)$)#';
+const REGEX_IPV4 = '/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/';
+const PROTOCOLS = ['ipv4', 'ipv6'];
-$total = 0;
$total_invalid = 0;
-$total_product = [];
-$unique_product = [];
-$total_image_product = [];
+foreach (PROTOCOLS as $protocol) {
+ $total[$protocol] = 0;
+ $total_product[$protocol] = [];
+ $unique_product[$protocol] = [];
+ $total_image_product[$protocol] = [];
+}
$file = $argc == 2 ? $argv[1] : 'php://stdin';
$handle = fopen($file, 'r');
while (($line = fgets($handle)) !== false) {
+ $protocol = '';
if (!preg_match(REGEX_LINE, $line, $match)) {
error_log('[failed to parse] ' . rtrim($line));
$total_invalid++;
@@ -24,7 +29,12 @@
if ($match[3] != 'GET' && $match[3] != 'HEAD') continue;
// Not interested on errors.
if ($match[5] >= '400') continue;
- $total++;
+
+ if (preg_match(REGEX_IPV4, $match[1]))
+ $protocol = 'ipv4';
+ else
+ $protocol = 'ipv6';
+ $total[$protocol]++;
// Attempt to determine for which product was the request.
if (!preg_match(REGEX_PRODUCT, $match[4], $match_product)) {
@@ -35,47 +45,53 @@
$values = array_filter($match_product);
$product = str_replace('factory', 'tumbleweed', strtolower(next($values)));
- if (!isset($total_product[$product])) $total_product[$product] = 0;
- $total_product[$product] += 1;
+ if (!isset($total_product[$protocol][$product]))
$total_product[$protocol][$product] = 0;
+ $total_product[$protocol][$product] += 1;
if (count($match) == 10 && $match[8] != '-') {
$uuid = $match[8];
- if (!isset($unique_product[$product])) $unique_product[$product] = [];
- if (!isset($unique_product[$product][$uuid])) {
- $unique_product[$product][$uuid] = [
+ if (!isset($unique_product[$protocol][$product]))
$unique_product[$protocol][$product] = [];
+ if (!isset($unique_product[$protocol][$product][$uuid])) {
+ $unique_product[$protocol][$product][$uuid] = [
'count' => 0,
'flavor' => $match[9],
'ip' => $match[1],
];
}
- $unique_product[$product][$uuid]['count'] += 1;
+ $unique_product[$protocol][$product][$uuid]['count'] += 1;
}
if (preg_match(REGEX_IMAGE, $match[4], $match_image)) {
// Remove empty match groups and select non-all match.
$values = array_filter($match_image);
$image = next($values);
- if (!isset($total_image_product[$product])) $total_image_product[$product]
= [];
- if (!isset($total_image_product[$product][$image]))
$total_image_product[$product][$image] = 0;
- $total_image_product[$product][$image] += 1;
+ if (!isset($total_image_product[$protocol][$product]))
$total_image_product[$protocol][$product] = [];
+ if (!isset($total_image_product[$protocol][$product][$image]))
$total_image_product[$protocol][$product][$image] = 0;
+ $total_image_product[$protocol][$product][$image] += 1;
}
}
$position = ftell($handle);
fclose($handle);
error_log('processed ' . number_format($position) . ' bytes');
-error_log('found ' . number_format($total) . ' requests across ' .
- number_format(count($total_product)) . ' products');
+error_log('found ' . number_format(array_sum($total)) . ' requests across ' .
+ number_format(array_sum(array_map('count', $total_product))) . ' products');
+
+$output = [
+ 'total_invalid' => $total_invalid,
+ 'bytes' => $position
+];
+foreach (PROTOCOLS as $protocol) {
+ ksort($total_product[$protocol]);
+ ksort($unique_product[$protocol]);
+ $output[$protocol] = [
+ 'total' => $total[$protocol],
+ 'total_product' => $total_product[$protocol],
+ 'unique_product' => $unique_product[$protocol],
+ 'total_image_product' => $total_image_product[$protocol]
+ ];
+}
-ksort($total_product);
-ksort($unique_product);
if ($position) {
- echo json_encode([
- 'total' => $total,
- 'total_product' => $total_product,
- 'unique_product' => $unique_product,
- 'total_image_product' => $total_image_product,
- 'total_invalid' => $total_invalid,
- 'bytes' => $position,
- ]) . "\n"; // JSON_PRETTY_PRINT for debugging.
+ echo json_encode($output) . "\n"; // JSON_PRETTY_PRINT for debugging.
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/osclib/repochecks.py
new/openSUSE-release-tools-20240223.f941f9d/osclib/repochecks.py
--- old/openSUSE-release-tools-20240207.602b3d2/osclib/repochecks.py
2024-02-07 15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/osclib/repochecks.py
2024-02-23 13:35:56.000000000 +0100
@@ -2,6 +2,7 @@
import os
import re
import requests
+import solv
import subprocess
import tempfile
import glob
@@ -63,12 +64,40 @@
return True
-def _fileconflicts(pfile, target_packages, whitelist):
+def _do_packages_conflict(pool, pkgs):
+ logger.debug("Checking whether %s can be installed at once", pkgs)
+ jobs = []
+ for pkg in pkgs:
+ sel = pool.select(pkg, solv.Selection.SELECTION_CANON |
solv.Selection.SELECTION_DOTARCH)
+ if sel.isempty():
+ raise RuntimeError(f"{pkg} not found in pool")
+
+ jobs += sel.jobs(solv.Job.SOLVER_INSTALL)
+
+ solver = pool.Solver()
+ problems = solver.solve(jobs)
+ if not problems:
+ return False
+
+ for problem in problems:
+ logger.debug("Problem: %s", str(problem))
+
+ return True
+
+
+def _fileconflicts(pfile, arch, target_packages, whitelist):
script = os.path.join(SCRIPT_PATH, '..', 'findfileconflicts')
p = subprocess.run(['perl', script, pfile], stdout=subprocess.PIPE)
if p.returncode or len(p.stdout):
output = ''
conflicts = yaml.safe_load(p.stdout)
+
+ pool = solv.Pool()
+ pool.setarch(arch)
+ repo = pool.add_repo("packages")
+ repo.add_susetags(solv.xfopen(pfile), pool.lookup_id(solv.SOLVID_META,
solv.SUSETAGS_DEFAULTVENDOR), "en")
+ pool.createwhatprovides()
+
for conflict in conflicts:
sp1 = conflict['between'][0]
sp2 = conflict['between'][1]
@@ -79,6 +108,12 @@
if _check_conflicts_whitelist(sp1, sp2, whitelist):
continue
+ pkgcanon1 = _format_pkg(sp1)
+ pkgcanon2 = _format_pkg(sp2)
+ if _do_packages_conflict(pool, [pkgcanon1, pkgcanon2]):
+ logger.debug("Packages %s and %s with conflicting files
conflict", pkgcanon1, pkgcanon2)
+ continue
+
output += "found conflict of {} with
{}\n".format(_format_pkg(sp1), _format_pkg(sp2))
for file in conflict['conflicts'].split('\n'):
output += " {}\n".format(file)
@@ -159,7 +194,7 @@
target_packages = catalog.get(directories[0], [])
parts = []
- output = _fileconflicts(pfile, target_packages, ignore_conflicts)
+ output = _fileconflicts(pfile, arch, target_packages, ignore_conflicts)
if output:
parts.append(output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20240207.602b3d2/ttm/releaser.py
new/openSUSE-release-tools-20240223.f941f9d/ttm/releaser.py
--- old/openSUSE-release-tools-20240207.602b3d2/ttm/releaser.py 2024-02-07
15:42:32.000000000 +0100
+++ new/openSUSE-release-tools-20240223.f941f9d/ttm/releaser.py 2024-02-23
13:35:56.000000000 +0100
@@ -88,12 +88,6 @@
if re.match(r'.*-dvd5-.*', package):
return 4700372992 # a DVD needs to match
- if re.match(r'livecd-x11-.*', package) and arch == 'x86_64':
- return 681574400 # not a full CD on x86
-
- if re.match(r'livecd-.*', package):
- return 999999999 # a GB stick
-
if re.match(r'.*-(dvd9-dvd|cd-DVD)-.*', package):
return 8539996159
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.XCLXsv/_old 2024-03-01 23:38:50.684487320 +0100
+++ /var/tmp/diff_new_pack.XCLXsv/_new 2024-03-01 23:38:50.688487464 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20240207.602b3d2
-mtime: 1707316952
-commit: 602b3d2b1e47b7ba9397524ebd94446982f88c03
+version: 20240223.f941f9d
+mtime: 1708691756
+commit: f941f9da356c0e561c42a69596eef616ea1f2c77