in lib/logstash/outputs/opensearch/http_client.rb [341:374]
def host_to_url(h)
raw_scheme = @url_template[:scheme] || 'http'
raw_user = h.user || @url_template[:user]
raw_password = h.password || @url_template[:password]
postfixed_userinfo = raw_user && raw_password ? "#{raw_user}:#{raw_password}@" : nil
raw_host = h.host
raw_port = h.port || @url_template[:port]
raw_path = !h.path.nil? && !h.path.empty? && h.path != "/" ? h.path : @url_template[:path]
prefixed_raw_path = raw_path && !raw_path.empty? ? raw_path : "/"
parameters = client_settings[:parameters]
raw_query = if parameters && !parameters.empty?
combined = h.query ?
Hash[URI::decode_www_form(h.query)].merge(parameters) :
parameters
query_str = combined.flat_map {|k,v|
values = Array(v)
values.map {|av| "#{k}=#{av}"}
}.join("&")
query_str
else
h.query
end
prefixed_raw_query = raw_query && !raw_query.empty? ? "?#{raw_query}" : nil
raw_url = "#{raw_scheme}://#{postfixed_userinfo}#{raw_host}:#{raw_port}#{prefixed_raw_path}#{prefixed_raw_query}"
::LogStash::Util::SafeURI.new(raw_url)
end