class Elastomer::Client::Error
General error response from client requests.
Attributes
Returns the Elasticsearch error from the `response` or nil if the Error
was not created with a response.
Returns the status code from the `response` or nil if the Error
was not created with a response.
Public Class Methods
By default all client errors are fatal and indicate that a request should not be retried. Only a few errors are retryable.
# File lib/elastomer/client/errors.rb, line 66 def fatal return @fatal if defined? @fatal @fatal = true end
Construct a new Error
from the given response object or a message String. If a response object is given, the error message will be extracted from the response body.
response - Faraday::Response object or a simple error message String
# File lib/elastomer/client/errors.rb, line 18 def initialize( *args ) @status = nil @error = nil case args.first when Exception exception = args.shift super("#{exception.message} :: #{args.join(' ')}") set_backtrace exception.backtrace when Faraday::Response response = args.shift @status = response.status body = response.body @error = body["error"] if body.is_a?(Hash) && body.key?("error") message = @error || body.to_s super message else super args.join(" ") end end
Public Instance Methods
Indicates that the error is fatal. The request should not be tried again.
# File lib/elastomer/client/errors.rb, line 53 def fatal? self.class.fatal? end
The inverse of the `fatal?` method. A request can be retried if this method returns `true`.
# File lib/elastomer/client/errors.rb, line 59 def retry? !fatal? end