X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_upload.py;h=727e2e802ea27f5ddfed10157c3a542619699dd6;hb=691ed711258ec04185e9ba8994e9c301564eb847;hp=d20267ec437bc918472da8933aa510456bbe93f0;hpb=78051a3d482cdc0d938f053ad860c0c22b6ec62e;p=dak.git diff --git a/dak/process_upload.py b/dak/process_upload.py index d20267ec..727e2e80 100755 --- a/dak/process_upload.py +++ b/dak/process_upload.py @@ -160,6 +160,7 @@ Checks Debian packages from Incoming ## Queue builds import datetime +import errno from errno import EACCES, EAGAIN import fcntl import os @@ -264,10 +265,7 @@ def subst_for_upload(upload): '__BUG_SERVER__': cnf.get('Dinstall::BugServer'), - # TODO: don't use private member - '__FILE_CONTENTS__': upload.changes._signed_file.contents, - - # __REJECT_MESSAGE__ + '__FILE_CONTENTS__': open(upload.changes.path, 'r').read(), } override_maintainer = cnf.get('Dinstall::OverrideMaintainer') @@ -301,18 +299,23 @@ def accept(directory, upload): utils.send_mail(message) # send mail to announce lists and tracking server - subst = subst_for_upload(upload) - announce = set() - for suite in upload.final_suites: - if suite.policy_queue is None: - continue - announce.update(suite.announce or []) - announce_address = ", ".join(announce) - tracking = cnf.get('Dinstall::TrackingServer') - if tracking and 'source' in upload.changes.architectures: - announce_address = '{0}\nBcc: {1}@{2}'.format(announce_address, control['Source'], tracking) - message = utils.TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce')) - utils.send_mail(message) + if accepted_to_real_suite: + subst = subst_for_upload(upload) + announce = set() + for suite in upload.final_suites: + if suite.policy_queue is not None: + continue + announce.update(suite.announce or []) + announce_address = ", ".join(announce) + + tracking = cnf.get('Dinstall::TrackingServer') + if tracking and 'source' in upload.changes.architectures: + announce_address = '{0}\nBcc: {1}@{2}'.format(announce_address, control['Source'], tracking) + + subst['__ANNOUNCE_LIST_ADDRESS__'] = announce_address + + message = utils.TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce')) + utils.send_mail(message) # Only close bugs for uploads that were not redirected to a policy queue. # process-policy will close bugs for those once they are accepted. @@ -376,6 +379,8 @@ def real_reject(directory, upload, reason=None, notify=True): for fn in files: src = os.path.join(upload.directory, fn) dst = utils.find_next_free(os.path.join(rejectdir, fn)) + if not os.path.exists(src): + continue fs.copy(src, dst) if upload.reject_reasons is not None: