X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=dak%2Fshow_deferred.py;h=57e9c8a3780d443cf49b7ecd235487ffcefc36be;hp=dce80987bd3d72238c466bb877fbf3e2a7241659;hb=03a86547e5d9b209016cc0b23f825d3baea92f8c;hpb=173b0b8062b4f717c60ab82fb8dd7af3adde2558 diff --git a/dak/show_deferred.py b/dak/show_deferred.py index dce80987..57e9c8a3 100755 --- a/dak/show_deferred.py +++ b/dak/show_deferred.py @@ -24,14 +24,10 @@ 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 @@ -57,32 +53,32 @@ def header(): Deferred uploads to Debian - +
- - - - Debian Project + + + + Debian Project

- Deferred uploads to Debian -
- -
@@ -91,14 +87,8 @@ 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 + return res.encode('utf-8') def table_header(): return """

Deferred uploads

@@ -114,13 +104,14 @@ def table_header(): def table_footer(): return '

non-NEW uploads are available, 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 @@ -173,7 +164,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 @@ -193,6 +184,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']) @@ -214,8 +207,8 @@ def get_upload_data(changesfn): os.unlink(lfn) if os.path.exists(qfn): os.symlink(qfn,lfn) - os.chmod(qfn, 0644) - return (max(delaydays-1,0)*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes','').split(),achanges, delaydays) + os.chmod(qfn, 0o644) + 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 +217,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)) + 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 +229,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 +268,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 +277,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()