Class: OpenNebula::SecurityGroup
- Inherits:
-
PoolElement
- Object
- XMLElement
- PoolElement
- OpenNebula::SecurityGroup
- Defined in:
- lib/opennebula/security_group.rb
Constant Summary collapse
- SECGROUP_METHODS =
{ :allocate => "secgroup.allocate", :info => "secgroup.info", :update => "secgroup.update", :delete => "secgroup.delete", :chown => "secgroup.chown", :chmod => "secgroup.chmod", :clone => "secgroup.clone", :rename => "secgroup.rename", :commit => "secgroup.commit" }
Instance Attribute Summary
Attributes inherited from PoolElement
Class Method Summary collapse
-
.build_xml(pe_id = nil) ⇒ Object
Creates a SecurityGroup description with just its identifier this method should be used to create plain SecurityGroup objects.
Instance Method Summary collapse
-
#allocate(description) ⇒ nil, OpenNebula::Error
Allocates a new SecurityGroup in OpenNebula.
-
#chmod(owner_u, owner_m, owner_a, group_u, group_m, group_a, other_u, other_m, other_a) ⇒ nil, OpenNebula::Error
Changes the SecurityGroup permissions.
-
#chmod_octet(octet) ⇒ nil, OpenNebula::Error
Changes the SecurityGroup permissions.
-
#chown(uid, gid) ⇒ nil, OpenNebula::Error
Changes the owner/group.
-
#clone(name) ⇒ Integer, OpenNebula::Error
Clones this SecurityGroup into a new one.
-
#commit(recover) ⇒ nil, OpenNebula::Error
Commit SG changes to associated VMs.
-
#delete ⇒ Object
Deletes the SecurityGroup.
-
#gid ⇒ Object
Returns the group identifier [return] Integer the element’s group ID.
-
#info ⇒ Object
(also: #info!)
Retrieves the information of the given SecurityGroup.
-
#initialize(xml, client) ⇒ SecurityGroup
constructor
Class constructor.
- #owner_id ⇒ Object
-
#rename(name) ⇒ nil, OpenNebula::Error
Renames this SecurityGroup.
-
#update(new_securitygroup, append = false) ⇒ nil, OpenNebula::Error
Replaces the securitygroup contents.
-
#vm_ids ⇒ Object
Returns three arrays with the numeric vm ids for vms updated, outdated (include updating) and error.
Methods inherited from PoolElement
#id, new_with_id, #replace, #to_str
Methods inherited from XMLElement
#[], #add_element, #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) ⇒ SecurityGroup
Class constructor
53 54 55 56 57 |
# File 'lib/opennebula/security_group.rb', line 53 def initialize(xml, client) super(xml,client) @client = client end |
Class Method Details
.build_xml(pe_id = nil) ⇒ Object
Creates a SecurityGroup description with just its identifier this method should be used to create plain SecurityGroup objects.
42 43 44 45 46 47 48 49 50 |
# File 'lib/opennebula/security_group.rb', line 42 def SecurityGroup.build_xml(pe_id=nil) if pe_id obj_xml = "<SECURITY_GROUP><ID>#{pe_id}</ID></SECURITY_GROUP>" else obj_xml = "<SECURITY_GROUP></SECURITY_GROUP>" end XMLElement.build_xml(obj_xml,'SECURITY_GROUP') end |
Instance Method Details
#allocate(description) ⇒ nil, OpenNebula::Error
Allocates a new SecurityGroup in OpenNebula
76 77 78 |
# File 'lib/opennebula/security_group.rb', line 76 def allocate(description) super(SECGROUP_METHODS[:allocate], description) end |
#chmod(owner_u, owner_m, owner_a, group_u, group_m, group_a, other_u, other_m, other_a) ⇒ nil, OpenNebula::Error
Changes the SecurityGroup permissions. Each [Integer] argument must be 1 to allow, 0 deny, -1 do not change
121 122 123 124 125 |
# File 'lib/opennebula/security_group.rb', line 121 def chmod(owner_u, owner_m, owner_a, group_u, group_m, group_a, other_u, other_m, other_a) super(SECGROUP_METHODS[:chmod], owner_u, owner_m, owner_a, group_u, group_m, group_a, other_u, other_m, other_a) end |
#chmod_octet(octet) ⇒ nil, OpenNebula::Error
Changes the SecurityGroup permissions.
112 113 114 |
# File 'lib/opennebula/security_group.rb', line 112 def chmod_octet(octet) super(SECGROUP_METHODS[:chmod], octet) end |
#chown(uid, gid) ⇒ nil, OpenNebula::Error
Changes the owner/group
103 104 105 |
# File 'lib/opennebula/security_group.rb', line 103 def chown(uid, gid) super(SECGROUP_METHODS[:chown], uid, gid) end |
#clone(name) ⇒ Integer, OpenNebula::Error
Clones this SecurityGroup into a new one
133 134 135 136 137 138 139 |
# File 'lib/opennebula/security_group.rb', line 133 def clone(name) return Error.new('ID not defined') if !@pe_id rc = @client.call(SECGROUP_METHODS[:clone], @pe_id, name) return rc end |
#commit(recover) ⇒ nil, OpenNebula::Error
Commit SG changes to associated VMs
VMs. This is intended for retrying updates of VMs or reinitialize the updating process if oned stopped or fail.
159 160 161 |
# File 'lib/opennebula/security_group.rb', line 159 def commit(recover) return call(SECGROUP_METHODS[:commit], @pe_id, recover) end |
#delete ⇒ Object
Deletes the SecurityGroup
81 82 83 |
# File 'lib/opennebula/security_group.rb', line 81 def delete() super(SECGROUP_METHODS[:delete]) end |
#gid ⇒ Object
Returns the group identifier
- return
-
Integer the element’s group ID
197 198 199 |
# File 'lib/opennebula/security_group.rb', line 197 def gid self['GID'].to_i end |
#info ⇒ Object Also known as: info!
Retrieves the information of the given SecurityGroup.
64 65 66 |
# File 'lib/opennebula/security_group.rb', line 64 def info() super(SECGROUP_METHODS[:info], 'SECURITY_GROUP') end |
#owner_id ⇒ Object
201 202 203 |
# File 'lib/opennebula/security_group.rb', line 201 def owner_id self['UID'].to_i end |
#rename(name) ⇒ nil, OpenNebula::Error
Renames this SecurityGroup
147 148 149 |
# File 'lib/opennebula/security_group.rb', line 147 def rename(name) return call(SECGROUP_METHODS[:rename], @pe_id, name) end |
#update(new_securitygroup, append = false) ⇒ nil, OpenNebula::Error
Replaces the securitygroup contents
93 94 95 |
# File 'lib/opennebula/security_group.rb', line 93 def update(new_securitygroup, append=false) super(SECGROUP_METHODS[:update], new_securitygroup, append ? 1 : 0) end |
#vm_ids ⇒ Object
Returns three arrays with the numeric vm ids for vms updated, outdated (include updating) and error
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/opennebula/security_group.rb', line 169 def vm_ids updated = Array.new self.each("UPDATED_VMS/ID") do |id| updated << id.text.to_i end outdated = Array.new self.each("OUTDATED_VMS/ID") do |id| outdated << id.text.to_i end self.each("UPDATING_VMS/ID") do |id| outdated << id.text.to_i end error = Array.new self.each("ERROR_VMS/ID") do |id| error << id.text.to_i end return [updated, outdated, error] end |