summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2009-05-23 14:22:08 +0400
committerDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2009-05-23 14:22:08 +0400
commitf00254030737f3964b6f4f174023cf93b6da9bf9 (patch)
tree4fa037dad344dcde44ed6e5ec417933b6225a259
parentd0e7c085afc92fcf76ce8ce46566353b5d3950cf (diff)
oestats-client: support working behind proxy
Detect if we are behind proxy by checking for HTTP_PROXY variable and use specified proxy for http traffic. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
-rw-r--r--classes/oestats-client.bbclass20
1 files changed, 15 insertions, 5 deletions
diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass
index 6d348d3ded..8922496242 100644
--- a/classes/oestats-client.bbclass
+++ b/classes/oestats-client.bbclass
@@ -18,8 +18,9 @@ def oestats_getid(d):
f = file(bb.data.getVar('TMPDIR', d, True) + '/oestats.id', 'r')
return f.read()
-def oestats_send(server, action, vars = {}, files = {}):
+def oestats_send(d, server, action, vars = {}, files = {}):
import httplib
+ import bb
# build body
output = []
@@ -49,7 +50,16 @@ def oestats_send(server, action, vars = {}, files = {}):
"Content-length": str(len(body))}
# send request
- conn = httplib.HTTPConnection(server)
+ proxy = bb.data.getVar('HTTP_PROXY', d, True )
+ if (proxy):
+ if (proxy.endswith('/')):
+ proxy = proxy[:-1]
+ if (proxy.startswith('http://')):
+ proxy = proxy[7:]
+ conn = httplib.HTTPConnection(proxy)
+ action = "http://%s%s" %(server, action)
+ else:
+ conn = httplib.HTTPConnection(server)
conn.request("POST", action, body, headers)
response = conn.getresponse()
data = response.read()
@@ -64,7 +74,7 @@ def oestats_start(server, builder, d):
# send report
id = ""
try:
- data = oestats_send(server, "/builds/", {
+ data = oestats_send(d, server, "/builds/", {
'builder': builder,
'build_arch': bb.data.getVar('BUILD_ARCH', d, True),
'metadata_branch': bb.data.getVar('METADATA_BRANCH', d, True),
@@ -97,7 +107,7 @@ def oestats_stop(server, d, failures):
status = "Succeeded"
try:
- response = oestats_send(server, "/builds/%s/" % id, {
+ response = oestats_send(d, server, "/builds/%s/" % id, {
'status': status,
})
if status == 'Failed':
@@ -157,7 +167,7 @@ def oestats_task(server, d, task, status):
# send report
try:
- response = oestats_send(server, "/tasks/", vars, files)
+ response = oestats_send(d, server, "/tasks/", vars, files)
if status == 'Failed':
bb.note("oestats: task failed, see http://%s%s" % (server, response))
except: