class Nifty::Backends::Utils::Opennebula::Helper

Helper class for OpenNebula backend

@author Michal Kimle

Public Class Methods

client(secret, endpoint) click to toggle source

Creates client for communication with OpenNebula

@param [String] secret OpenNebula's authentication secret @param [String] endpoint OpenNebula's endpoint @return [OpenNebula::Client] OpenNebula client instance

# File lib/nifty/backends/utils/opennebula/helper.rb, line 13
def client(secret, endpoint)
  OpenNebula::Client.new(secret, endpoint)
end
handle_opennebula_error() { || ... } click to toggle source

Handles OpenNebula error codes and turn them into exceptions

@raise [Nifty::Errors::Backends::Opennebula::AuthenticationError] @raise [Nifty::Errors::Backends::Opennebula::UserNotAuthorizedError] @raise [Nifty::Errors::Backends::Opennebula::ResourceNotFoundError] @raise [Nifty::Errors::Backends::Opennebula::ResourceStateError] @raise [Nifty::Errors::Backends::Opennebula::ResourceRetrievalError]

# File lib/nifty/backends/utils/opennebula/helper.rb, line 24
def handle_opennebula_error
  fail Nifty::Errors::Backends::Opennebula::StubError, 'OpenNebula service-wrapper was called without a block!' unless block_given?

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

  case return_value.errno
  when OpenNebula::Error::EAUTHENTICATION
    fail Nifty::Errors::Backends::Opennebula::AuthenticationError, return_value.message
  when OpenNebula::Error::EAUTHORIZATION
    fail Nifty::Errors::Backends::Opennebula::UserNotAuthorizedError, return_value.message
  when OpenNebula::Error::ENO_EXISTS
    fail Nifty::Errors::Backends::Opennebula::ResourceNotFoundError, return_value.message
  when OpenNebula::Error::EACTION
    fail Nifty::Errors::Backends::Opennebula::ResourceStateError, return_value.message
  else
    fail Nifty::Errors::Backends::Opennebula::ResourceRetrievalError, return_value.message
  end
end