lib/elastic/transport/transport/http/faraday.rb in elastic-transport-8.1.3 vs lib/elastic/transport/transport/http/faraday.rb in elastic-transport-8.2.0
- old
+ new
@@ -32,33 +32,34 @@
# @return [Response]
# @see Transport::Base#perform_request
#
def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {})
super do |connection, url|
- headers = if connection.connection.headers
- if !headers.nil?
- connection.connection.headers.merge(headers)
- else
- connection.connection.headers
- end
- else
- headers
- end
+ headers = parse_headers(headers, connection)
body = body ? __convert_to_json(body) : nil
body, headers = compress_request(body, headers)
- response = connection.connection.run_request(
- method.downcase.to_sym,
- url,
- body,
- headers
- )
+ response = connection.connection.run_request(method.downcase.to_sym, url, body, headers)
- Response.new response.status, decompress_response(response.body), response.headers
+ Response.new(response.status, decompress_response(response.body), response.headers)
end
end
+ # Merges headers already present in the connection and the ones passed in to perform_request
+ #
+ def parse_headers(headers, connection)
+ if connection.connection.headers
+ if !headers.nil?
+ connection.connection.headers.merge(headers)
+ else
+ connection.connection.headers
+ end
+ else
+ headers
+ end
+ end
+
# Builds and returns a connection
#
# @return [Connections::Connection]
#
def __build_connection(host, options={}, block=nil)
@@ -71,27 +72,28 @@
#
# @return [Array]
#
def host_unreachable_exceptions
[
- ::Faraday::ConnectionFailed,
- ::Faraday::TimeoutError,
- ::Faraday.const_defined?(:ServerError) ? ::Faraday::ServerError : nil,
- ::Faraday::SSLError
+ ::Faraday::ConnectionFailed,
+ ::Faraday::TimeoutError,
+ ::Faraday.const_defined?(:ServerError) ? ::Faraday::ServerError : nil,
+ ::Faraday::SSLError
].compact
end
private
def user_agent_header(client)
@user_agent ||= begin
- meta = ["RUBY_VERSION: #{RUBY_VERSION}"]
- if RbConfig::CONFIG && RbConfig::CONFIG['host_os']
- meta << "#{RbConfig::CONFIG['host_os'].split('_').first[/[a-z]+/i].downcase} #{RbConfig::CONFIG['target_cpu']}"
- end
- meta << "#{client.headers[USER_AGENT_STR]}"
- "elastic-transport-ruby/#{VERSION} (#{meta.join('; ')})"
- end
+ meta = ["RUBY_VERSION: #{RUBY_VERSION}"]
+ if RbConfig::CONFIG && RbConfig::CONFIG['host_os']
+ meta << "#{RbConfig::CONFIG['host_os'].split('_').first[/[a-z]+/i].downcase} " \
+ "#{RbConfig::CONFIG['target_cpu']}"
+ end
+ meta << client.headers[USER_AGENT_STR]
+ "elastic-transport-ruby/#{VERSION} (#{meta.join('; ')})"
+ end
end
end
end
end
end