perform_request

in lib/logstash/outputs/opensearch/http_client/manticore_adapter.rb [128:173]


    def perform_request(url, method, path, params={}, body=nil)
      
      
      params = (params || {}).merge(@client_params) { |key, oldval, newval|
        (oldval.is_a?(Hash) && newval.is_a?(Hash)) ? oldval.merge(newval) : newval
      }

      params[:headers] = params[:headers].clone
      params[:body] = body if body

      if url.user
        params[:auth] = { 
          :user => CGI.unescape(url.user),
          
          
          :password => CGI.unescape(url.password), 
          :eager => true 
        }
      elsif @type == BASIC_AUTH_TYPE
        add_basic_auth_to_params(params)
      end

      request_uri = format_url(url, path)

      if @type == AWS_IAM_AUTH_TYPE
        sign_aws_request(request_uri, path, method, params)
      end

      request_uri_as_string = remove_double_escaping(request_uri.to_s)
      resp = @manticore.send(method.downcase, request_uri_as_string, params)

      
      
      
      resp.call

      
      
      
      if resp.code < 200 || resp.code > 299 && resp.code != 404
        raise ::LogStash::Outputs::OpenSearch::HttpClient::Pool::BadResponseCodeError.new(resp.code, request_uri, body, resp.body)
      end

      resp
    end