--- 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()