class OpenNebula::User
Constants
- CIPHER_AUTH
Driver name for default core authentication
- CORE_AUTH
Driver name for default core authentication
- INVALID_NAME_CHARS
Same as User.cc
- INVALID_PASS_CHARS
- SELF
- SSH_AUTH
Driver name for ssh authentication
- USER_METHODS
Constants and Class Methods
- X509_AUTH
Driver name for x509 authentication
- X509_PROXY_AUTH
Driver name for x509 proxy authentication
Public Class Methods
Creates a User
description with just its identifier this method should be used to create plain User
objects. id
the id of the user
Example:
user = User.new(User.build_xml(3),rpc_client)
# 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
Class constructor
OpenNebula::PoolElement::new
# File lib/opennebula/user.rb, line 79 def initialize(xml, client) super(xml,client) @client = client end
Public Instance Methods
Allocates a new User
in OpenNebula
username
Name of the new user.
password
Password for the new user @param username Username for the new user. @param password Password for the new user @param driver Auth driver for the new user. @param gids Group
IDs. The first ID will be used as the main group. This array can be empty, in which case the default group will be used.
@return [nil, OpenNebula::Error] nil in case of success, Error
otherwise
OpenNebula::PoolElement#allocate
# 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
Changes the auth driver and the password of the given User
@param auth [String] the new auth driver @param password [String] the new password. If it is an empty string,
the user password is not changed
@return [nil, OpenNebula::Error] nil in case of success, Error
otherwise
# 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
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
# 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
Deletes the User
OpenNebula::PoolElement#delete
# File lib/opennebula/user.rb, line 127 def delete() super(USER_METHODS[:delete]) end
Returns the group identifier
- return
-
Integer the element's group ID
# File lib/opennebula/user.rb, line 223 def gid self['GID'].to_i end
Returns a list with all the group IDs for the user including primary
- return
-
Array with the group ID's (as integers)
# File lib/opennebula/user.rb, line 229 def groups all_groups = self.retrieve_elements("GROUPS/ID") all_groups.collect! {|x| x.to_i} end
Retrieves the information of the given User
.
OpenNebula::PoolElement#info
# File lib/opennebula/user.rb, line 90 def info() super(USER_METHODS[:info], 'USER') end
Sets the LOGIN_TOKEN for the user
@param uname [String] of the user @param token [String] the login token, if empty OpenNebula
will
generate one
@param expire [String] valid period of the token in secs. If == 0
the token will be reset
@param egid [Integer] Effective GID to use with this token. To use the current GID and user groups set it to -1 @return [String, OpenNebula::Error] token in case of success, Error
otherwise
# 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
Changes the password of the given User
password
String containing the new password
# 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
Sets the user quota limits @param quota [String] a template (XML or txt) with the new quota limits
@return [nil, OpenNebula::Error] nil in case of success, Error
otherwise
# 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
Replaces the template contents
@param new_template [String] New template contents @param append [true, false] True to append new attributes instead of
replace the whole template
@return [nil, OpenNebula::Error] nil in case of success, Error
otherwise
OpenNebula::PoolElement#update
# File lib/opennebula/user.rb, line 122 def update(new_template, append=false) super(USER_METHODS[:update], new_template, append ? 1 : 0) end