Move share module to common directory, create new job script mail_sender 0.7
authorHasan Wan <hasan.wan@intel.com>
Tue, 7 Aug 2012 04:53:18 +0000 (12:53 +0800)
committerHasan Wan <hasan.wan@intel.com>
Tue, 7 Aug 2012 05:11:31 +0000 (13:11 +0800)
Change-Id: Ibdf28256a4da32ed75deec89d48f9cbd84a16cb8
Signed-off-by: Hasan Wan <hasan.wan@intel.com>
common/__init__.py [new file with mode: 0644]
common/envparas.py [new file with mode: 0644]
common/send_mail.py [moved from send_mail.py with 94% similarity]
envparas.py [deleted file]
mail_sender.py [new file with mode: 0644]

diff --git a/common/__init__.py b/common/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/common/envparas.py b/common/envparas.py
new file mode 100644 (file)
index 0000000..4de1362
--- /dev/null
@@ -0,0 +1,72 @@
+#!/usr/bin/python -tt
+# vim: ai ts=4 sts=4 et sw=4
+
+"""This file will use some environment variables to initialise global variables.
+"""
+
+import os
+
+def export(envargs, local_env):
+    """ Export the environ parameters as python variable """
+    for element in envargs:
+        if element in os.environ.keys():
+            local_env[element]=os.getenv(element)
+            print element
+        else:
+            print "WARN: %s doesn't exist" %(element)
+            local_env[element]=''
+    return local_env
+    
+#envargs = [# General parameters
+#           'OBS_DEST_PROJECT',
+#           'OBS_STAGING_PROJECT',
+#           'POLICY_MAPPING',
+#           'OBS_API_URL',
+#           'OBS_USERNAME',
+#           'OBS_OSCRC_PATH',
+#           'OBS_URL',
+#           'MYSQL_HOSTNAME',
+#           'MYSQL_PORT', 
+#           'MYSQL_USERNAME',
+#           'MYSQL_PASSWORD',
+#           'MYSQL_DB_NAME',
+#           'JENKINS_HOME',
+#           'JOB_NAME',
+#           'BUILD_NUMBER',
+#           'WORKSPACE',
+#           'MAPPING_PROJECT',
+#           'FROM_EMAIL',
+#           'SMTP_SERVER',
+#           'mappingprj',
+#           'rpmlintprj',
+#           'OBS_EVENT_STRING',
+#           'NOREPLY_EMAIL_SENDER',
+#           'MAILINGLIST',
+#           # Change merged event
+#           'GERRIT_BRANCH',
+#           'GERRIT_CHANGE_NUMBER',
+#           'GERRIT_CHANGE_ID',
+#           'GERRIT_PATCHSET_NUMBER',
+#           'GERRIT_PATCHSET_REVISION',
+#           'GERRIT_REFSPEC',
+#           'GERRIT_PROJECT',
+#           'GERRIT_CHANGE_SUBJECT',
+#           'GERRIT_CHANGE_URL',
+#           'GERRIT_CHANGE_OWNER',
+#           'GERRIT_CHANGE_OWNER_NAME',
+#           'GERRIT_CHANGE_OWNER_EMAIL',
+#           'GERRIT_PATCHSET_UPLOADER',
+#           'GERRIT_PATCHSET_UPLOADER_NAME',
+#           'GERRIT_PATCHSET_UPLOADER_EMAIL',
+#           'GERRIT_CHANGE_SUBMITTER',
+#           'GERRIT_CHANGE_SUBMITTER_NAME',
+#           'GERRIT_CHANGE_SUBMITTER_EMAIL',
+#           'GERRIT_HOSTNAME',
+#           'GERRIT_USERNAME',
+#           'GERRIT_SSHPORT',
+#           'GERRIT_EVENT_TYPE',
+#           # Ref updated event
+#           'GERRIT_REFNAME',
+#           'GERRIT_OLDREV',
+#           'GERRIT_NEWREV']
+#
similarity index 94%
rename from send_mail.py
rename to common/send_mail.py
index f75990f..537c9a0 100644 (file)
@@ -10,9 +10,16 @@ from email import Encoders
 from email.Header import Header
 from email.Utils import parseaddr, formataddr
 
-from envparas import *
+def sendmail(from_email, to, msg, smtp_server):
+    try:
+        s = smtplib.SMTP(smtp_server)
+        s.sendmail(from_email, to, msg.as_string())
+        s.quit()
+        print "Email to %s sent succeeded" %(to)
+    except smtplib.SMTPException, e:
+        print "Error: unable to send email: %s" % ( e )
 
-def sendmail(subject = '', body = '', from_email = None, to = [],
+def makemail(subject = '', body = '', from_email = None, to = [],
              cc = [], attachment = None, extra_headers = None):
 
     """Send an email.
@@ -85,11 +92,4 @@ def sendmail(subject = '', body = '', from_email = None, to = [],
         for k in extra_headers:
             msg[k] = extra_headers[k]
 
-    # Send the message via SMTP
-    try:
-        s = smtplib.SMTP(SMTP_SERVER)
-        s.sendmail(from_email, to, msg.as_string())
-        s.quit()
-        print "Email to %s sent succeeded" %(to)
-    except smtplib.SMTPException, e:
-        print "Error: unable to send email: %s" % ( e )
+    return msg
diff --git a/envparas.py b/envparas.py
deleted file mode 100644 (file)
index 24c1e86..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/python -tt
-# vim: ai ts=4 sts=4 et sw=4
-
-"""This file will use some environment variables to initialise global variables.
-"""
-
-import os
-
-envargs = [# General parameters
-           'OBS_DEST_PROJECT',
-           'OBS_STAGING_PROJECT',
-           'POLICY_MAPPING',
-           'OBS_API_URL',
-           'OBS_USERNAME',
-           'OBS_OSCRC_PATH',
-           'OBS_URL',
-           'MYSQL_HOSTNAME',
-           'MYSQL_PORT', 
-           'MYSQL_USERNAME',
-           'MYSQL_PASSWORD',
-           'MYSQL_DB_NAME',
-           'JENKINS_HOME',
-           'JOB_NAME',
-           'BUILD_NUMBER',
-           'WORKSPACE',
-           'MAPPING_PROJECT',
-           'FROM_EMAIL',
-           'SMTP_SERVER',
-           'mappingprj',
-           'rpmlintprj',
-           # Change merged event
-           'GERRIT_BRANCH',
-           'GERRIT_CHANGE_NUMBER',
-           'GERRIT_CHANGE_ID',
-           'GERRIT_PATCHSET_NUMBER',
-           'GERRIT_PATCHSET_REVISION',
-           'GERRIT_REFSPEC',
-           'GERRIT_PROJECT',
-           'GERRIT_CHANGE_SUBJECT',
-           'GERRIT_CHANGE_URL',
-           'GERRIT_CHANGE_OWNER',
-           'GERRIT_CHANGE_OWNER_NAME',
-           'GERRIT_CHANGE_OWNER_EMAIL',
-           'GERRIT_PATCHSET_UPLOADER',
-           'GERRIT_PATCHSET_UPLOADER_NAME',
-           'GERRIT_PATCHSET_UPLOADER_EMAIL',
-           'GERRIT_CHANGE_SUBMITTER',
-           'GERRIT_CHANGE_SUBMITTER_NAME',
-           'GERRIT_CHANGE_SUBMITTER_EMAIL',
-           'GERRIT_HOSTNAME',
-           'GERRIT_USERNAME',
-           'GERRIT_SSHPORT',
-           'GERRIT_EVENT_TYPE',
-           # Ref updated event
-           'GERRIT_REFNAME',
-           'GERRIT_OLDREV',
-           'GERRIT_NEWREV']
-
-__all__ = envargs
-
-for element in envargs:
-    exec(element+'=os.getenv(element)')
diff --git a/mail_sender.py b/mail_sender.py
new file mode 100644 (file)
index 0000000..3e30382
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import os
+from common.send_mail import sendmail, makemail
+
+from common.envparas import export
+
+envparas = ['From',
+            'To',
+            'Cc',
+            'subject',
+            'body',
+            'targetpackage',
+            'template',
+            'reqinfo',
+            'comment',
+            'attachment',
+            'extra_headers',
+            'SMTP_SERVER']
+            
+
+export(envparas, locals())
+
+message = makemail(subject = subject, body = body, from_email = From, to = To,
+         cc = Cc, attachment = attachment, extra_headers = extra_headers)
+
+sendmail(From, To, message, SMTP_SERVER)
+