X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fshow_deferred.py;h=809762264532ab4f47517d49e02f3f3e77af4024;hb=5a61a05250b1bf5d54661103e8999eb7c7fc9207;hp=e7dded0f92393f846e88fad9f8aeebac4eabe84b;hpb=6b3c8ccbd61325e2b833ed252b5545a190bff92f;p=dak.git diff --git a/dak/show_deferred.py b/dak/show_deferred.py index e7dded0f..80976226 100755 --- a/dak/show_deferred.py +++ b/dak/show_deferred.py @@ -27,6 +27,7 @@ import rrdtool 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 @@ -52,32 +53,32 @@ def header(): Deferred uploads to Debian - +
- - - - Debian Project + + + + Debian Project

- Deferred uploads to Debian -
- -
@@ -86,12 +87,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') @@ -107,15 +102,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 @@ -188,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']) @@ -210,7 +208,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) @@ -219,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)).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

' @@ -231,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