X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fshow_deferred.py;h=2c88030c5f5a80fae91f64c11f6962d805f79c82;hb=026bdb9580e6d18bf504d2f44d46890df5d89f1a;hp=7352f71ea928d6bec94ee0b9654d339b174fa3f1;hpb=f8783d3e7d165814889a64278dc31388b99c0b89;p=dak.git diff --git a/dak/show_deferred.py b/dak/show_deferred.py index 7352f71e..2c88030c 100755 --- a/dak/show_deferred.py +++ b/dak/show_deferred.py @@ -24,25 +24,13 @@ import sys, os, re, time import apt_pkg import rrdtool -try: - # starting with squeeze - from debian import deb822 -except: - # up to lenny - from debian_bundle import deb822 +from debian import deb822 from daklib.dbconn import * +from daklib.gpg import SignedFile from daklib import utils from daklib.regexes import re_html_escaping, html_escaping -################################################################################ -### work around bug #487902 in debian-python 0.1.10 -deb822.Changes._multivalued_fields = { - "files": [ "md5sum", "size", "section", "priority", "name" ], - "checksums-sha1": ["sha1", "size", "name"], - "checksums-sha256": ["sha256", "size", "name"], - } - ################################################################################ row_number = 1 @@ -57,32 +45,32 @@ def header(): Deferred uploads to Debian - +
- - - - Debian Project + + + + Debian Project

- Deferred uploads to Debian -
- -
@@ -91,12 +79,6 @@ def header(): def footer(): res = "

Timestamp: %s (UTC)

" % (time.strftime("%d.%m.%Y / %H:%M:%S", time.gmtime())) res += "

There are graphs about the queues available.

" - res += """ - Valid HTML 4.01! - - Valid CSS! - """ res += "" return res.encode('utf-8') @@ -112,15 +94,16 @@ def table_header(): """ def table_footer(): - return '

non-NEW uploads are available, see the UploadQueue-README for more information.


\n' + return '

non-NEW uploads are available (machine readable version), see the UploadQueue-README for more information.


\n' -def table_row(changesname, delay, changed_by, closes): +def table_row(changesname, delay, changed_by, closes, fingerprint): global row_number res = ''%((row_number%2) and 'odd' or 'even') - res += (3*'%s')%tuple(map(html_escape,(changesname,delay,changed_by))) + res += (2*'%s')%tuple(map(html_escape,(changesname,delay))) + res += '%s
Fingerprint: %s' % (html_escape(changed_by), fingerprint) res += ('%s' % - ''.join(map(lambda close: '#%s
' % (close, close),closes))) + ''.join(map(lambda close: '#%s
' % (close, close),closes))) res += '\n' row_number+=1 return res @@ -193,6 +176,8 @@ def get_upload_data(changesfn): uploader = achanges.get('changed-by') uploader = re.sub(r'^\s*(\S.*)\s+<.*>',r'\1',uploader) + with utils.open_file(changesfn) as f: + fingerprint = SignedFile(f.read(), keyrings=get_active_keyring_paths(), require_signature=False).fingerprint if Cnf.has_key("Show-Deferred::LinkPath"): isnew = 0 suites = get_suites_source_in(achanges['source']) @@ -215,7 +200,7 @@ def get_upload_data(changesfn): if os.path.exists(qfn): os.symlink(qfn,lfn) os.chmod(qfn, 0o644) - return (max(delaydays-1,0)*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes','').split(),achanges, delaydays) + return (max(delaydays-1,0)*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes','').split(), fingerprint, achanges, delaydays) def list_uploads(filelist, rrd_dir): uploads = map(get_upload_data, filelist) @@ -224,7 +209,7 @@ def list_uploads(filelist, rrd_dir): print header() if uploads: print table_header() - print ''.join(map(lambda x: table_row(*x[1:5]), uploads)).encode('utf-8') + print ''.join(map(lambda x: table_row(*x[1:6]), uploads)).encode('utf-8') print table_footer() else: print '

Currently no deferred uploads to Debian

' @@ -236,13 +221,14 @@ def list_uploads(filelist, rrd_dir): try: counts = [0]*16 for u in uploads: - counts[u[6]] += 1 + counts[u[7]] += 1 print >> f, "Changes-file: %s"%u[1] fields = """Location: DEFERRED Delayed-Until: %s -Delay-Remaining: %s"""%(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()+u[0])),u[2]) +Delay-Remaining: %s +Fingerprint: %s"""%(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()+u[0])),u[2], u[5]) print >> f, fields - encoded = unicode(u[5]).encode('utf-8') + encoded = unicode(u[6]).encode('utf-8') print >> f, encoded.rstrip() open(os.path.join(Cnf["Show-Deferred::LinkPath"],u[1]),"w").write(encoded+fields+'\n') print >> f @@ -274,7 +260,7 @@ def init(): ("p","link-path","Show-Deferred::LinkPath","HasArg"), ("d","deferred-queue","Show-Deferred::DeferredQueue","HasArg"), ('r',"rrd","Show-Deferred::Options::Rrd", "HasArg")] - args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) + args = apt_pkg.parse_commandline(Cnf,Arguments,sys.argv) for i in ["help"]: if not Cnf.has_key("Show-Deferred::Options::%s" % (i)): Cnf["Show-Deferred::Options::%s" % (i)] = "" @@ -283,7 +269,7 @@ def init(): print >> sys.stderr, """Show-Deferred::%s is mandatory. set via config file or command-line option %s"""%(i,j) - Options = Cnf.SubTree("Show-Deferred::Options") + Options = Cnf.subtree("Show-Deferred::Options") if Options["help"]: usage()