Update drivers
[vuplus_openembedded] / classes / seppuku.bbclass
index 02f4b9a..546738d 100644 (file)
@@ -32,7 +32,7 @@ def seppuku_login(opener, login, user, password):
     the resulting page then
 
     @param opened = cookie enabled urllib2 opener
-    @param login = http://bugs.openembedded.org/query.cgi?
+    @param login = http://bugs.openembedded.net/query.cgi?
     @param user  = Your username
     @param password  = Your password
     """
@@ -116,12 +116,12 @@ def seppuku_find_bug_report(debug_file, opener, query, product, component, bugna
     and the status.
 
     @param opener = urllib2 opener
-    @param query  = e.g. http://bugs.openembedded.org/query.cgi?
+    @param query  = e.g. http://bugs.openembedded.net/query.cgi?
     @param product = search for this product
     @param component = search for this component
     @param bugname = the bug to search for
 
-    http://bugs.openembedded.org/buglist.cgi?short_desc_type=substring&short_desc=manual+test+bug&product=Openembedded&emailreporter2=1&emailtype2=substring&email2=freyther%40yahoo.com
+    http://bugs.openembedded.net/buglist.cgi?short_desc_type=substring&short_desc=manual+test+bug&product=Openembedded&emailreporter2=1&emailtype2=substring&email2=freyther%40yahoo.com
     but it does not support ctype=csv...
     """
     import urllib
@@ -154,7 +154,7 @@ def seppuku_reopen_bug(poster, file, product, component, bug_number, bugname, te
 
     Same as with opening a new report, some bits need to be inside the url
 
-    http://bugs.openembedded.org/process_bug.cgi?id=239&bug_file_loc=http%3A%2F%2F&version=Angstrom&longdesclength=2&product=Openembedded&component=Build&comment=bla&priority=P2&bug_severity=normal&op_sys=Linux&rep_platform=Other&knob=reopen&short_desc=foo
+    http://bugs.openembedded.net/process_bug.cgi?id=239&bug_file_loc=http%3A%2F%2F&version=Angstrom&longdesclength=2&product=Openembedded&component=Build&comment=bla&priority=P2&bug_severity=normal&op_sys=Linux&rep_platform=Other&knob=reopen&short_desc=foo
     """
 
     import urllib2
@@ -189,7 +189,7 @@ def seppuku_file_bug(poster, file, product, component, bugname, text):
     Create a completely new bug report
 
 
-    http://bugs.openembedded.org/post_bug.cgi?bug_file_loc=http%3A%2F%2F&version=Angstrom&product=Openembedded&component=Build&short_desc=foo&comment=bla&priority=P2&bug_severity=normal&op_sys=Linux&rep_platform=Other
+    http://bugs.openembedded.net/post_bug.cgi?bug_file_loc=http%3A%2F%2F&version=Angstrom&product=Openembedded&component=Build&short_desc=foo&comment=bla&priority=P2&bug_severity=normal&op_sys=Linux&rep_platform=Other
 
     You are forced to add some default values to the bugzilla query and stop with '&'
 
@@ -228,7 +228,7 @@ def seppuku_file_bug(poster, file, product, component, bugname, text):
     else:
         return res[0] 
 
-def seppuku_create_attachment(debug, poster, attach_query, product, component, bug_number, text, file):
+def seppuku_create_attachment(data, debug, poster, attach_query, product, component, bug_number, text, file):
     """
 
     Create a new attachment for the failed report
@@ -246,9 +246,11 @@ def seppuku_create_attachment(debug, poster, attach_query, product, component, b
         print >> debug, "Can't create an attachment, no attach_query passed to method"
         return False
 
+    import bb
+    logdescription = "Build log for machine %s" % (bb.data.getVar('MACHINE', data, True))
 
     import urllib2
-    param = { "bugid" : bug_number, "action" : "insert", "data" : file, "description" : "Build log", "ispatch" : "0", "contenttypemethod" : "list", "contenttypeselection" : "text/plain", "comment" : text }
+    param = { "bugid" : bug_number, "action" : "insert", "data" : file, "description" : logdescription, "ispatch" : "0", "contenttypemethod" : "list", "contenttypeselection" : "text/plain", "comment" : text }
 
     try:
         result = poster.open( attach_query, param )
@@ -317,6 +319,12 @@ python seppuku_eventhandler() {
         passw   = bb.data.getVar("SEPPUKU_PASS",  data, True)
         product = bb.data.getVar("SEPPUKU_PRODUCT", data, True)
         component = bb.data.getVar("SEPPUKU_COMPONENT", data, True)
+       proxy   = bb.data.getVar('HTTP_PROXY', data, True )
+       if (proxy):
+               phl = urllib2.ProxyHandler({'http' : proxy})
+               poster.add_handler(phl)
+               opener.add_handler(phl)
+
         # evil hack to figure out what is going on
         debug_file = open(os.path.join(bb.data.getVar("TMPDIR", data, True),"..","seppuku-log"),"a")
 
@@ -333,7 +341,7 @@ python seppuku_eventhandler() {
                                                                "pv"      : bb.data.getVar("PV", data, True),
                                                                }  
             log_file = glob.glob("%s/log.%s.*" % (bb.data.getVar('T', event.data, True), event.task))
-            text     = "The %s step failed at %s for machine %s" % (e.task, bb.data.getVar('DATETIME', data, True), bb.data.getVar( 'MACHINE', data, True ) )
+            text     = "The %s step in %s failed at %s for machine %s" % (e.task, bb.data.getVar("PN", data, True), bb.data.getVar('DATETIME', data, True), bb.data.getVar( 'MACHINE', data, True ) )
             if len(log_file) != 0:
                 print >> debug_file, "Adding log file %s" % log_file[0]
                 file = open(log_file[0], 'r')
@@ -350,7 +358,7 @@ python seppuku_eventhandler() {
         if bug_number and bug_open:
             print >> debug_file, "The bug is known as '%s'" % bug_number
             if file:
-                if not seppuku_create_attachment(debug_file, poster, attach, product, component, bug_number, text, file):
+                if not seppuku_create_attachment(data, debug_file, poster, attach, product, component, bug_number, text, file):
                      print >> debug_file, "Failed to attach the build log for bug #%s" % bug_number
                 else:
                      print >> debug_file, "Created an attachment for '%s' '%s' '%s'" % (product, component, bug_number)
@@ -371,12 +379,17 @@ python seppuku_eventhandler() {
                 print >> debug_file, "The new bug_number: '%s'" % bug_number
 
         if bug_number and file:
-            if not seppuku_create_attachment(debug_file, poster, attach, product, component, bug_number, text, file):
+            if not seppuku_create_attachment(data, debug_file, poster, attach, product, component, bug_number, text, file):
                 print >> debug_file, "Failed to attach the build log for bug #%s" % bug_number
             else:
                 print >> debug_file, "Created an attachment for '%s' '%s' '%s'" % (product, component, bug_number)
         else:
             print >> debug_file, "Not trying to create an attachment for bug #%s" % bug_number
 
+        # store bug number for oestats-client
+        if bug_number:
+            bb.data.setVar('OESTATS_BUG_NUMBER', bug_number, event.data)
+            bb.data.setVar('OESTATS_BUG_TRACKER', "http://bugs.openembedded.net/", event.data)
+
     return NotHandled
 }