Module: Cloudkeeper::One::Opennebula::Helper

Included in:
Handler
Defined in:
lib/cloudkeeper/one/opennebula/helper.rb

Constant Summary collapse

ERRORS =
Hash.new(Cloudkeeper::One::Errors::Opennebula::ResourceRetrievalError)
                     .update(::OpenNebula::Error::EAUTHENTICATION => Cloudkeeper::One::Errors::Opennebula::AuthenticationError,
::OpenNebula::Error::EAUTHORIZATION => Cloudkeeper::One::Errors::Opennebula::UserNotAuthorizedError,
::OpenNebula::Error::ENO_EXISTS => Cloudkeeper::One::Errors::Opennebula::ResourceNotFoundError,
::OpenNebula::Error::EACTION => Cloudkeeper::One::Errors::Opennebula::ResourceStateError).freeze

Instance Method Summary collapse

Instance Method Details

#decode_error(errno) ⇒ Object



21
22
23
# File 'lib/cloudkeeper/one/opennebula/helper.rb', line 21

def decode_error(errno)
  ERRORS[errno]
end

#handle_opennebula_errorObject



11
12
13
14
15
16
17
18
19
# File 'lib/cloudkeeper/one/opennebula/helper.rb', line 11

def handle_opennebula_error
  raise Cloudkeeper::One::Errors::ArgumentError, 'OpenNebula service-wrapper was called without a block!' \
    unless block_given?

  return_value = yield
  return return_value unless OpenNebula.is_error?(return_value)

  raise decode_error(return_value.errno), return_value.message
end