Class: OpenNebula::Host
- Inherits:
-
PoolElement
- Object
- XMLElement
- PoolElement
- OpenNebula::Host
- Defined in:
- OpenNebula/Host.rb
Constant Summary
- HOST_METHODS =
{ :info => "host.info", :allocate => "host.allocate", :delete => "host.delete", :enable => "host.enable", :update => "host.update", :monitoring => "host.monitoring" }
- HOST_STATES =
%w{INIT MONITORING_MONITORED MONITORED ERROR DISABLED MONITORING_ERROR}
- SHORT_HOST_STATES =
{ "INIT" => "init", "MONITORING_MONITORED" => "update", "MONITORED" => "on", "ERROR" => "err", "DISABLED" => "off", "MONITORING_ERROR" => "retry", }
Class Method Summary (collapse)
-
+ (Object) build_xml(pe_id = nil)
Creates a Host description with just its identifier this method should be used to create plain Host objects.
Instance Method Summary (collapse)
-
- (Integer, OpenNebula::Error) allocate(hostname, im, vmm, vnm, cluster_id = ClusterPool::NONE_CLUSTER_ID)
Allocates a new Host in OpenNebula.
-
- (Object) delete
Deletes the Host.
-
- (Object) disable
Disables the Host.
-
- (Object) enable
Enables the Host.
- - (Object) flush
-
- (Object) info
Retrieves the information of the given Host.
-
- (Host) initialize(xml, client)
constructor
Class constructor.
-
- (Hash<String, Array<Array<int>>>, OpenNebula::Error) monitoring(xpath_expressions)
Retrieves this Host's monitoring data from OpenNebula.
-
- (String) monitoring_xml
Retrieves this Host's monitoring data from OpenNebula, in XML.
-
- (Object) short_state_str
Returns the state of the Host (string value).
-
- (Object) state
Returns the state of the Host (numeric value).
-
- (Object) state_str
Returns the state of the Host (string value).
-
- (Object) update(new_template)
Replaces the template contents.
Methods inherited from PoolElement
#id, #name, new_with_id, #to_str
Methods inherited from XMLElement
#[], #add_element, #attr, #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
- (Host) initialize(xml, client)
Class constructor
65 66 67 68 69 70 |
# File 'OpenNebula/Host.rb', line 65 def initialize(xml, client) super(xml,client) @client = client @pe_id = self['ID'].to_i if self['ID'] end |
Class Method Details
+ (Object) build_xml(pe_id = nil)
Creates a Host description with just its identifier this method should be used to create plain Host objects. id the id of the host
Example:
host = Host.new(Host.build_xml(3),rpc_client)
54 55 56 57 58 59 60 61 62 |
# File 'OpenNebula/Host.rb', line 54 def Host.build_xml(pe_id=nil) if pe_id host_xml = "<HOST><ID>#{pe_id}</ID></HOST>" else host_xml = "<HOST></HOST>" end XMLElement.build_xml(host_xml, 'HOST') end |
Instance Method Details
- (Integer, OpenNebula::Error) allocate(hostname, im, vmm, vnm, cluster_id = ClusterPool::NONE_CLUSTER_ID)
Allocates a new Host in OpenNebula
91 92 93 |
# File 'OpenNebula/Host.rb', line 91 def allocate(hostname,im,vmm,vnm,cluster_id=ClusterPool::NONE_CLUSTER_ID) super(HOST_METHODS[:allocate],hostname,im,vmm,vnm,cluster_id) end |
- (Object) delete
Deletes the Host
96 97 98 |
# File 'OpenNebula/Host.rb', line 96 def delete() super(HOST_METHODS[:delete]) end |
- (Object) disable
Disables the Host
106 107 108 |
# File 'OpenNebula/Host.rb', line 106 def disable() set_enabled(false) end |
- (Object) enable
Enables the Host
101 102 103 |
# File 'OpenNebula/Host.rb', line 101 def enable() set_enabled(true) end |
- (Object) flush
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'OpenNebula/Host.rb', line 110 def flush() self.disable vm_pool = OpenNebula::VirtualMachinePool.new(@client, VirtualMachinePool::INFO_ALL_VM) rc = vm_pool.info if OpenNebula.is_error?(rc) puts rc. exit -1 end vm_pool.each do |vm| hid = vm['HISTORY_RECORDS/HISTORY[last()]/HID'] if hid == self['ID'] vm.resched end end end |
- (Object) info
Retrieves the information of the given Host.
77 78 79 |
# File 'OpenNebula/Host.rb', line 77 def info() super(HOST_METHODS[:info], 'HOST') end |
- (Hash<String, Array<Array<int>>>, OpenNebula::Error) monitoring(xpath_expressions)
Retrieves this Host's monitoring data from OpenNebula
156 157 158 159 |
# File 'OpenNebula/Host.rb', line 156 def monitoring(xpath_expressions) return super(HOST_METHODS[:monitoring], 'HOST', 'LAST_MON_TIME', xpath_expressions) end |
- (String) monitoring_xml
Retrieves this Host's monitoring data from OpenNebula, in XML
164 165 166 167 168 |
# File 'OpenNebula/Host.rb', line 164 def monitoring_xml() return Error.new('ID not defined') if !@pe_id return @client.call(HOST_METHODS[:monitoring], @pe_id) end |
- (Object) short_state_str
Returns the state of the Host (string value)
185 186 187 |
# File 'OpenNebula/Host.rb', line 185 def short_state_str SHORT_HOST_STATES[state_str] end |
- (Object) state
Returns the state of the Host (numeric value)
175 176 177 |
# File 'OpenNebula/Host.rb', line 175 def state self['STATE'].to_i end |
- (Object) state_str
Returns the state of the Host (string value)
180 181 182 |
# File 'OpenNebula/Host.rb', line 180 def state_str HOST_STATES[state] end |
- (Object) update(new_template)
Replaces the template contents
new_template New template contents
133 134 135 |
# File 'OpenNebula/Host.rb', line 133 def update(new_template) super(HOST_METHODS[:update], new_template) end |