1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Updated Fog::Rackspace::Errors::Service error to include the HTTP response code to aid in debugging

This commit is contained in:
Kyle Rames 2012-12-13 14:17:12 -06:00
parent f653aee448
commit 2a93b193cd

View file

@ -6,22 +6,28 @@ module Fog
module Errors module Errors
class ServiceError < Fog::Errors::Error class ServiceError < Fog::Errors::Error
attr_reader :response_data attr_reader :response_data, :status_code
def to_s
status_code ? "[HTTP #{status_code}] #{super}" : super
end
def self.slurp(error) def self.slurp(error)
if error.response.body.empty? data = nil
data = nil message = nil
message = nil status_code = nil
else
data = Fog::JSON.decode(error.response.body) if error.response
message = data['message'] status_code = error.response.status
if message.nil? and !data.values.first.nil? unless error.response.body.empty?
message = data.values.first['message'] data = Fog::JSON.decode(error.response.body)
message = data.values.first ? data.values.first['message'] : data['message']
end end
end end
new_error = super(error, message) new_error = super(error, message)
new_error.instance_variable_set(:@response_data, data) new_error.instance_variable_set(:@response_data, data)
new_error.instance_variable_set(:@status_code, status_code)
new_error new_error
end end
end end