Class: Nifty::Backends::Utils::Opennebula::Handler Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/nifty/backends/utils/opennebula/handler.rb

Overview

This class is abstract.

Handler for OpenNebula pools

Author:

  • Michal Kimle

Constant Summary collapse

ONEADMIN_ID =
0
LEAVE_AS_IS =
-1
ATTRIBUTE_APPLIANCE_ID =
'NIFTY_APPLIANCE_ID'
OWNER_OCTET =
'600'
API_POLLING_WAIT =
10

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Handler

Constructor

Parameters:

  • client (OpenNebula::Client)


21
22
23
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 21

def initialize(client)
  @client = client
end

Instance Attribute Details

#clientOpenNebula::Client (readonly)

Returns the current value of client.

Returns:

  • (OpenNebula::Client)

    the current value of client



7
8
9
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 7

def client
  @client
end

#poolOpenNebula::Pool

Returns the current value of pool.

Returns:

  • (OpenNebula::Pool)

    the current value of pool



7
8
9
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 7

def pool
  @pool
end

Class Method Details

.chmod(element, octet) ⇒ Object

Change permissions on the element

Parameters:

  • element (OpenNebula::PoolElement)
  • octet (String)

    UNIX-like permission octet



58
59
60
61
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 58

def self.chmod(element, octet)
  Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { element.info! }
  Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { element.chmod_octet(octet) }
end

.chown(element, owner_id, group_id) ⇒ Object

Change owner of the element

Parameters:

  • element (OpenNebula::PoolElement)
  • owner_id (Fixnum)
  • group_id (Fixnum)


43
44
45
46
47
48
49
50
51
52
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 43

def self.chown(element, owner_id, group_id)
  Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { element.info! }

  old_owner_id = element['UID'].to_i
  old_group_id = element.gid
  owner_id = LEAVE_AS_IS if owner_id == old_owner_id
  group_id = LEAVE_AS_IS if group_id == old_group_id

  Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { element.chown(owner_id, group_id) }
end

Instance Method Details

#reload!Object

Reloads the pool



27
28
29
30
31
32
33
34
35
36
# File 'lib/nifty/backends/utils/opennebula/handler.rb', line 27

def reload!
  return unless pool

  if pool.respond_to?('info_all!')
    Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { pool.info_all! }
    return
  end

  Nifty::Backends::Utils::Opennebula::Helper.handle_opennebula_error { pool.info! }
end