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"
- INVALID_NAME_CHARS =
Same as User.cc
[" ", ":", "\t", "\n", "\v", "\f", "\r"]
- INVALID_PASS_CHARS =
[" ", "\t", "\n", "\v", "\f", "\r"]
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 = nil, gids = []) ⇒ nil, OpenNebula::Error
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(uname, token, expire, egid = -1)) ⇒ 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, #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) ⇒ User
Class constructor
79 80 81 82 83 |
# File 'lib/opennebula/user.rb', line 79 def initialize(xml, client) super(xml,client) @client = client end |
Class Method Details
.build_xml(pe_id = nil) ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/opennebula/user.rb', line 68 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
159 160 161 |
# File 'lib/opennebula/user.rb', line 159 def addgroup(gid) return call(USER_METHODS[:addgroup], @pe_id, gid) end |
#allocate(username, password, driver = nil, gids = []) ⇒ nil, OpenNebula::Error
Allocates a new User in OpenNebula
username
Name of the new user.
password
Password for the new user This array can be empty, in which case the default group will be used.
109 110 111 112 |
# File 'lib/opennebula/user.rb', line 109 def allocate(username, password, driver=nil, gids=[]) driver = CORE_AUTH if driver.nil? super(USER_METHODS[:allocate], username, password, driver, gids) end |
#chauth(auth, password = "") ⇒ nil, OpenNebula::Error
Changes the auth driver and the password of the given User
179 180 181 182 183 184 185 186 |
# File 'lib/opennebula/user.rb', line 179 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
146 147 148 149 150 151 152 153 |
# File 'lib/opennebula/user.rb', line 146 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
127 128 129 |
# File 'lib/opennebula/user.rb', line 127 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
168 169 170 |
# File 'lib/opennebula/user.rb', line 168 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
223 224 225 |
# File 'lib/opennebula/user.rb', line 223 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)
229 230 231 232 |
# File 'lib/opennebula/user.rb', line 229 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.
90 91 92 |
# File 'lib/opennebula/user.rb', line 90 def info() super(USER_METHODS[:info], 'USER') end |
#login(uname, token, expire, egid = -1)) ⇒ String, OpenNebula::Error
Sets the LOGIN_TOKEN for the user
the current GID and user groups set it to -1
213 214 215 |
# File 'lib/opennebula/user.rb', line 213 def login(uname, token, expire, egid = -1) return @client.call(USER_METHODS[:login], uname, token, expire, egid) end |
#passwd(password) ⇒ Object
Changes the password of the given User
password
String containing the new password
134 135 136 137 138 139 140 141 |
# File 'lib/opennebula/user.rb', line 134 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
193 194 195 196 197 198 199 200 |
# File 'lib/opennebula/user.rb', line 193 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
122 123 124 |
# File 'lib/opennebula/user.rb', line 122 def update(new_template, append=false) super(USER_METHODS[:update], new_template, append ? 1 : 0) end |