bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.py
branchRCL_3
changeset 24 d90029decf65
parent 20 a9d4531388d0
child 33 54aa4a06a075
child 34 5e522efbae7b
--- a/bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.py	Wed Mar 31 23:20:42 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-# Script to send xml data to diamonds
-# 
-#
-command_help = """
-Send XML data from file to Diamonds. v.1.23
-Use:
-    send_xml_to_diamonds.py options
-    
-    Mandatory options:
-    -s    Server address
-    -u    Url
-    -f    path of XML file
-    
-    Optional options:
-    -m    Send only mail, without POST connection. Recommend only,
-          when direct POST connection is not available.
-    -o    mail server. Not needed inside Nokia intranet.
-    -h    help
-    
-    Examples:
-    Sending only by mail, without POST. (not recommended)
-        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/ -f c:\\build.xml -m buildtoolsautomation@nokia.com
-    
-    Sending a new build to release instance of Diamonds
-        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/ -f c:\\build.xml
-    
-    Updating test results to existing build
-        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/123/ -f c:\\test.xml
-    
-    Sending data for Relative Change in SW Asset metrics
-        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/metrics/ -f c:\\relative.xml
-    
-    Sending data for Function Coverage
-        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/tests/coverage/ -f c:\\coverage.xml
-    
-    Note: If you want to send XML to development version of Diamonds in testing purposes, use
-    address: trdeli02.nmp.nokia.com:9001 in the server address:
-        send_xml_to_diamonds.py -s trdeli02.nmp.nokia.com:9001 -u /diamonds/builds/ -f c:\\build.xml
-"""
-
-from httplib import *
-import os, sys, time, re
-
-
-def send_email(subject, body, sender, receivers, encoding, mail_server):
-    """
-    Create an email message as MIMEText instance.
-    """
-    from email.Header import Header
-    from email.MIMEText import MIMEText
-    from email.Utils import parseaddr, formataddr
-    import smtplib
-    
-    msg = MIMEText(body, "plain", encoding)
-    msg["To"] = Header(u", ".join(receivers), encoding)
-    msg["Subject"] = Header(subject, encoding)
-    
-    smtp = smtplib.SMTP() 
-    smtp.connect(mail_server)
-    smtp.sendmail(sender, receivers, msg.as_string())
-    smtp.close()
-
-def get_username():
-    platform = sys.platform
-    if platform == "win32":
-        return os.getenv("USERNAME")
-    else:
-        return os.getlogin()
-
-def get_mail_subject(sender, server, url):
-    return "[DIAMONDS_DATA] %s>>>%s>>>%s" % (sender, server, url)
-
-def get_response_message(response):
-    return "Response status:%s \
-    \nResponse reason:%s\n" \
-           % (response.status, response.reason)
-
-def get_process_time(total_time):
-    if total_time<=60:
-        return  "%s seconds" % round(total_time, 1)
-    else:
-        return "%s minutes and %s seconds" % (int(total_time/60), round((total_time%60), 1))
-
-def main():
-    start_time          = time.time()
-    server_valid        = False
-    url_valid           = False
-    sfile_valid         = False
-    mail_address        = None
-    mail_server_address = "smtp.nokia.com"
-    _                   = sys.argv.pop(0)
-    
-    while sys.argv:
-        parameter = sys.argv.pop(0)
-        if re.search('^-', parameter):
-            if parameter == '-s':
-                server       = sys.argv.pop(0)
-                server_valid = True
-            elif parameter == '-u':
-                url          = sys.argv.pop(0)
-                url_valid    = True
-            elif parameter == '-f':
-                source_file  = sys.argv.pop(0)
-                sfile_valid  = True
-                try:
-                    xml = open(source_file).read()
-                except:
-                    sys.exit("Can not open the file %s" % source_file)
-            elif parameter == '-m':
-                mail_address = sys.argv.pop(0)
-            elif parameter == '-o':
-                mail_server_address = sys.argv.pop(0)
-            elif parameter == '-h':
-                sys.exit("HELP:\n %s" % (command_help))
-            else:
-                sys.exit("Incorrect parameter! %s" % (parameter) + command_help )
-        else:
-            sys.exit("Incorrect parameter! %s" % (parameter) + command_help)
-    if not server_valid or not url_valid or not sfile_valid:
-        sys.exit("Too few parameters: Use -h for help")
-    
-    diamonds_mail_box      = "diamonds@diamonds.nmp.nokia.com"
-    import_failed_message  = "XML was not sent successfully to Diamonds via REST interface!\n"
-    import_succeed_message = "XML was sent successfully to Diamonds via REST interface.\n"
-    mail_sent_message      = "XML was sent to Diamonds by mail. Scheduled script will try to import it to Diamonds. If you can not see data soon in Diamonds, please contact to Diamonds developers.\n"
-    
-    if not mail_address:
-        connection = HTTPConnection(server)
-        
-        try:
-            connection.request("POST", url, xml)
-        except:
-            print "Can not connect to the server %s\n" % server
-            sender = get_username()
-            #send_email(get_mail_subject(sender, server, url), xml, sender, [diamonds_mail_box], "latin-1", mail_server_address)
-            sys.exit(mail_sent_message)
-        
-        response = connection.getresponse()
-        
-        # More info about httplib
-        # http://docs.python.org/lib/module-httplib.html
-        if response.status == 200:
-            print import_succeed_message
-            print get_response_message(response)
-            print "Server response:%s\n" % response.read()
-        else:
-            print import_failed_message
-            print get_response_message(response)
-            sender = get_username()
-            #send_email(get_mail_subject(sender, server, url), xml, sender, [diamonds_mail_box], "latin-1", mail_server_address)
-            print mail_sent_message
-        
-        connection.close()
-           
-    else:
-        print 'Sending only mail'
-        sender = get_username()
-        #send_email(get_mail_subject(sender, server, url), xml, sender, [mail_address], "latin-1", mail_server_address)
-    
-    print "------------------------"
-    print "Processed in %s" % get_process_time(time.time()-start_time)
-    print "------------------------"
-
-if __name__ == "__main__":
-    main()