[Git][qa/jenkins.debian.net][master] 2 commits: reproducble opensuse: sqla 2.0: fix delete() call
Mattia Rizzolo (@mattia)
gitlab at salsa.debian.org
Mon Aug 11 17:03:52 BST 2025
Mattia Rizzolo pushed to branch master at Debian QA / jenkins.debian.net
Commits:
456cd734 by Mattia Rizzolo at 2025-08-11T17:57:47+02:00
reproducble opensuse: sqla 2.0: fix delete() call
Signed-off-by: Mattia Rizzolo <mattia at debian.org>
- - - - -
bc5a1deb by Mattia Rizzolo at 2025-08-11T18:03:09+02:00
reproducible opensuse: move everything into a single transaction
just try to have more consistent data if possible
Also, there seemed to be some confusion between query_db() and
conn_db.execute(), being mixed up where they shouldn't.
Signed-off-by: Mattia Rizzolo <mattia at debian.org>
- - - - -
1 changed file:
- bin/reproducible_opensuse_import_json.py
Changes:
=====================================
bin/reproducible_opensuse_import_json.py
=====================================
@@ -1,7 +1,7 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
-# Copyright © 2018 Mattia Rizzolo <mattia at mapreri.org>
+# Copyright © 2018-2025 Mattia Rizzolo <mattia at mapreri.org>
#
# Licensed under GPL-2
#
@@ -50,60 +50,58 @@ for pkg in ostatus:
pkgs_b[(pkg['package'], pkg['version'])] = data
-# just insert everything for now
-
-log.info('Dropping old data…')
-transaction = conn_db.begin()
-d = results.delete(results.c.package_id.in_(
- select(sources.c.id).select_from(sources).where(sources.c.distribution == distro_id)
-))
-query_db(d)
-d = sources.delete(sources.c.distribution == distro_id)
-query_db(d)
-transaction.commit()
-
-
-log.info('Injecting new source packages…')
-transaction = conn_db.begin()
-conn_db.execute(sources.insert(), pkgs)
-transaction.commit()
-
-
-log.info('Injecting build results…')
-cur_pkgs = select(
- sources.c.id, sources.c.name, sources.c.version,
- sources.c.suite, sources.c.architecture
-).select_from(
- sources.join(distributions)
-).where(
- and_(
- distributions.c.name == 'opensuse',
- sources.c.suite == bindparam('suite'),
- sources.c.architecture == bindparam('arch')
+# just insert everything for now, in a single transaction
+
+with conn_db.begin() as transaction:
+ log.info('Dropping old data…')
+ d = results.delete().where(results.c.package_id.in_(
+ select(sources.c.id).select_from(sources).where(
+ sources.c.distribution == distro_id
+ )
+ ))
+ conn_db.execute(d)
+ d = sources.delete().where(sources.c.distribution == distro_id)
+ conn_db.execute(d)
+
+ log.info('Injecting new source packages…')
+ conn_db.execute(sources.insert(), pkgs)
+
+ log.info('Injecting build results…')
+ cur_pkgs = select(
+ sources.c.id, sources.c.name, sources.c.version,
+ sources.c.suite, sources.c.architecture
+ ).select_from(
+ sources.join(distributions)
+ ).where(
+ and_(
+ distributions.c.name == 'opensuse',
+ sources.c.suite == bindparam('suite'),
+ sources.c.architecture == bindparam('arch')
+ )
+ )
+ cur_pkgs = conn_db.execute(
+ cur_pkgs.params({'suite': 'factory', 'arch': 'x86_64'})
)
-)
-cur_pkgs = query_db(cur_pkgs.params({'suite': 'factory', 'arch': 'x86_64'}))
-builds = []
-for pkg in cur_pkgs:
- # (id, name, version, suite, architecture)
- data = pkgs_b[(pkg[1], pkg[2])]
- if data['status'] == 'nobinaries':
- continue
- pkg_status = data['status'].\
- replace('unreproducible', 'FTBR').\
- replace('notforus', 'NFU').\
- replace('waitdep', 'depwait')
- p = {
- 'package_id': pkg[0],
- 'version': pkg[2],
- 'status': pkg_status,
- 'build_date': data['build_date'],
- 'build_duration': data['build_duration'],
- 'job': 'external',
- }
- builds.append(p)
-if builds:
- transaction = conn_db.begin()
- conn_db.execute(results.insert(), builds)
-transaction.commit()
+ builds = []
+ for pkg in cur_pkgs:
+ # (id, name, version, suite, architecture)
+ data = pkgs_b[(pkg[1], pkg[2])]
+ if data['status'] == 'nobinaries':
+ continue
+ pkg_status = data['status'].\
+ replace('unreproducible', 'FTBR').\
+ replace('notforus', 'NFU').\
+ replace('waitdep', 'depwait')
+ p = {
+ 'package_id': pkg[0],
+ 'version': pkg[2],
+ 'status': pkg_status,
+ 'build_date': data['build_date'],
+ 'build_duration': data['build_duration'],
+ 'job': 'external',
+ }
+ builds.append(p)
+ if builds:
+ conn_db.execute(results.insert(), builds)
+ transaction.commit()
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/compare/cc77f894b8ea15eef365f30d94e08bab8b0d771b...bc5a1deb4b6d6ddacd008e3c87d7ebcccc671e73
--
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/compare/cc77f894b8ea15eef365f30d94e08bab8b0d771b...bc5a1deb4b6d6ddacd008e3c87d7ebcccc671e73
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/qa-jenkins-scm/attachments/20250811/0bc5acc5/attachment-0001.htm>
More information about the Qa-jenkins-scm
mailing list