From cd125c5bb78ed72dbdcc8caf9a7040b2964dd3e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Tue, 25 Oct 2011 15:02:06 +0200 Subject: [PATCH] Bug #847: Guess the driver to use in 'oneuser create' from the authentication option --- src/cli/one_helper/oneuser_helper.rb | 15 +++++++++++++++ src/cli/oneuser | 3 ++- src/oca/ruby/OpenNebula/User.rb | 8 +++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/cli/one_helper/oneuser_helper.rb b/src/cli/one_helper/oneuser_helper.rb index d3a78b0955..930f719e2e 100644 --- a/src/cli/one_helper/oneuser_helper.rb +++ b/src/cli/one_helper/oneuser_helper.rb @@ -82,6 +82,21 @@ class OneUserHelper < OpenNebulaHelper::OneHelper return 0, auth.password end + # Returns the driver to be used for 'oneuser create' + # @param options [Hash] oneuser command options + # @return [String] the authentication driver to use + def driver(options) + if options[:driver] + return options[:driver] + elsif options[:ssh] + return OpenNebula::User::SSH_AUTH + elsif options[:x509] + return OpenNebula::User::X509_AUTH + else + return OpenNebula::User::CORE_AUTH + end + end + def self.login(username, options) if options[:ssh] require 'ssh_auth' diff --git a/src/cli/oneuser b/src/cli/oneuser index 9bb2ba4a70..b1c6970c1b 100755 --- a/src/cli/oneuser +++ b/src/cli/oneuser @@ -159,8 +159,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do end end + driver = helper.driver(options) + helper.create_resource(options) do |user| - driver = options[:driver] || OpenNebula::User::CORE_AUTH user.allocate(args[0], pass, driver) end end diff --git a/src/oca/ruby/OpenNebula/User.rb b/src/oca/ruby/OpenNebula/User.rb index 8e71ff5c6b..ed104a17f0 100644 --- a/src/oca/ruby/OpenNebula/User.rb +++ b/src/oca/ruby/OpenNebula/User.rb @@ -35,9 +35,15 @@ module OpenNebula SELF = -1 - #Selects core authentication driver + # Driver name for default core authentication CORE_AUTH = "core" + # Driver name for ssh authentication + SSH_AUTH = "ssh" + + # Driver name for x509 authentication + X509_AUTH = "x509" + # Creates a User description with just its identifier # this method should be used to create plain User objects. # +id+ the id of the user