changes for 3.0
[monitor.git] / mailer.py
index 5fc0320..7c9ff11 100755 (executable)
--- a/mailer.py
+++ b/mailer.py
@@ -7,16 +7,16 @@
 # $Id: mailer.py,v 1.10 2007/08/08 13:28:06 soltesz Exp $
 from emailTxt import *
 import smtplib
-from config import config
+import config
+import calendar
 import logging
 import os
 import time
 
-config = config()
 logger = logging.getLogger("monitor")
 
 MTA="localhost"
-FROM="monitor@planet-lab.org"
+FROM=config.email
 
 def reformat_for_rt(text):
        lines = text.split("\n")
@@ -27,11 +27,11 @@ def reformat_for_rt(text):
                
 
 def _setupRTenvironment():
-       os.environ['PATH'] = os.environ['PATH'] + ":/home/soltesz/local/bin/"
-       os.environ['RTSERVER'] = "https://rt.planet-lab.org/"
-       os.environ['RTUSER']   = "monitor"
-       os.environ['RTPASSWD'] = "ssorcmor"
-       os.environ['RTDEBUG'] = "0"
+       os.environ['PATH'] = os.environ['PATH'] + ":" + config.RT_WEB_TOOLS_PATH
+       os.environ['RTSERVER'] = config.RT_WEB_SERVER
+       os.environ['RTUSER']   = config.RT_WEB_USER
+       os.environ['RTPASSWD'] = config.RT_WEB_PASSWORD
+       os.environ['RTDEBUG'] = config.RT_WEB_DEBUG
        return
 
 def setTicketStatus(ticket_id, status):
@@ -50,7 +50,7 @@ def getTicketStatus(ticket_id):
        if ticket_id == None or ticket_id == "":
                return {}
 
-       cmd = "rt show -t ticket -f id,subject,status,queue %s" % (ticket_id)
+       cmd = "rt show -t ticket -f id,subject,status,queue,created %s" % (ticket_id)
        (f_in, f_out, f_err) = os.popen3(cmd)
        value = f_out.read()
        l_values = value.split('\n')
@@ -59,8 +59,10 @@ def getTicketStatus(ticket_id):
                if len(line) == 0: continue
                vals = line.split(':')
                key = vals[0]
-               r_values[key] = "".join(vals[1:])
+               r_values[key] = ":".join(vals[1:])
                r_values[key] = r_values[key].strip()
+
+       r_values['Created'] = calendar.timegm(time.strptime(r_values['Created']))
        return r_values
 
 def setAdminCCViaRT(ticket_id, to):
@@ -168,7 +170,7 @@ def closeTicketViaRT(ticket_id, comment):
        return
 
 def emailViaRT(subject, text, to, ticket_id=None):
-       if ticket_id == None or ticket_id == "":
+       if ticket_id == None or ticket_id == "" or ticket_id == 0:
                print "No TICKET"
                return emailViaRT_NoTicket(subject, text, to)
 
@@ -214,9 +216,9 @@ def emailViaRT_NoTicket(subject, text, to):
        # NOTE: AdminCc: (in PLC's RT configuration) gets an email sent.
        # This is not the case (surprisingly) for Cc:
        input_text  = "Subject: %s\n"
-       input_text += "Requestor: monitor@planet-lab.org\n"
+       input_text += "Requestor: %s\n"% FROM
        input_text += "id: ticket/new\n"
-       input_text += "Queue: Monitor\n"
+       input_text += "Queue: %s\n" % config.RT_QUEUE
        for recipient in to:
                input_text += "AdminCc: %s\n" % recipient
        input_text += "Text: %s"
@@ -284,7 +286,7 @@ def email(subject, text, to):
        if config.bcc and not config.debug:
                writer.addheader("Bcc", config.email)
 
-       writer.addheader("Reply-To", 'monitor@planet-lab.org')
+       writer.addheader("Reply-To", FROM)
                
        writer.addheader("MIME-Version", "1.0")
        #
@@ -355,7 +357,7 @@ if __name__=="__main__":
        #         "soltesz@cs.utk.edu")
        email("Re: [PL #21323] TEST 7", 
                           mailtxt.newbootcd_one[1] % {'hostname_list':"hostname list..."},
-                          ['monitor@planet-lab.org'])
+                          [FROM])
        #print "ticketid: %d" % id
        #id = plc.siteId(["alice.cs.princeton.edu"])
        #print id