[Qa-jenkins-scm] [jenkins.debian.net] 03/04: reproducible: remote_scheduler: accept a -a/--architecture flag to specify in which arch schedule

Holger Levsen holger at moszumanska.debian.org
Fri Aug 7 12:45:09 UTC 2015


This is an automated email from the git hooks/post-receive script.

holger pushed a commit to branch master
in repository jenkins.debian.net.

commit ffcec1a46b5aa3ed57c519f0280fa698b2c2ebec
Author: Mattia Rizzolo <mattia at mapreri.org>
Date:   Wed Aug 5 13:27:21 2015 +0000

    reproducible: remote_scheduler: accept a -a/--architecture flag to specify in which arch schedule
---
 bin/reproducible_remote_scheduler.py | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/bin/reproducible_remote_scheduler.py b/bin/reproducible_remote_scheduler.py
index d81ba90..fb7a01b 100755
--- a/bin/reproducible_remote_scheduler.py
+++ b/bin/reproducible_remote_scheduler.py
@@ -33,6 +33,8 @@ parser.add_argument('-m', '--message', default='', nargs='+',
                     ' about the scheduling')
 parser.add_argument('-s', '--suite', required=True,
                     help='Specify the suite to schedule in')
+parser.add_argument('-a', '--architecture', required=False, default='unstable',
+                    help='Specify the architecture to schedule for')
 parser.add_argument('-r', '--status', required=False,
                     help='Schedule all package with this status')
 parser.add_argument('-i', '--issue', required=False,
@@ -65,6 +67,7 @@ except KeyError:
     local = False
 
 suite = scheduling_args.suite
+arch = scheduling_args.architecture
 reason = ' '.join(scheduling_args.message)
 issue = scheduling_args.issue
 status = scheduling_args.status
@@ -89,11 +92,17 @@ log.debug('Status: ' + status if status else str(None))
 log.debug('Date: after ' + built_after if built_after else str(None) +
           ' before ' + built_before if built_before else str(None))
 log.debug('Suite: ' + suite)
+log.debug('Architecture: ' + arch)
 log.debug('Packages: ' + ' '.join(packages))
 
 if suite not in SUITES:
     log.critical('The specified suite is not being tested.')
-    log.critical('Please chose between ' + ', '.join(SUITES))
+    log.critical('Please choose between ' + ', '.join(SUITES))
+    sys.exit(1)
+
+if arch not in ARCHS:
+    log.critical('The specified architecture is not being tested.')
+    log.critical('Please choose between ' + ', '.join(ARCHS))
     sys.exit(1)
 
 if issue or status or built_after or built_before:
@@ -123,9 +132,10 @@ if issue or status or built_after or built_before:
 if len(packages) > 50 and notify:
     log.critical(bcolors.RED + bcolors.BOLD)
     call(['figlet', 'No.'])
-    log.critical(bcolors.FAIL + 'Do not reschedule more than 50 packages ' +
-                 'with notification.\nIf you think you need to do this, ' +
-                 'please discuss this with the IRC channel first.' + bcolors.ENDC)
+    log.critical(bcolors.FAIL + 'Do not reschedule more than 50 packages ',
+                 'with notification.\nIf you think you need to do this, ',
+                 'please discuss this with the IRC channel first.',
+                 bcolors.ENDC)
     sys.exit(1)
 
 if artifacts:
@@ -138,16 +148,18 @@ if debug_url:
 ids = []
 pkgs = []
 
-query1 = 'SELECT id FROM sources WHERE name="{pkg}" AND suite="{suite}"'
+query1 = '''SELECT id FROM sources WHERE name="{pkg}" AND suite="{suite}"
+            AND architecture="{arch}"'''
 query2 = '''SELECT p.date_build_started
             FROM sources AS s JOIN schedule as p ON p.package_id=s.id
-            WHERE s.name="{pkg}" AND suite="{suite}"'''
+            WHERE s.name="{pkg}"
+            AND s.suite="{suite}" AND s.architecture="{arch}"'''
 for pkg in packages:
     # test whether the package actually exists
-    result = query_db(query1.format(pkg=pkg, suite=suite))
+    result = query_db(query1.format(pkg=pkg, suite=suite, arch=arch))
     try:
         # tests whether the package is already building
-        result2 = query_db(query2.format(pkg=pkg, suite=suite))
+        result2 = query_db(query2.format(pkg=pkg, suite=suite, arch=arch))
         try:
             if not result2[0][0]:
                 ids.append(result[0][0])
@@ -159,7 +171,8 @@ for pkg in packages:
             ids.append(result[0][0])
             pkgs.append(pkg)
     except IndexError:
-        log.critical('The package ' + pkg + ' is not available in ' + suite)
+        log.critical('The package %s is not available in %s/%s',
+                     pkg, suite, arch)
         sys.exit(1)
 
 blablabla = '✂…' if len(' '.join(pkgs)) > 257 else ''
@@ -168,8 +181,8 @@ trailing = ' - artifacts will be preserved' if artifacts else ''
 trailing += ' - with irc notification' if notify else ''
 trailing += ' - notify on start too' if debug_url else ''
 
-message = str(len(ids)) + packages_txt + 'scheduled in ' + suite + ' by ' + \
-    requester
+message = str(len(ids)) + packages_txt + 'scheduled in ' + suite + '/' + \
+    arch + ' by ' + requester
 if reason:
     message += ' (reason: ' + reason + ')'
 message += ': ' + ' '.join(pkgs)[0:256] + blablabla + trailing

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/qa/jenkins.debian.net.git



More information about the Qa-jenkins-scm mailing list