def get_conn(connection_name, lib_params, logger)
http_conn = nil
conn_mode = lib_params[:connection_mode]
params = { :exception => AwsError, :logger => logger }
[ :user_agent, :ca_file, :http_connection_retry_count,
:http_connection_open_timeout, :http_connection_read_timeout,
:http_connection_retry_delay
].each do |key|
params[key] = lib_params[key] if lib_params.has_key?(key)
end
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