[oe] [STABLE][PATCH 022/125] oestats-client: support working behind proxy

Koen Kooi k.kooi at student.utwente.nl
Tue Jun 23 09:14:32 UTC 2009


On 23-06-09 10:56, Marcin Juszkiewicz wrote:
> From: Dmitry Eremin-Solenikov<dbaryshkov at gmail.com>
>
> 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 at gmail.com>
> Signed-off-by: Marcin Juszkiewicz<marcin at juszkiewicz.com.pl>

Acked-by: Koen Kooi <koen at openembedded.org>

> ---
>   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 6d348d3..8922496 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:






More information about the Openembedded-devel mailing list