in opensearch-transport/lib/opensearch/transport/client.rb [136:182]
def initialize(arguments={}, &block)
@options = arguments.each_with_object({}){ |(k,v), args| args[k.to_sym] = v }
@arguments = @options
@arguments[:logger] ||= @arguments[:log] ? DEFAULT_LOGGER.call() : nil
@arguments[:tracer] ||= @arguments[:trace] ? DEFAULT_TRACER.call() : nil
@arguments[:reload_connections] ||= false
@arguments[:retry_on_failure] ||= false
@arguments[:reload_on_failure] ||= false
@arguments[:randomize_hosts] ||= false
@arguments[:transport_options] ||= {}
@arguments[:http] ||= {}
@options[:http] ||= {}
set_api_key if (@api_key = @arguments[:api_key])
set_compatibility_header if ENV['ELASTIC_CLIENT_APIVERSIONING']
@seeds = extract_cloud_creds(@arguments)
@seeds ||= __extract_hosts(@arguments[:hosts] ||
@arguments[:host] ||
@arguments[:url] ||
@arguments[:urls] ||
ENV['OPENSEARCH_URL'] ||
DEFAULT_HOST)
@send_get_body_as = @arguments[:send_get_body_as] || 'GET'
@opaque_id_prefix = @arguments[:opaque_id_prefix] || nil
if @arguments[:request_timeout]
@arguments[:transport_options][:request] = { timeout: @arguments[:request_timeout] }
end
if @arguments[:transport]
@transport = @arguments[:transport]
else
@transport_class = @arguments[:transport_class] || DEFAULT_TRANSPORT_CLASS
@transport = if @transport_class == Transport::HTTP::Faraday
@arguments[:adapter] ||= __auto_detect_adapter
@transport_class.new(hosts: @seeds, options: @arguments) do |faraday|
faraday.adapter(@arguments[:adapter])
block&.call faraday
end
else
@transport_class.new(hosts: @seeds, options: @arguments)
end
end
end