From fa96d8a7e2da05ee1bf761d31c97f529a0e19f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Wed, 21 Jul 2010 11:45:31 +0200 Subject: [PATCH] feature #286: oneuser command now supports new passwd sub-command to change password. --- src/cli/oneuser | 21 ++++++++++++++++++++- src/oca/ruby/OpenNebula/User.rb | 13 ++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/cli/oneuser b/src/cli/oneuser index 10e62287e1..576a5ee918 100755 --- a/src/cli/oneuser +++ b/src/cli/oneuser @@ -103,6 +103,9 @@ Commands: * list (Lists all the users in the pool) oneuser list +* passwd (Changes the given user's password) + oneuser passwd password + EOT def text_commands @@ -181,7 +184,23 @@ when "delete" puts "User deleted" if ops[:verbose] end end - + +when "passwd" + check_parameters("passwd", 2) + + user_id=get_user_id(ARGV[0]) + + user=OpenNebula::User.new_with_id(user_id, get_one_client) + + sha_password = Digest::SHA1.hexdigest(ARGV[1]) + result=user.passwd(sha_password) + + if !OpenNebula.is_error?(result) + puts "Password changed" if ops[:verbose] + else + puts + end + when "list" if !ops[:xml] uplist=UPShow.new diff --git a/src/oca/ruby/OpenNebula/User.rb b/src/oca/ruby/OpenNebula/User.rb index 7289904c6b..17885ca16a 100644 --- a/src/oca/ruby/OpenNebula/User.rb +++ b/src/oca/ruby/OpenNebula/User.rb @@ -8,7 +8,8 @@ module OpenNebula USER_METHODS = { :info => "user.info", :allocate => "user.allocate", - :delete => "user.delete" + :delete => "user.delete", + :passwd => "user.passwd" } # Creates a User description with just its identifier @@ -51,5 +52,15 @@ module OpenNebula def delete() super(USER_METHODS[:delete]) end + + 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 + end end