[Qa-jenkins-scm] [Git][qa/jenkins.debian.net][master] create per distro JSON reproducible info file

Holger Levsen gitlab at salsa.debian.org
Thu Jun 6 00:01:16 BST 2019



Holger Levsen pushed to branch master at Debian QA / jenkins.debian.net


Commits:
20a7b86c by Jelle van der Waa at 2019-06-05T23:00:57Z
create per distro JSON reproducible info file

The current /debian/reproducible.json file contains other distribution
information as well such as from Arch Linux since the query does not
filter by distro. Resolve this issue by adjusting the SQL query to
filter on the passed distro which defaults to 'debian' if --distro is
not provided as argument. Due to the scripts logic, the created json
files will end up in the distro specific directories.

Signed-off-by: Holger Levsen <holger at layer-acht.org>

- - - - -


2 changed files:

- bin/rblib/__init__.py
- bin/reproducible_json.py


Changes:

=====================================
bin/rblib/__init__.py
=====================================
@@ -4,7 +4,7 @@
 # Copyright © 2015-2017 Holger Levsen <holger at layer-acht.org>
 # Licensed under GPL-2
 
-from sqlalchemy import Table
+from sqlalchemy import Table, text
 from sqlalchemy.exc import NoSuchTableError, OperationalError
 
 from .confparse import log
@@ -75,3 +75,12 @@ def get_trailing_bug_icon(bug, bugs, package=None):
         except KeyError:
             pass
     return html
+
+
+def get_distribution_id(distroname):
+    query = text("SELECT id FROM distributions WHERE name=:distroname")
+    result = query_db(query, distroname=distroname)
+    if not result:
+        return
+
+    return result[0][0]


=====================================
bin/reproducible_json.py
=====================================
@@ -18,10 +18,12 @@ apt_pkg.init_system()
 import tempfile
 import subprocess
 
-from rblib import query_db
+from sqlalchemy.sql import text
+
+from rblib import query_db, get_distribution_id
 from rblib.confparse import log
 from rblib.const import (
-    DISTRO_URL,
+    DISTRO, DISTRO_URL,
     REPRODUCIBLE_JSON, REPRODUCIBLE_TRACKER_JSON,
     filter_query,
 )
@@ -29,15 +31,17 @@ from rblib.const import (
 output = []
 output4tracker = []
 
-log.info('Creating json dump of current reproducible status')
+log.info('Creating json dump of current reproducible status for %s', DISTRO)
+
+distro_id = get_distribution_id(DISTRO)
 
 # filter_query is defined in reproducible_common.py and excludes some FTBFS issues
-query = "SELECT s.name, r.version, s.suite, s.architecture, r.status, r.build_date " + \
+query = text("SELECT s.name, r.version, s.suite, s.architecture, r.status, r.build_date " + \
         "FROM results AS r JOIN sources AS s ON r.package_id = s.id "+ \
-        "WHERE status != '' AND status NOT IN ('NFU', 'E404', 'blacklisted' ) AND (( status != 'FTBFS' ) OR " \
-        " ( status = 'FTBFS' and r.package_id NOT IN (SELECT n.package_id FROM NOTES AS n WHERE " + filter_query + " )))"
+        "WHERE status != '' AND s.distribution = :distro AND status NOT IN ('NFU', 'E404', 'blacklisted' ) AND (( status != 'FTBFS' ) OR " \
+        " ( status = 'FTBFS' and r.package_id NOT IN (SELECT n.package_id FROM NOTES AS n WHERE " + filter_query + " )))")
 
-result = sorted(query_db(query))
+result = sorted(query_db(query, distro=distro_id))
 log.info('\tprocessing ' + str(len(result)))
 
 keys = ['package', 'version', 'suite', 'architecture', 'status', 'build_date']



View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/commit/20a7b86ce0a26bd8f8718478c8e8a1612c0af87e

-- 
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/commit/20a7b86ce0a26bd8f8718478c8e8a1612c0af87e
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/20190605/94b4b466/attachment-0001.html>


More information about the Qa-jenkins-scm mailing list