Class: OpenNebula::User
- Inherits:
-
PoolElement
- Object
- XMLElement
- PoolElement
- OpenNebula::User
- Defined in:
- lib/opennebula/user.rb
Constant Summary collapse
- USER_METHODS =
Constants and Class Methods
{ :info => "user.info", :allocate => "user.allocate", :delete => "user.delete", :passwd => "user.passwd", :chgrp => "user.chgrp", :addgroup => "user.addgroup", :delgroup => "user.delgroup", :update => "user.update", :chauth => "user.chauth", :quota => "user.quota", :login => "user.login" }
- SELF =
-1
- CORE_AUTH =
Driver name for default core authentication
"core"
- CIPHER_AUTH =
Driver name for default core authentication
"server_cipher"
- SSH_AUTH =
Driver name for ssh authentication
"ssh"
- X509_AUTH =
Driver name for x509 authentication
"x509"
- X509_PROXY_AUTH =
Driver name for x509 proxy authentication
"x509_proxy"
Class Method Summary collapse
-
.build_xml(pe_id = nil) ⇒ Object
Creates a User description with just its identifier this method should be used to create plain User objects.
Instance Method Summary collapse
-
#addgroup(gid) ⇒ nil, OpenNebula::Error
Adds the User to a secondary group.
-
#allocate(username, password, driver = CORE_AUTH) ⇒ Object
Allocates a new User in OpenNebula.
-
#chauth(auth, password = "") ⇒ nil, OpenNebula::Error
Changes the auth driver and the password of the given User.
-
#chgrp(gid) ⇒ Object
- Changes the primary group gid
-
Integer the new group id.
-
#delete ⇒ Object
Deletes the User.
-
#delgroup(gid) ⇒ nil, OpenNebula::Error
Removes the User from a secondary group.
-
#gid ⇒ Object
Returns the group identifier [return] Integer the element’s group ID.
-
#groups ⇒ Object
Returns a list with all the group IDs for the user including primary [return] Array with the group ID’s (as integers).
-
#info ⇒ Object
(also: #info!)
Retrieves the information of the given User.
-
#initialize(xml, client) ⇒ User
constructor
Class constructor.
-
#login(username, token, expire) ⇒ String, OpenNebula::Error
Sets the LOGIN_TOKEN for the user.
-
#passwd(password) ⇒ Object
Changes the password of the given User.
-
#set_quota(quota) ⇒ nil, OpenNebula::Error
Sets the user quota limits.
-
#update(new_template, append = false) ⇒ nil, OpenNebula::Error
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, #xml_nil?
Constructor Details
#initialize(xml, client) ⇒ User
Class constructor
75 76 77 78 79 |
# File 'lib/opennebula/user.rb', line 75 def initialize(xml, client) super(xml,client) @client = client end |
Class Method Details
.build_xml(pe_id = nil) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/opennebula/user.rb', line 64 def User.build_xml(pe_id=nil) if pe_id user_xml = "<USER><ID>#{pe_id}</ID></USER>" else user_xml = "<USER></USER>" end XMLElement.build_xml(user_xml, 'USER') end |
Instance Method Details
#addgroup(gid) ⇒ nil, OpenNebula::Error
Adds the User to a secondary group
146 147 148 |
# File 'lib/opennebula/user.rb', line 146 def addgroup(gid) return call(USER_METHODS[:addgroup], @pe_id, gid) end |
#allocate(username, password, driver = CORE_AUTH) ⇒ Object
Allocates a new User in OpenNebula
username
Name of the new user.
password
Password for the new user
97 98 99 |
# File 'lib/opennebula/user.rb', line 97 def allocate(username, password, driver=CORE_AUTH) super(USER_METHODS[:allocate], username, password, driver) end |
#chauth(auth, password = "") ⇒ nil, OpenNebula::Error
Changes the auth driver and the password of the given User
166 167 168 169 170 171 172 173 |
# File 'lib/opennebula/user.rb', line 166 def chauth(auth, password="") return Error.new('ID not defined') if !@pe_id rc = @client.call(USER_METHODS[:chauth],@pe_id, auth, password) rc = nil if !OpenNebula.is_error?(rc) return rc end |
#chgrp(gid) ⇒ Object
Changes the primary group
- gid
-
Integer the new group id. Set to -1 to leave the current one
- return
-
nil in case of success or an Error object
133 134 135 136 137 138 139 140 |
# File 'lib/opennebula/user.rb', line 133 def chgrp(gid) return Error.new('ID not defined') if !@pe_id rc = @client.call(USER_METHODS[:chgrp],@pe_id, gid) rc = nil if !OpenNebula.is_error?(rc) return rc end |
#delete ⇒ Object
Deletes the User
114 115 116 |
# File 'lib/opennebula/user.rb', line 114 def delete() super(USER_METHODS[:delete]) end |
#delgroup(gid) ⇒ nil, OpenNebula::Error
Removes the User from a secondary group. Fails if the group is the main one
155 156 157 |
# File 'lib/opennebula/user.rb', line 155 def delgroup(gid) return call(USER_METHODS[:delgroup], @pe_id, gid) end |
#gid ⇒ Object
Returns the group identifier
- return
-
Integer the element’s group ID
208 209 210 |
# File 'lib/opennebula/user.rb', line 208 def gid self['GID'].to_i end |
#groups ⇒ Object
Returns a list with all the group IDs for the user including primary
- return
-
Array with the group ID’s (as integers)
214 215 216 217 |
# File 'lib/opennebula/user.rb', line 214 def groups all_groups = self.retrieve_elements("GROUPS/ID") all_groups.collect! {|x| x.to_i} end |
#info ⇒ Object Also known as: info!
Retrieves the information of the given User.
86 87 88 |
# File 'lib/opennebula/user.rb', line 86 def info() super(USER_METHODS[:info], 'USER') end |
#login(username, token, expire) ⇒ String, OpenNebula::Error
Sets the LOGIN_TOKEN for the user
198 199 200 |
# File 'lib/opennebula/user.rb', line 198 def login(username, token, expire) return @client.call(USER_METHODS[:login], username, token, expire) end |
#passwd(password) ⇒ Object
Changes the password of the given User
password
String containing the new password
121 122 123 124 125 126 127 128 |
# File 'lib/opennebula/user.rb', line 121 def passwd(password) return Error.new('ID not defined') if !@pe_id rc = @client.call(USER_METHODS[:passwd], @pe_id, password) rc = nil if !OpenNebula.is_error?(rc) return rc end |
#set_quota(quota) ⇒ nil, OpenNebula::Error
Sets the user quota limits
180 181 182 183 184 185 186 187 |
# File 'lib/opennebula/user.rb', line 180 def set_quota(quota) return Error.new('ID not defined') if !@pe_id rc = @client.call(USER_METHODS[:quota],@pe_id, quota) rc = nil if !OpenNebula.is_error?(rc) return rc end |
#update(new_template, append = false) ⇒ nil, OpenNebula::Error
Replaces the template contents
109 110 111 |
# File 'lib/opennebula/user.rb', line 109 def update(new_template, append=false) super(USER_METHODS[:update], new_template, append ? 1 : 0) end |