Class: OpenNebula::HostPool

Inherits:
Pool show all
Defined in:
lib/opennebula/host_pool.rb

Constant Summary collapse

HOST_POOL_METHODS =
{
    :info       => "hostpool.info",
    :monitoring => "hostpool.monitoring"
}

Constants inherited from Pool

Pool::INFO_ALL, Pool::INFO_GROUP, Pool::INFO_MINE, Pool::PAGINATED_POOLS

Instance Method Summary collapse

Methods inherited from Pool

#each, #each_with_xpath, #get_hash, #info_paginated, #to_str

Methods inherited from XMLPool

#each_element

Methods inherited from XMLElement

#[], #add_element, #attr, build_xml, #delete_element, #each, #each_xpath, #element_xml, #has_elements?, #initialize_xml, #name, #retrieve_elements, #template_like_str, #template_str, #template_xml, #text, #to_hash, #to_xml

Constructor Details

#initialize(client) ⇒ HostPool

client a Client object that represents a XML-RPC connection



38
39
40
# File 'lib/opennebula/host_pool.rb', line 38

def initialize(client)
    super('HOST_POOL','HOST',client)
end

Instance Method Details

#factory(element_xml) ⇒ Object

Factory Method for the Host Pool



43
44
45
# File 'lib/opennebula/host_pool.rb', line 43

def factory(element_xml)
    OpenNebula::Host.new(element_xml,@client)
end

#infoObject Also known as: info!

Retrieves all the Hosts in the pool.



52
53
54
# File 'lib/opennebula/host_pool.rb', line 52

def info()
    super(HOST_POOL_METHODS[:info])
end

#monitoring(xpath_expressions) ⇒ Hash<String, <Hash<String, Array<Array<int>>>>>, OpenNebula::Error

Retrieves the monitoring data for all the Hosts in the pool

Examples:

host_pool.monitoring(
  ['HOST_SHARE/FREE_CPU',
  'HOST_SHARE/RUNNING_VMS',
  'TEMPLATE/CUSTOM_PROBE'] )

{"1"=>
  {"TEMPLATE/CUSTOM_PROBE"=>[],
   "HOST_SHARE/FREE_CPU"=>[["1337609673", "800"]],
   "HOST_SHARE/RUNNING_VMS"=>[["1337609673", "3"]]},
 "0"=>
  {"TEMPLATE/CUSTOM_PROBE"=>[],
   "HOST_SHARE/FREE_CPU"=>[["1337609673", "800"]],
   "HOST_SHARE/RUNNING_VMS"=>[["1337609673", "3"]]}}

Parameters:

  • xpath_expressions (Array<String>)

    Elements to retrieve.

Returns:

  • (Hash<String, <Hash<String, Array<Array<int>>>>>, OpenNebula::Error)

    The first level hash uses the Host ID as keys, and as value a Hash with the requested xpath expressions, and an Array of ‘timestamp, value’.



81
82
83
84
# File 'lib/opennebula/host_pool.rb', line 81

def monitoring(xpath_expressions)
    return super(HOST_POOL_METHODS[:monitoring],
        'HOST', 'LAST_MON_TIME', xpath_expressions)
end

#monitoring_xmlString

Retrieves the monitoring data for all the Hosts in the pool, in XML

Returns:

  • (String)

    VM monitoring data, in XML



89
90
91
# File 'lib/opennebula/host_pool.rb', line 89

def monitoring_xml()
    return @client.call(HOST_POOL_METHODS[:monitoring])
end