Exception: Aliyun::Odps::RequestError

Inherits:
Error
  • Object
show all
Defined in:
lib/aliyun/odps/error.rb

Overview

Aliyun::Odps::RequestError

when Odps give a Non 2xx response

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ RequestError

Returns a new instance of RequestError.



20
21
22
23
24
25
# File 'lib/aliyun/odps/error.rb', line 20

def initialize(response)
  assign_error_code(response)
  assign_request_id(response)
  @origin_response = response
  super("#{@request_id} - #{@code}: #{@message}")
end

Instance Attribute Details

#codeObject (readonly)

Error Code defined by Odps



8
9
10
# File 'lib/aliyun/odps/error.rb', line 8

def code
  @code
end

#messageObject (readonly)

Error Message defined by Odps



11
12
13
# File 'lib/aliyun/odps/error.rb', line 11

def message
  @message
end

#origin_responseObject (readonly)

The Origin Httparty Response



18
19
20
# File 'lib/aliyun/odps/error.rb', line 18

def origin_response
  @origin_response
end

#request_idObject (readonly)

It’s the UUID to uniquely identifies this request; When you can’t solve the problem, you can request help from the ODPS development engineer with the RequestId.



15
16
17
# File 'lib/aliyun/odps/error.rb', line 15

def request_id
  @request_id
end

Instance Method Details

#assign_error_code(response) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/aliyun/odps/error.rb', line 27

def assign_error_code(response)
  result = response.parsed_response
  if result.key?('Error')
    @code = result['Error']['Code']
    @message = result['Error']['Message']
  elsif result.key?('Code')
    @code = result['Code']
    @message = result['Message']
  end
end

#assign_request_id(response) ⇒ Object



38
39
40
# File 'lib/aliyun/odps/error.rb', line 38

def assign_request_id(response)
  @request_id = response.headers['x-odps-request-id']
end