X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fqueue_report.py;h=5fd9288a8c6da8711b48e1eff274f213e169c955;hb=27e00376e81d1c37ff327ee0d39670b266418869;hp=98c80f0af85dd0b50bcbed1e6e8b856b80a2d11e;hpb=472c17c2c894e692f3e53d8e8edbba84e1a23086;p=dak.git diff --git a/dak/queue_report.py b/dak/queue_report.py index 98c80f0a..5fd9288a 100755 --- a/dak/queue_report.py +++ b/dak/queue_report.py @@ -44,7 +44,8 @@ except ImportError: from daklib import utils from daklib.queue import Upload -from daklib.dbconn import DBConn, has_new_comment, DBChange, DBSource, get_uid_from_fingerprint +from daklib.dbconn import DBConn, has_new_comment, DBChange, DBSource, \ + get_uid_from_fingerprint, get_policy_queue from daklib.textutils import fix_maintainer from daklib.dak_exceptions import * @@ -56,7 +57,7 @@ row_number = 0 def usage(exit_code=0): print """Usage: dak queue-report -Prints a report of packages in queue directories (usually new and byhand). +Prints a report of packages in queues (usually new and byhand). -h, --help show this help and exit. -8, --822 writes 822 formated output to the location set in dak.conf @@ -311,7 +312,7 @@ def table_row(source, version, arch, last_mod, maint, distribution, closes, fing try: (login, domain) = sponsor.split("@", 1) print "Sponsor: %s@debian.org
" % (utils.html_escape(login), utils.html_escape(login)) - except Exception, e: + except Exception as e: pass print "Fingerprint: %s" % (fingerprint) @@ -354,7 +355,7 @@ RRA:MAX:0.5:288:795 try: rc = rrdtool.create(*create) ru = rrdtool.update(*update) - except rrdtool.error, e: + except rrdtool.error as e: print('warning: queue_report: rrdtool error, skipping %s.rrd: %s' % (type, e)) except NameError: pass @@ -371,7 +372,7 @@ def process_changes_files(changes_files, type, log, rrd_dir): u.load_changes(filename) cache[filename] = copy(u.pkg.changes) cache[filename]["filename"] = filename - except Exception, e: + except Exception as e: print "WARNING: Exception %s" % e continue # Divide the .changes into per-source groups @@ -437,7 +438,7 @@ def process_changes_files(changes_files, type, log, rrd_dir): session = DBConn().session() dbc = session.query(DBChange).filter_by(changesname=changesbase).one() session.close() - except Exception, e: + except Exception as e: print "Can't find changes file in NEW for %s (%s)" % (changesbase, e) dbc = None @@ -446,7 +447,7 @@ def process_changes_files(changes_files, type, log, rrd_dir): (maintainer["maintainer822"], maintainer["maintainer2047"], maintainer["maintainername"], maintainer["maintaineremail"]) = \ fix_maintainer (j["maintainer"]) - except ParseMaintError, msg: + except ParseMaintError as msg: print "Problems while parsing maintainer address\n" maintainer["maintainername"] = "Unknown" maintainer["maintaineremail"] = "Unknown" @@ -456,7 +457,7 @@ def process_changes_files(changes_files, type, log, rrd_dir): (changeby["changedby822"], changeby["changedby2047"], changeby["changedbyname"], changeby["changedbyemail"]) = \ fix_maintainer (j["changed-by"]) - except ParseMaintError, msg: + except ParseMaintError as msg: (changeby["changedby822"], changeby["changedby2047"], changeby["changedbyname"], changeby["changedbyemail"]) = \ ("", "", "", "") @@ -625,15 +626,15 @@ def main(): # Initialize db so we can get the NEW comments dbconn = DBConn() - directories = [ ] + queue_names = [ ] if Cnf.has_key("Queue-Report::Options::Directories"): for i in Cnf["Queue-Report::Options::Directories"].split(","): - directories.append(i) + queue_names.append(i) elif Cnf.has_key("Queue-Report::Directories"): - directories = Cnf.ValueList("Queue-Report::Directories") + queue_names = Cnf.ValueList("Queue-Report::Directories") else: - directories = [ "byhand", "new" ] + queue_names = [ "byhand", "new" ] if Cnf.has_key("Queue-Report::Options::Rrd"): rrd_dir = Cnf["Queue-Report::Options::Rrd"] @@ -647,9 +648,16 @@ def main(): # Open the report file f = open(Cnf["Queue-Report::ReportLocations::822Location"], "w") - for directory in directories: - changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::%s" % (directory)])) - process_changes_files(changes_files, directory, f, rrd_dir) + session = dbconn.session() + + for queue_name in queue_names: + queue = get_policy_queue(queue_name, session) + if queue: + directory = os.path.abspath(queue.path) + changes_files = glob.glob("%s/*.changes" % (directory)) + process_changes_files(changes_files, os.path.basename(directory), f, rrd_dir) + else: + utils.warn("Cannot find queue %s" % queue_name) if Cnf.has_key("Queue-Report::Options::822"): f.close()