summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/tinderclient.bbclass43
-rw-r--r--conf/machine/include/ixp4xx.conf2
2 files changed, 25 insertions, 20 deletions
diff --git a/classes/tinderclient.bbclass b/classes/tinderclient.bbclass
index f9243f7108..fdd16d9113 100644
--- a/classes/tinderclient.bbclass
+++ b/classes/tinderclient.bbclass
@@ -1,3 +1,21 @@
+def tinder_http_post(server, selector, content_type, body):
+ import httplib
+ # now post it
+ for i in range(0,5):
+ try:
+ h = httplib.HTTP(server)
+ h.putrequest('POST', selector)
+ h.putheader('content-type', content_type)
+ h.putheader('content-length', str(len(body)))
+ h.endheaders()
+ h.send(body)
+ errcode, errmsg, headers = h.getreply()
+ #print errcode, errmsg, headers
+ return (errcode,errmsg, headers, h.file)
+ except:
+ # try again
+ pass
+
def tinder_form_data(bound, dict, log):
output = []
#br
@@ -29,7 +47,7 @@ def tinder_format_http_post(d,status,log):
for the tinderbox to be happy.
"""
- from bb import data
+ from bb import data, build
import os,random
# the variables we will need to send on this form post
@@ -72,7 +90,6 @@ def tinder_build_start(d):
on the server.
"""
from bb import data
- import httplib
# get the body and type
content_type, body = tinder_format_http_post(d,None,None)
@@ -84,15 +101,9 @@ def tinder_build_start(d):
#print "selector %s and url %s" % (selector, url)
# now post it
- h = httplib.HTTP(server)
- h.putrequest('POST', selector)
- h.putheader('content-type', content_type)
- h.putheader('content-length', str(len(body)))
- h.endheaders()
- h.send(body)
- errcode, errmsg, headers = h.getreply()
+ errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
#print errcode, errmsg, headers
- report = h.file.read()
+ report = h_file.read()
# now let us find the machine id that was assigned to us
search = "<machine id='"
@@ -113,7 +124,6 @@ def tinder_send_http(d, status, log):
Send this log as build status
"""
from bb import data
- import httplib
# get the body and type
@@ -124,13 +134,7 @@ def tinder_send_http(d, status, log):
selector = url + "/xml/build_status.pl"
# now post it
- h = httplib.HTTP(server)
- h.putrequest('POST', selector)
- h.putheader('content-type', content_type)
- h.putheader('content-length', str(len(body)))
- h.endheaders()
- h.send(body)
- errcode, errmsg, headers = h.getreply()
+ errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
#print errcode, errmsg, headers
#print h.file.read()
@@ -247,7 +251,7 @@ def tinder_do_tinder_report(event):
implemented yet.
"""
from bb.event import getName
- from bb import data, mkdirhier
+ from bb import data, mkdirhier, build
import os, glob
# variables
@@ -289,6 +293,7 @@ def tinder_do_tinder_report(event):
elif name == "PkgSucceeded":
log += "<--- TINDERBOX Package %s done (SUCCESS)\n" % data.getVar('P', event.data, True)
elif name == "PkgFailed":
+ build.exec_task('do_clean', event.data)
log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % data.getVar('P', event.data, True)
status = 200
elif name == "BuildCompleted":
diff --git a/conf/machine/include/ixp4xx.conf b/conf/machine/include/ixp4xx.conf
index 639bf4a74e..2dab2e2e40 100644
--- a/conf/machine/include/ixp4xx.conf
+++ b/conf/machine/include/ixp4xx.conf
@@ -62,7 +62,7 @@ IXP4XX_SUFFIX = "${MACHINE_ARCH}"
# arm/thumb interworking are enabled in the inputs.
OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
-OVERRIDES = "local:${MACHINE}:ixp4xx:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}:build-${BUILD_OS}"
+OVERRIDES = "local:${MACHINE}:ixp4xx:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}:build-${BUILD_OS}:fail-fast"
# TARGET_CC_ARCH
# TARGET_CC_KERNEL_ARCH