def get_conn(connection_name, lib_params, logger)
http_conn = nil
conn_mode = lib_params[:connection_mode]
params = lib_params.slice(
:user_agent, :ca_file, :http_connection_retry_count, :http_connection_open_timeout,
:http_connection_read_timeout, :http_connection_retry_delay
)
params.merge!(:exception => AwsError, :logger => logger)
if conn_mode == :per_request
http_conn = Rightscale::HttpConnection.new(params)
elsif conn_mode == :per_thread || conn_mode == :single
thread = conn_mode == :per_thread ? Thread.current : Thread.main
thread[connection_name] ||= Rightscale::HttpConnection.new(params)
http_conn = thread[connection_name]
end
return http_conn
end