class Elasticsearch::Transport::Transport::HTTP::AWS
Transport
implementation, which V4 Signs requests using the [Faraday](rubygems.org/gems/faraday) library for abstracting the HTTP
client.
@see Transport::Base
Constants
- CredentialConfig
- DEFAULT_PORT
- DEFAULT_PROTOCOL
Public Instance Methods
__build_connections()
click to toggle source
Builds and returns a collection of connections.
@return [Connections::Collection]
# File lib/logstash/outputs/amazon_es/aws_transport.rb, line 63 def __build_connections region = options[:region] access_key_id = options[:aws_access_key_id] || nil secret_access_key = options[:aws_secret_access_key] || nil session_token = options[:session_token] || nil profile = options[:profile] || 'default' instance_cred_retries = options[:instance_profile_credentials_retries] || 0 instance_cred_timeout = options[:instance_profile_credentials_timeout] || 1 credential_config = CredentialConfig.new(access_key_id, secret_access_key, session_token, profile, instance_cred_retries, instance_cred_timeout, region) credentials = Aws::CredentialProviderChain.new(credential_config).resolve Connections::Collection.new \ :connections => hosts.map { |host| host[:protocol] = host[:scheme] || DEFAULT_PROTOCOL host[:port] ||= DEFAULT_PORT url = __full_url(host) aes_connection = ::Faraday::Connection.new(url, (options[:transport_options] || {})) do |faraday| faraday.request :aws_v4_signer, credentials: credentials, service_name: 'es', region: region faraday.adapter :manticore end Connections::Connection.new \ :host => host, :connection => aes_connection }, :selector_class => options[:selector_class], :selector => options[:selector] end
host_unreachable_exceptions()
click to toggle source
Returns an array of implementation specific connection errors.
@return [Array]
# File lib/logstash/outputs/amazon_es/aws_transport.rb, line 102 def host_unreachable_exceptions [::Faraday::Error::ConnectionFailed, ::Faraday::Error::TimeoutError] end
perform_request(method, path, params={}, body=nil)
click to toggle source
Performs the request by invoking {Transport::Base#perform_request} with a block.
@return [Response] @see Transport::Base#perform_request
Calls superclass method
# File lib/logstash/outputs/amazon_es/aws_transport.rb, line 47 def perform_request(method, path, params={}, body=nil) super do |connection, url| response = connection.connection.run_request \ method.downcase.to_sym, url, ( body ? __convert_to_json(body) : nil ), {} Response.new response.status, response.body, response.headers end end