Sha256: 1bc7a1700f7cae453ecc5b5913d2895291602e347b0ab41d50d2f2aba561193a

Contents?: true

Size: 1.18 KB

Versions: 43

Compression:

Stored size: 1.18 KB

Contents

module Fog
  module CloudSigma
    module Errors
      class Error < Fog::Errors::Error
        attr_accessor :type, :error_point

        def initialize(message, type='n/a', error_point=nil)
          @type = type
          @error_point = error_point
          super(message)
        end
      end

      class NotFound < Error; end
      class RequestError < Error; end
      class ServerError < Error; end

      def self.slurp_http_status_error(error)
        error_class =  case error.response[:status]
                         when 404
                           NotFound
                         when 500..599
                           ServerError
                         when 400..499
                           RequestError
                         else
                           Error
                       end

        new_error = error_class.new(error.response[:body].first['error_message'],
                                    error.response[:body].first['error_type'],
                                    error.response[:body].first['error_point'])
        new_error.set_backtrace(error.backtrace)
        new_error.verbose = error.message
        new_error
      end
    end
  end
end

Version data entries

43 entries across 41 versions & 6 rubygems

Version Path
fog-2.3.0 lib/fog/cloudsigma/error.rb
fog-ifeel-2.2.0 lib/fog/cloudsigma/error.rb
fog-2.2.0 lib/fog/cloudsigma/error.rb
fog-2.1.0 lib/fog/cloudsigma/error.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/cloudsigma/error.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/cloudsigma/error.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/cloudsigma/error.rb
fog-1.42.1 lib/fog/cloudsigma/error.rb
fog-2.0.0 lib/fog/cloudsigma/error.rb
fog-1.42.0 lib/fog/cloudsigma/error.rb
fog-1.41.0 lib/fog/cloudsigma/error.rb
fog-1.40.0 lib/fog/cloudsigma/error.rb
fog-1.39.0 lib/fog/cloudsigma/error.rb
fog-1.38.0 lib/fog/cloudsigma/error.rb
fog-1.37.0 lib/fog/cloudsigma/error.rb
fog-1.36.0 lib/fog/cloudsigma/error.rb
fog-1.35.0 lib/fog/cloudsigma/error.rb
fog-2.0.0.pre.0 lib/fog/cloudsigma/error.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/cloudsigma/error.rb
fog-1.34.0 lib/fog/cloudsigma/error.rb