From c403a5b48e52af3b90d5be49a52cfd9771a1ad9d Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Mon, 1 Oct 2012 17:28:15 +0200 Subject: [PATCH] feature #1433: http proxy support for CloudClient.rb, contributed by Laurent Grawet --- src/cloud/common/CloudClient.rb | 3 ++- src/cloud/marketplace/lib/marketplace_client.rb | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cloud/common/CloudClient.rb b/src/cloud/common/CloudClient.rb index 3efebd4b5a..b7ee78569b 100644 --- a/src/cloud/common/CloudClient.rb +++ b/src/cloud/common/CloudClient.rb @@ -83,7 +83,8 @@ module CloudClient # is set if needed. # ######################################################################### def self.http_start(url, timeout, &block) - http = Net::HTTP.new(url.host, url.port) + proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new + http = Net::HTTP::Proxy(proxy.host, proxy.port).new(url.host, url.port) if timeout http.read_timeout = timeout.to_i diff --git a/src/cloud/marketplace/lib/marketplace_client.rb b/src/cloud/marketplace/lib/marketplace_client.rb index 176ec7e319..1db514a09f 100644 --- a/src/cloud/marketplace/lib/marketplace_client.rb +++ b/src/cloud/marketplace/lib/marketplace_client.rb @@ -27,16 +27,16 @@ module Market @uri = URI.parse(url) @user_agent = "OpenNebula #{CloudClient::VERSION} (#{user_agent})" + @proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new end def get(path) - req = Net::HTTP::Get.new(path) - + req = Net::HTTP::Proxy(@proxy.host, @proxy.port)::Get.new(path) do_request(req) end def post(path, body) - req = Net::HTTP::Post.new(path) + req = Net::HTTP::Proxy(@proxy.host, @proxy.port)::Post.new(path) req.body = body do_request(req)