+ # Have we already processed this?
+ if os.path.exists(htmlfile) and \
+ os.stat(htmlfile).st_mtime > time.mktime(changes.created.timetuple()):
+ with open(htmlfile, "r") as fd:
+ if fd.read() != timeout_str:
+ sources.append(htmlname)
+ return (PROC_STATUS_SUCCESS,
+ '%s already up-to-date' % htmlfile)
+
+ # Go, process it... Now!
+ htmlfiles_to_process.append(htmlfile)
+ sources.append(htmlname)
+
+ group = cnf.get('Dinstall::UnprivGroup') or None
+
+ with open(htmlfile, 'w') as outfile:
+ with policy.UploadCopy(upload, group=group) as upload_copy:
+ handler = policy.PolicyQueueUploadHandler(upload, session)
+ missing = [ (o['type'], o['package']) for o in handler.missing_overrides() ]
+ distribution = changes.distribution
+
+ print >>outfile, html_header(changes.source, missing)
+ print >>outfile, examine_package.display_changes(distribution, origchanges)
+
+ if upload.source is not None and ('dsc', upload.source.source) in missing:
+ fn = os.path.join(upload_copy.directory, upload.source.poolfile.basename)
+ print >>outfile, examine_package.check_dsc(distribution, fn, session)
+ for binary in upload.binaries:
+ if (binary.binarytype, binary.package) not in missing:
+ continue
+ fn = os.path.join(upload_copy.directory, binary.poolfile.basename)
+ print >>outfile, examine_package.check_deb(distribution, fn, session)
+
+ print >>outfile, html_footer()