Class: OpenNebula::HostPool

Inherits:
Pool show all
Defined in:
OpenNebula/HostPool.rb

Constant Summary

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

Constants inherited from Pool

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

Instance Method Summary (collapse)

Methods inherited from Pool

#each, #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

- (HostPool) initialize(client)

client a Client object that represents a XML-RPC connection



38
39
40
# File 'OpenNebula/HostPool.rb', line 38

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

Instance Method Details

- (Object) factory(element_xml)

Factory Method for the Host Pool



43
44
45
# File 'OpenNebula/HostPool.rb', line 43

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

- (Object) info

Retrieves all the Hosts in the pool.



52
53
54
# File 'OpenNebula/HostPool.rb', line 52

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

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

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'.



79
80
81
82
# File 'OpenNebula/HostPool.rb', line 79

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

- (String) monitoring_xml

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

Returns:

  • (String)

    VM monitoring data, in XML



87
88
89
# File 'OpenNebula/HostPool.rb', line 87

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