[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] Use dak's facility for sending email. Add bts-categorize to cron.dinstall



Signed-off-by: Mike O'Connor <stew@vireo.org>
---
 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 403a03f..afa2571 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 11fc18c..1a4548e 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 0000000..7f43e1a
--- /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__
-- 
1.5.6.5



Reply to: