# program
program = "unknown-program"
+ warnings = []
+
def _subst_for_upload(upload):
cnf = Config()
'__SOURCE__': upload.source,
'__VERSION__': upload.version,
'__ARCHITECTURE__': upload.architecture,
+ '__WARNINGS__': '\n'.join(upload.warnings),
}
override_maintainer = cnf.get('Dinstall::OverrideMaintainer')
return subst
+def _whitelists(upload):
+ return [ s.mail_whitelist for s in upload.suites ]
+
def announce_reject(upload, reason, rejected_by=None):
cnf = Config()
subst = _subst_for_upload(upload)
+ whitelists = _whitelists(upload)
automatic = rejected_by is None
subst['__BCC__'] = '{0}\nBcc: {1}'.format(subst['__BCC__'], cnf['Dinstall::MyEmailAddress'])
message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'queue.rejected'))
- send_mail(message)
+ send_mail(message, whitelists=whitelists)
def announce_accept(upload):
cnf = Config()
subst = _subst_for_upload(upload)
+ whitelists = _whitelists(upload)
- accepted_to_real_suite = any(suite.policy_queue in None for suite in upload.suites)
+ accepted_to_real_suite = any(suite.policy_queue is None or suite in upload.from_policy_suites for suite in upload.suites)
suite_names = []
for suite in upload.suites:
subst['__SUITE__'] = ', '.join(suite_names) or '(none)'
message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.accepted'))
- send_mail(message)
+ send_mail(message, whitelists=whitelists)
if accepted_to_real_suite and upload.sourceful:
# senf mail to announce lists and tracking server
- announce = set(suite.announce or [] for suite in upload.suites if suite.policy_queue is None)
+ announce = set()
+ for suite in upload.suites:
+ if suite.policy_queue is None or suite in upload.from_policy_suites:
+ announce.update(suite.announce or [])
+
announce_list_address = ", ".join(announce)
tracking = cnf.get('Dinstall::TrackingServer')
if tracking:
- announce_list_address = "{0}\n{1}@{2}".format(announce_list_address, upload.source, tracking)
+ announce_list_address = "{0}\nBcc: {1}@{2}".format(announce_list_address, upload.source, tracking)
- my_subst = subst.copy()
- my_subst['__ANNOUNCE_LIST_ADDRESS__'] = announce_list_address
+ if len(announce_list_address) != 0:
+ my_subst = subst.copy()
+ my_subst['__ANNOUNCE_LIST_ADDRESS__'] = announce_list_address
- message = TemplateSubst(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce'))
- utils.send_mail(message)
+ message = TemplateSubst(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce'))
+ send_mail(message, whitelists=whitelists)
- if accepted_to_real_suite and upload.sourceful and cnf.find_b('Dinstall::CloseBugs'):
+ close_bugs_default = cnf.find_b('Dinstall::CloseBugs')
+ close_bugs = any(s.close_bugs if s.close_bugs is not None else close_bugs_default for s in upload.suites)
+ if accepted_to_real_suite and upload.sourceful and close_bugs:
for bug in upload.bugs:
my_subst = subst.copy()
my_subst['__BUG_NUMBER__'] = str(bug)
- message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.bug-close'))
- send_mail(message)
+ message = TemplateSubst(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.bug-close'))
+ send_mail(message, whitelists=whitelists)
def announce_new(upload):
cnf = Config()
subst = _subst_for_upload(upload)
+ whitelists = _whitelists(upload)
message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.new'))
- send_mail(message)
+ send_mail(message, whitelists=whitelists)