def announce_accept(upload): """ Announce an upload. @type upload: L{daklib.upload.Source} or L{daklib.upload.Binary} @param upload: upload to handle """ cnf = Config() subst = _subst_for_upload(upload) whitelists = _whitelists(upload) 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: if suite.policy_queue: suite_names.append("{0}->{1}".format(suite.suite_name, suite.policy_queue.queue_name)) else: suite_names.append(suite.suite_name) suite_names.extend(suite.suite_name for suite in upload.from_policy_suites) subst['__SUITE__'] = ', '.join(suite_names) or '(none)' message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.accepted')) send_mail(message, whitelists=whitelists) if accepted_to_real_suite and upload.sourceful: # send mail to announce lists and tracking server 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) # according to #890944 this email shall be sent to dispatch@<TrackingServer> to avoid # bouncing emails # the package email alias is not yet created shortly after accepting the package tracker = cnf.get('Dinstall::TrackingServer') if tracker: announce_list_address = "{0}\nBcc: dispatch@{1}".format(announce_list_address, tracker) 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')) send_mail(message, whitelists=whitelists) 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(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.bug-close')) 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 is None or suite in upload.from_policy_suites for suite in upload.suites) suite_names = [] for suite in upload.suites: if suite.policy_queue: suite_names.append("{0}->{1}".format(suite.suite_name, suite.policy_queue.queue_name)) else: suite_names.append(suite.suite_name) suite_names.extend(suite.suite_name for suite in upload.from_policy_suites) subst['__SUITE__'] = ', '.join(suite_names) or '(none)' message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.accepted')) send_mail(message, whitelists=whitelists) if accepted_to_real_suite and upload.sourceful: # senf mail to announce lists and tracking server 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}\nBcc: {1}@{2}".format(announce_list_address, upload.source, tracking) 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')) send_mail(message, whitelists=whitelists) 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(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.bug-close')) send_mail(message, whitelists=whitelists)