diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2009-05-23 14:22:08 +0400 |
---|---|---|
committer | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2009-05-23 14:22:08 +0400 |
commit | f00254030737f3964b6f4f174023cf93b6da9bf9 (patch) | |
tree | 4fa037dad344dcde44ed6e5ec417933b6225a259 | |
parent | d0e7c085afc92fcf76ce8ce46566353b5d3950cf (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.bbclass | 20 |
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: |