Class: OpenNebula::Cluster
- Inherits:
-
PoolElement
- Object
- XMLElement
- PoolElement
- OpenNebula::Cluster
- Defined in:
- opennebula/cluster.rb
Constant Summary
- CLUSTER_METHODS =
Constants and Class Methods
{ :info => "cluster.info", :allocate => "cluster.allocate", :delete => "cluster.delete", :addhost => "cluster.addhost", :delhost => "cluster.delhost", :adddatastore => "cluster.adddatastore", :deldatastore => "cluster.deldatastore", :addvnet => "cluster.addvnet", :delvnet => "cluster.delvnet", :update => "cluster.update", }
Class Method Summary (collapse)
-
+ (Object) build_xml(pe_id = nil)
Creates a Cluster description with just its identifier this method should be used to create plain Cluster objects.
Instance Method Summary (collapse)
-
- (nil, OpenNebula::Error) adddatastore(ds_id)
Adds a Datastore to this Cluster.
-
- (nil, OpenNebula::Error) addhost(hid)
Adds a Host to this Cluster.
-
- (nil, OpenNebula::Error) addvnet(vnet_id)
Adds a VNet to this Cluster.
-
- (Object) allocate(clustername)
Allocates a new Cluster in OpenNebula.
-
- (Boolean) contains_datastore?(id)
Returns whether or not the datastore with 'id' is part of this cluster.
-
- (Boolean) contains_host?(id)
Returns whether or not the host with 'id' is part of this cluster.
-
- (Boolean) contains_vnet?(id)
Returns whether or not the vnet with 'id' is part of this cluster.
-
- (Array<Integer>) datastore_ids
Returns an array with the numeric datastore ids.
-
- (nil, OpenNebula::Error) deldatastore(ds_id)
Deletes a Datastore from this Cluster.
-
- (Object) delete
Deletes the Cluster.
-
- (nil, OpenNebula::Error) delhost(hid)
Deletes a Host from this Cluster.
-
- (nil, OpenNebula::Error) delvnet(vnet_id)
Deletes a VNet from this Cluster.
-
- (Array<Integer>) host_ids
Returns an array with the numeric host ids.
-
- (Object) info
(also: #info!)
Retrieves the information of the given Cluster.
-
- (Cluster) initialize(xml, client)
constructor
Class constructor.
-
- (nil, OpenNebula::Error) update(new_template, append = false)
Replaces the template contents.
-
- (Array<Integer>) vnet_ids
Returns an array with the numeric vnet ids.
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
- (Cluster) initialize(xml, client)
Class constructor
57 58 59 |
# File 'opennebula/cluster.rb', line 57 def initialize(xml, client) super(xml,client) end |
Class Method Details
+ (Object) build_xml(pe_id = nil)
Creates a Cluster description with just its identifier this method should be used to create plain Cluster objects. id the id of the host
Example:
cluster = Cluster.new(Cluster.build_xml(3),rpc_client)
46 47 48 49 50 51 52 53 54 |
# File 'opennebula/cluster.rb', line 46 def Cluster.build_xml(pe_id=nil) if pe_id cluster_xml = "<CLUSTER><ID>#{pe_id}</ID></CLUSTER>" else cluster_xml = "<CLUSTER></CLUSTER>" end XMLElement.build_xml(cluster_xml,'CLUSTER') end |
Instance Method Details
- (nil, OpenNebula::Error) adddatastore(ds_id)
Adds a Datastore to this Cluster
114 115 116 117 118 119 120 121 |
# File 'opennebula/cluster.rb', line 114 def adddatastore(ds_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:adddatastore], @pe_id, ds_id) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (nil, OpenNebula::Error) addhost(hid)
Adds a Host to this Cluster
88 89 90 91 92 93 94 95 |
# File 'opennebula/cluster.rb', line 88 def addhost(hid) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:addhost], @pe_id, hid) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (nil, OpenNebula::Error) addvnet(vnet_id)
Adds a VNet to this Cluster
140 141 142 143 144 145 146 147 |
# File 'opennebula/cluster.rb', line 140 def addvnet(vnet_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:addvnet], @pe_id, vnet_id) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (Object) allocate(clustername)
Allocates a new Cluster in OpenNebula
clustername A string containing the name of the Cluster.
75 76 77 |
# File 'opennebula/cluster.rb', line 75 def allocate(clustername) super(CLUSTER_METHODS[:allocate], clustername) end |
- (Boolean) contains_datastore?(id)
Returns whether or not the datastore with 'id' is part of this cluster
200 201 202 |
# File 'opennebula/cluster.rb', line 200 def contains_datastore?(id) contains_resource?('DATASTORES/ID', id) end |
- (Boolean) contains_host?(id)
Returns whether or not the host with 'id' is part of this cluster
181 182 183 |
# File 'opennebula/cluster.rb', line 181 def contains_host?(id) contains_resource?('HOSTS/ID', id) end |
- (Boolean) contains_vnet?(id)
Returns whether or not the vnet with 'id' is part of this cluster
219 220 221 |
# File 'opennebula/cluster.rb', line 219 def contains_vnet?(id) contains_resource?('VNETS/ID', id) end |
- (Array<Integer>) datastore_ids
Returns an array with the numeric datastore ids
206 207 208 209 210 211 212 213 214 |
# File 'opennebula/cluster.rb', line 206 def datastore_ids array = Array.new self.each("DATASTORES/ID") do |id| array << id.text.to_i end return array end |
- (nil, OpenNebula::Error) deldatastore(ds_id)
Deletes a Datastore from this Cluster
127 128 129 130 131 132 133 134 |
# File 'opennebula/cluster.rb', line 127 def deldatastore(ds_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:deldatastore], @pe_id, ds_id) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (Object) delete
Deletes the Cluster
80 81 82 |
# File 'opennebula/cluster.rb', line 80 def delete() super(CLUSTER_METHODS[:delete]) end |
- (nil, OpenNebula::Error) delhost(hid)
Deletes a Host from this Cluster
101 102 103 104 105 106 107 108 |
# File 'opennebula/cluster.rb', line 101 def delhost(hid) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:delhost], @pe_id, hid) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (nil, OpenNebula::Error) delvnet(vnet_id)
Deletes a VNet from this Cluster
153 154 155 156 157 158 159 160 |
# File 'opennebula/cluster.rb', line 153 def delvnet(vnet_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(CLUSTER_METHODS[:delvnet], @pe_id, vnet_id) rc = nil if !OpenNebula.is_error?(rc) return rc end |
- (Array<Integer>) host_ids
Returns an array with the numeric host ids
187 188 189 190 191 192 193 194 195 |
# File 'opennebula/cluster.rb', line 187 def host_ids array = Array.new self.each("HOSTS/ID") do |id| array << id.text.to_i end return array end |
- (Object) info Also known as: info!
Retrieves the information of the given Cluster.
66 67 68 |
# File 'opennebula/cluster.rb', line 66 def info() super(CLUSTER_METHODS[:info], 'CLUSTER') end |
- (nil, OpenNebula::Error) update(new_template, append = false)
Replaces the template contents
170 171 172 |
# File 'opennebula/cluster.rb', line 170 def update(new_template, append=false) super(CLUSTER_METHODS[:update], new_template, append ? 1 : 0) end |
- (Array<Integer>) vnet_ids
Returns an array with the numeric vnet ids
225 226 227 228 229 230 231 232 233 |
# File 'opennebula/cluster.rb', line 225 def vnet_ids array = Array.new self.each("VNETS/ID") do |id| array << id.text.to_i end return array end |