From b07b1b8a998812133d4ef5348da78a5f4b3b239f Mon Sep 17 00:00:00 2001 From: Mike O'Connor Date: Sun, 25 Jan 2009 11:16:28 -0500 Subject: [PATCH] Use dak's facility for sending email. Add bts-categorize to cron.dinstall Signed-off-by: Mike O'Connor --- config/debian/cron.dinstall | 3 ++ dak/bts_categorize.py | 60 ++++++++++++++++--------------------- templates/bts-categorize | 6 ++++ 3 files changed, 34 insertions(+), 35 deletions(-) create mode 100644 templates/bts-categorize diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall index 403a03fd..afa25710 100755 --- a/config/debian/cron.dinstall +++ b/config/debian/cron.dinstall @@ -256,6 +256,9 @@ ts "reports" echo "Updating DM html page" $scriptsdir/dm-monitor >$webdir/dm-uploaders.html +echo "Categorizing uncategorized bugs filed against ftp.debian.org" +dak bts-categorize + ################################################################################ # Push katie@merkel so it syncs the projectb there. Returns immediately, the sync runs detached diff --git a/dak/bts_categorize.py b/dak/bts_categorize.py index 11fc18c6..1a4548e6 100755 --- a/dak/bts_categorize.py +++ b/dak/bts_categorize.py @@ -22,19 +22,19 @@ ################################################################################ ################################################################################ +import sys +import re +import logging +log = logging.getLogger() + +import apt_pkg +from daklib import utils +from btsutils.debbugs import debbugs + def usage(): print """ SYNOPSIS - dak bts-categorize [options] command - -COMMANDS - list-categories - List the currently defind categorizations for bugs - - categorize - Find the bugs filed against ftp.debian.org which have no usertag - and see if we can categorize the bug by adding a usertag by matching - the subject against a list of regexps. + dak bts-categorize [options] OPTIONS -s @@ -60,15 +60,6 @@ arguments = [('s','simulate','BtsCategorize::Options::Simulate'), ('q', 'quiet', 'BtsCategorize::Options::Quiet'), ('h', 'help', 'BtsCategorize::Options::Help')] -import sys -import re -import logging -log = logging.getLogger() - -import apt_pkg -from daklib import utils -from btsutils.debbugs import debbugs - class BugClassifier(object): """ classify bugs using usertags based on the bug subject lines @@ -130,22 +121,24 @@ class BugClassifier(object): for bug in bc.unclassified_bugs(): controls += bc.classify_bug(bug) - if controls: - return 'user ftp.debian.org@packages.debian.org\n' + controls + return controls import smtplib import email.Message -def send_email(body): - to = 'control@bugs.debian.org' - sender = 'ak@ries.debian.org' - message = email.Message.Message() - message["To"] = to - message["From"] = sender - message.set_payload(body) - mailServer = smtplib.SMTP('localhost') - mailServer.sendmail(sender, to, message.as_string()) - mailServer.quit() +def send_email(commands, simulate): + global Cnf + + Subst = {'__COMMANDS__' : commands, + "__DAK_ADDRESS__": Cnf["Dinstall::MyAdminAddress"]} + + bts_mail_message = utils.TemplateSubst( + Subst,Cnf["Dir::Templates"]+"/bts-categorize") + + if simulate: + print bts_mail_message + else: + utils.send_mail( bts_mail_message ) def main(): """ @@ -183,10 +176,7 @@ def main(): body = BugClassifier().email_text() if body: - if Options["Simulate"]: - print body - else: - send_email(body) + send_email(body, Options["Simulate"]) else: log.info( "nothing to do" ) diff --git a/templates/bts-categorize b/templates/bts-categorize new file mode 100644 index 00000000..7f43e1ad --- /dev/null +++ b/templates/bts-categorize @@ -0,0 +1,6 @@ +From: __DAK_ADDRESS__ +To: control@bugs.debian.org +X-Debian: DAK + +user ftp.debian.org@packages.debian.org +__COMMANDS__ -- 2.39.5