Class: OpenNebula::VirtualMachinePool
- Inherits:
-
Pool
- Object
- XMLElement
- XMLPool
- Pool
- OpenNebula::VirtualMachinePool
- Defined in:
- OpenNebula/VirtualMachinePool.rb
Constant Summary
- VM_POOL_METHODS =
{ :info => "vmpool.info", :monitoring => "vmpool.monitoring", :accounting => "vmpool.accounting" }
- INFO_NOT_DONE =
Constants for info queries (include/RequestManagerPoolInfoFilter.h)
-1
- INFO_ALL_VM =
-2
Constants inherited from Pool
Pool::INFO_ALL, Pool::INFO_GROUP, Pool::INFO_MINE
Instance Method Summary (collapse)
-
- (Hash, OpenNebula::Error) accounting(filter_flag = INFO_ALL, options = {})
Retrieves the accounting data for all the VMs in the pool.
-
- (String) accounting_xml(filter_flag = INFO_ALL, options = {})
Retrieves the accounting data for all the VMs in the pool in xml.
-
- (Object) factory(element_xml)
Default Factory Method for the Pools.
-
- (Object) info(*args)
Retrieves all or part of the VirtualMachines in the pool.
- - (Object) info_all
- - (Object) info_group
- - (Object) info_mine
-
- (VirtualMachinePool) initialize(client, user_id = 0)
constructor
client a Client object that represents a XML-RPC connection user_id is to refer to a Pool with VirtualMachines from that user.
-
- (Hash<String, <Hash<String, Array<Array<int>>>>>, OpenNebula::Error) monitoring(xpath_expressions, filter_flag = INFO_ALL)
Retrieves the monitoring data for all the VMs in the pool.
-
- (String) monitoring_xml(filter_flag = INFO_ALL)
Retrieves the monitoring data for all the VMs in the pool, in XML.
Methods inherited from Pool
Methods inherited from XMLPool
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
- (VirtualMachinePool) initialize(client, user_id = 0)
client a Client object that represents a XML-RPC connection user_id is to refer to a Pool with VirtualMachines from that user
44 45 46 47 48 |
# File 'OpenNebula/VirtualMachinePool.rb', line 44 def initialize(client, user_id=0) super('VM_POOL','VM',client) @user_id = user_id end |
Instance Method Details
- (Hash, OpenNebula::Error) accounting(filter_flag = INFO_ALL, options = {})
Retrieves the accounting data for all the VMs in the pool
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'OpenNebula/VirtualMachinePool.rb', line 221 def accounting(filter_flag=INFO_ALL, ={}) acct_hash = Hash.new rc = build_accounting(filter_flag, ) do |history| hash = acct_hash if [:order_by_1] id_1 = history[[:order_by_1]] acct_hash[id_1] ||= Hash.new if [:order_by_2] id_2 = history[[:order_by_2]] acct_hash[id_1][id_2] ||= Hash.new hash = acct_hash[id_1][id_2] else hash = acct_hash[id_1] end end hash["HISTORY_RECORDS"] ||= Hash.new hash["HISTORY_RECORDS"]["HISTORY"] ||= Array.new hash["HISTORY_RECORDS"]["HISTORY"] << history.to_hash['HISTORY'] end return rc if OpenNebula.is_error?(rc) acct_hash end |
- (String) accounting_xml(filter_flag = INFO_ALL, options = {})
Retrieves the accounting data for all the VMs in the pool in xml
267 268 269 270 271 272 273 274 275 276 277 278 279 |
# File 'OpenNebula/VirtualMachinePool.rb', line 267 def accounting_xml(filter_flag=INFO_ALL, ={}) acct_hash = Hash.new xml_str = "<HISTORY_RECORDS>\n" rc = build_accounting(filter_flag, ) do |history| xml_str << history.to_xml end return rc if OpenNebula.is_error?(rc) xml_str << "\n</HISTORY_RECORDS>" xml_str end |
- (Object) factory(element_xml)
Default Factory Method for the Pools
51 52 53 |
# File 'OpenNebula/VirtualMachinePool.rb', line 51 def factory(element_xml) OpenNebula::VirtualMachine.new(element_xml,@client) end |
- (Object) info(*args)
Retrieves all or part of the VirtualMachines in the pool. No arguments, returns the not-in-done VMs for the user
- user_id, start_id, end_id
- user_id, start_id, end_id, state
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'OpenNebula/VirtualMachinePool.rb', line 63 def info(*args) case args.size when 0 info_filter(VM_POOL_METHODS[:info], @user_id, -1, -1, INFO_NOT_DONE) when 1 info_filter(VM_POOL_METHODS[:info], args[0], -1, -1, INFO_NOT_DONE) when 3 info_filter(VM_POOL_METHODS[:info], args[0], args[1], args[2], INFO_NOT_DONE) when 4 info_filter(VM_POOL_METHODS[:info], args[0], args[1], args[2], args[3]) end end |
- (Object) info_all
92 93 94 95 96 97 98 |
# File 'OpenNebula/VirtualMachinePool.rb', line 92 def info_all() return info_filter(VM_POOL_METHODS[:info], INFO_ALL, -1, -1, INFO_NOT_DONE) end |
- (Object) info_group
108 109 110 111 112 113 114 |
# File 'OpenNebula/VirtualMachinePool.rb', line 108 def info_group() return info_filter(VM_POOL_METHODS[:info], INFO_GROUP, -1, -1, INFO_NOT_DONE) end |
- (Object) info_mine
100 101 102 103 104 105 106 |
# File 'OpenNebula/VirtualMachinePool.rb', line 100 def info_mine() return info_filter(VM_POOL_METHODS[:info], INFO_MINE, -1, -1, INFO_NOT_DONE) end |
- (Hash<String, <Hash<String, Array<Array<int>>>>>, OpenNebula::Error) monitoring(xpath_expressions, filter_flag = INFO_ALL)
Retrieves the monitoring data for all the VMs in the pool
145 146 147 148 |
# File 'OpenNebula/VirtualMachinePool.rb', line 145 def monitoring(xpath_expressions, filter_flag=INFO_ALL) return super(VM_POOL_METHODS[:monitoring], 'VM', 'LAST_POLL', xpath_expressions, filter_flag) end |
- (String) monitoring_xml(filter_flag = INFO_ALL)
Retrieves the monitoring data for all the VMs in the pool, in XML
156 157 158 |
# File 'OpenNebula/VirtualMachinePool.rb', line 156 def monitoring_xml(filter_flag=INFO_ALL) return @client.call(VM_POOL_METHODS[:monitoring], filter_flag) end |