Class: OpenNebula::Zone
- Inherits:
-
PoolElement
- Object
- XMLElement
- PoolElement
- OpenNebula::Zone
- Defined in:
- lib/opennebula/zone.rb
Constant Summary collapse
- ZONE_METHODS =
Constants and Class Methods
{ :info => "zone.info", :allocate => "zone.allocate", :update => "zone.update", :rename => "zone.rename", :delete => "zone.delete", :addserver => "zone.addserver", :delserver => "zone.delserver", :resetserver => "zone.resetserver" }
Class Method Summary collapse
-
.build_xml(pe_id = nil) ⇒ Object
Creates a Zone description with just its identifier this method should be used to create plain Zone objects.
Instance Method Summary collapse
-
#add_servers(servers) ⇒ nil, OpenNebula::Error
Adds servers to this Zone.
-
#allocate(description) ⇒ nil, OpenNebula::Error
Allocates a new Zone in OpenNebula.
-
#delete ⇒ nil, OpenNebula::Error
Deletes the Zone.
-
#delete_servers(server_id) ⇒ nil, OpenNebula::Error
Delete servers from this Zone.
-
#info ⇒ nil, OpenNebula::Error
(also: #info!)
Retrieves the information of the given Zone.
-
#info_extended ⇒ nil, OpenNebula::Error
(also: #info_extended!)
Retrieves the information extended of the given Zone.
-
#initialize(xml, client) ⇒ Zone
constructor
Class constructor.
-
#rename(name) ⇒ nil, OpenNebula::Error
Renames this Zone.
-
#reset_server(server_id) ⇒ nil, OpenNebula::Error
Reset index for a follower.
-
#update(new_template = nil, append = false) ⇒ nil, OpenNebula::Error
Replaces the template contents.
Methods inherited from PoolElement
#id, #name, new_with_id, #replace, #to_str
Methods inherited from XMLElement
#[], #attr, #delete_element, #each, #each_xpath, #element_xml, #has_elements?, #initialize_xml, #name, #retrieve_elements, #retrieve_xmlelements, #set_content, #template_like_str, #template_str, #template_xml, #text, #to_hash, #to_xml, #xml_nil?
Constructor Details
#initialize(xml, client) ⇒ Zone
Class constructor
55 56 57 |
# File 'lib/opennebula/zone.rb', line 55 def initialize(xml, client) super(xml,client) end |
Class Method Details
.build_xml(pe_id = nil) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/opennebula/zone.rb', line 44 def Zone.build_xml(pe_id=nil) if pe_id zone_xml = "<ZONE><ID>#{pe_id}</ID></ZONE>" else zone_xml = "<ZONE></ZONE>" end XMLElement.build_xml(zone_xml,'ZONE') end |
Instance Method Details
#add_servers(servers) ⇒ nil, OpenNebula::Error
Adds servers to this Zone
158 159 160 |
# File 'lib/opennebula/zone.rb', line 158 def add_servers(servers) return call(ZONE_METHODS[:addserver], @pe_id, servers) end |
#allocate(description) ⇒ nil, OpenNebula::Error
Allocates a new Zone in OpenNebula
118 119 120 |
# File 'lib/opennebula/zone.rb', line 118 def allocate(description) super(ZONE_METHODS[:allocate], description) end |
#delete ⇒ nil, OpenNebula::Error
Deletes the Zone
137 138 139 |
# File 'lib/opennebula/zone.rb', line 137 def delete() super(ZONE_METHODS[:delete]) end |
#delete_servers(server_id) ⇒ nil, OpenNebula::Error
Delete servers from this Zone
168 169 170 |
# File 'lib/opennebula/zone.rb', line 168 def delete_servers(server_id) return call(ZONE_METHODS[:delserver], @pe_id, server_id) end |
#info ⇒ nil, OpenNebula::Error Also known as: info!
Retrieves the information of the given Zone.
66 67 68 |
# File 'lib/opennebula/zone.rb', line 66 def info() super(ZONE_METHODS[:info], 'ZONE') end |
#info_extended ⇒ nil, OpenNebula::Error Also known as: info_extended!
Retrieves the information extended of the given Zone.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/opennebula/zone.rb', line 73 def info_extended() rc = info() return rc if OpenNebula.is_error?(rc) @xml.xpath("SERVER_POOL/SERVER").each do |server| endpoint = server.xpath("ENDPOINT") endpoint = endpoint.text if endpoint next if endpoint.nil? client = OpenNebula::Client.new(nil, endpoint, {:timeout => 5}) xml = client.call("zone.raftstatus") if OpenNebula.is_error?(xml) add_element(server, "STATE", "-") add_element(server, "TERM", "-") add_element(server, "VOTEDFOR", "-") add_element(server, "COMMIT", "-") add_element(server, "LOG_INDEX", "-") add_element(server, "FEDLOG_INDEX", "-") next end xml = Nokogiri::XML(xml) add_element_xml(server, xml, "STATE", "RAFT/STATE") add_element_xml(server, xml, "TERM", "RAFT/TERM") add_element_xml(server, xml, "VOTEDFOR", "RAFT/VOTEDFOR") add_element_xml(server, xml, "COMMIT", "RAFT/COMMIT") add_element_xml(server, xml, "LOG_INDEX", "RAFT/LOG_INDEX") add_element_xml(server, xml, "FEDLOG_INDEX","RAFT/FEDLOG_INDEX") end end |
#rename(name) ⇒ nil, OpenNebula::Error
Renames this Zone
147 148 149 |
# File 'lib/opennebula/zone.rb', line 147 def rename(name) return call(ZONE_METHODS[:rename], @pe_id, name) end |
#reset_server(server_id) ⇒ nil, OpenNebula::Error
Reset index for a follower
178 179 180 |
# File 'lib/opennebula/zone.rb', line 178 def reset_server(server_id) return call(ZONE_METHODS[:resetserver], @pe_id, server_id) end |
#update(new_template = nil, append = false) ⇒ nil, OpenNebula::Error
Replaces the template contents
130 131 132 |
# File 'lib/opennebula/zone.rb', line 130 def update(new_template=nil, append=false) super(ZONE_METHODS[:update], new_template, append ? 1 : 0) end |