X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fmanage_build_queues.py;h=e9486adfcdbf87ea3313f95cecb39f096a577067;hb=64d62bfb23973c73c968b8759cbaddf97ced1ddc;hp=402521f0f4105afd2cac2d4175b42be26d151706;hpb=c55d086c0c8463fcd2d8dcee2dcc6c414ee36d91;p=dak.git diff --git a/dak/manage_build_queues.py b/dak/manage_build_queues.py index 402521f0..e9486adf 100755 --- a/dak/manage_build_queues.py +++ b/dak/manage_build_queues.py @@ -1,8 +1,12 @@ #!/usr/bin/env python -"""Manage build queues""" -# Copyright (C) 2000, 2001, 2002, 2006 James Troup -# Copyright (C) 2009 Mark Hymers +""" Manage build queues + +@contact: Debian FTPMaster +@copyright: 2000, 2001, 2002, 2006 James Troup +@copyright: 2009 Mark Hymers + +""" # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,7 +24,10 @@ ################################################################################ -import os, os.path, stat, sys +import os +import os.path +import stat +import sys from datetime import datetime import apt_pkg @@ -39,8 +46,8 @@ def usage (exit_code=0): print """Usage: dak manage-build-queues [OPTIONS] buildqueue1 buildqueue2 Manage the contents of one or more build queues + -a, --all run on all known build queues -n, --no-action don't do anything - -v, --verbose explain what is being done -h, --help show this help and exit""" sys.exit(exit_code) @@ -52,13 +59,13 @@ def main (): cnf = Config() - for i in ["Help", "No-Action", "Verbose" ]: + for i in ["Help", "No-Action", "All"]: if not cnf.has_key("Manage-Build-Queues::Options::%s" % (i)): cnf["Manage-Build-Queues::Options::%s" % (i)] = "" Arguments = [('h',"help","Manage-Build-Queues::Options::Help"), ('n',"no-action","Manage-Build-Queues::Options::No-Action"), - ('v',"verbose","Manage-Build-Queues::Options::Verbose")] + ('a',"all","Manage-Build-Queues::Options::All")] queue_names = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv) Options = cnf.SubTree("Manage-Build-Queues::Options") @@ -70,15 +77,27 @@ def main (): starttime = datetime.now() + session = DBConn().session() + + if Options["All"]: + if len(queue_names) != 0: + print "E: Cannot use both -a and a queue_name" + sys.exit(1) + queues = session.query(BuildQueue).all() + + else: + queues = [] + for q in queue_names: + queue = get_build_queue(q.lower(), session) + if queue: + queues.append(queue) + else: + Logger.log(['cannot find queue %s' % q]) + # For each given queue, look up object and call manage_queue - for q in queue_names: - session = DBConn().session() - queue = get_build_queue(q.lower(), session) - if queue: - Logger.log(['cleaning queue %s using datetime %s' % (q, starttime)]) - queue.clean_and_update(starttime) - else: - Logger.log(['cannot find queue %s' % q]) + for q in queues: + Logger.log(['cleaning queue %s using datetime %s' % (q.queue_name, starttime)]) + q.clean_and_update(starttime, Logger, dryrun=Options["No-Action"]) Logger.close()