class Restool::Service::RemoteClient

Public Class Methods

new(host, verify_ssl, timeout, opts) click to toggle source
# File lib/restool/service/remote_client.rb, line 10
def initialize(host, verify_ssl, timeout, opts)
  @request_logger = Restool::RequestLogger.new(host, opts)
  @connection = build_connection(host, verify_ssl, timeout, opts)
end

Public Instance Methods

make_request(path, method, request_params, headers, basic_auth) click to toggle source
# File lib/restool/service/remote_client.rb, line 15
def make_request(path, method, request_params, headers, basic_auth)
  operation_request = RequestUtils.build_request(method, path, request_params, headers, basic_auth)

  @request_logger.log(operation_request) do
    @connection.request(operation_request.http_request)
  end
end

Private Instance Methods

build_connection(host, verify_ssl, timeout, opts) click to toggle source
# File lib/restool/service/remote_client.rb, line 25
def build_connection(host, verify_ssl, timeout, opts)
  uri = URI.parse(host)

  connection = if proxy_uri
                 Net::HTTP.new(uri.host, uri.port, proxy_uri.host, proxy_uri.port)
               else
                 Net::HTTP.new(uri.host, uri.port)
               end

  connection.use_ssl      = uri.is_a?(URI::HTTPS)
  connection.verify_mode  = verify_ssl?(verify_ssl)
  connection.read_timeout = timeout
  connection.open_timeout = timeout
  connection.set_debug_output($stdout) if opts[:debug]

  connection
end
proxy_uri() click to toggle source
# File lib/restool/service/remote_client.rb, line 43
def proxy_uri
  # Patch for Net/Http issue with env var
  proxy_env = ENV['http_proxy'] || ENV['HTTP_PROXY']

  URI.parse(proxy_env) if proxy_env != nil && proxy_env != ''
end
verify_ssl?(verify_ssl_setting) click to toggle source
# File lib/restool/service/remote_client.rb, line 50
def verify_ssl?(verify_ssl_setting)
  verify_ssl_setting ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
end