From 900adef61466469edf2f7bdf61c8c29b2d50b4eb Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Thu, 6 Mar 2014 15:18:25 +0100 Subject: [PATCH] Several group OCA and JSON related improvments Remove file template group creation --- src/cli/one_helper.rb | 4 ++-- src/cli/onegroup | 18 +++++------------- src/oca/ruby/opennebula/group.rb | 19 ++++++------------- .../models/OpenNebulaJSON/GroupJSON.rb | 12 +++++++----- 4 files changed, 20 insertions(+), 33 deletions(-) diff --git a/src/cli/one_helper.rb b/src/cli/one_helper.rb index 57929b6f3c..97eebc9898 100644 --- a/src/cli/one_helper.rb +++ b/src/cli/one_helper.rb @@ -154,8 +154,8 @@ EOT :format => String }, { - :name => 'admin_passwd', - :large => '--admin_passwd password', + :name => 'admin_password', + :large => '--admin_password password', :short => "-p", :description => 'Password for the admin user of the group', diff --git a/src/cli/onegroup b/src/cli/onegroup index 8a3d0ca587..ad5953f1f4 100755 --- a/src/cli/onegroup +++ b/src/cli/onegroup @@ -94,39 +94,31 @@ cmd=CommandParser::CmdParser.new(ARGV) do EOT - command :create, create_desc, [:file, :group_name, nil], :options => + command :create, create_desc, [:group_name, nil], :options => OpenNebulaHelper::GROUP_OPTIONS do - if args[0] && !options.empty? - STDERR.puts "You can not use both template file and template"<< - " creation options." - next -1 - end if !args[0] && options.empty? - STDERR.puts "Please use either a template, just a group name or command arguments" + STDERR.puts "Please use either a group name or command arguments" next -1 end if options && options[:admin_user] - if !options[:admin_passwd] + if !options[:admin_password] STDERR.puts "Admin user needs password" next -1 end admin_user=Hash.new admin_user[:name] = options[:admin_user] - admin_user[:password] = options[:admin_passwd] + admin_user[:password] = options[:admin_password] if options[:admin_driver] admin_user[:auth_driver] = options[:admin_driver] end options[:user] = admin_user end - if args[0] && File.exists?(args[0]) - hashed_template = helper.parse_template(File.open(args[0]).read) - helper.create_complete_resource(hashed_template) - elsif !options.empty? + if !options.empty? helper.create_complete_resource(options) elsif args[0] helper.create_resource(options) do |group| diff --git a/src/oca/ruby/opennebula/group.rb b/src/oca/ruby/opennebula/group.rb index 770a13c608..ed83177c88 100644 --- a/src/oca/ruby/opennebula/group.rb +++ b/src/oca/ruby/opennebula/group.rb @@ -75,14 +75,8 @@ module OpenNebula alias_method :info!, :info def create(group_hash) - group_hash=Hash[group_hash.map{|(k,v)| [k.to_sym,v]}] - if group_hash[:user] - group_hash[:user]=Hash[group_hash[:user].map{|(k,v)| - [k.to_sym,v]}] - end - if !group_hash[:name] - return -1, + return -1, "Group Name not defined, aborting group create operation" end @@ -109,13 +103,12 @@ module OpenNebula if group_hash[:resource_providers] for rp in group_hash[:resource_providers] # If we have resource providers, add them - if rp["zone_id"] and rp["cluster_id"] - if rp["cluster_id"].class!=Fixnum and - rp["cluster_id"].upcase=="ALL" - add_provider({"zone_id"=>rp["zone_id"], - "cluster_id"=>ALL_CLUSTERS_IN_ZONE}) + if rp[:zone_id] and rp[:cluster_id] + if rp[:cluster_id].class!=Fixnum and + rp[:cluster_id].upcase=="ALL" + add_provider(rp[:zone_id],ALL_CLUSTERS_IN_ZONE) else - add_provider(rp) + add_provider(rp[:zone_id],rp[:cluster_id]) end end end diff --git a/src/sunstone/models/OpenNebulaJSON/GroupJSON.rb b/src/sunstone/models/OpenNebulaJSON/GroupJSON.rb index a5e7576902..08fde52b62 100644 --- a/src/sunstone/models/OpenNebulaJSON/GroupJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/GroupJSON.rb @@ -21,7 +21,7 @@ module OpenNebulaJSON include JSONUtils def create(template_json) - group_hash = parse_json(template_json,'group') + group_hash = parse_json_sym(template_json,:group) if OpenNebula.is_error?(group_hash) return group_hash end @@ -39,8 +39,10 @@ module OpenNebulaJSON when "chown" then self.chown(action_hash['params']) when "update" then self.update(action_hash['params']) when "set_quota" then self.set_quota(action_hash['params']) - when "add_provider" then self.add_provider(action_hash['params']) - when "del_provider" then self.del_provider(action_hash['params']) + when "add_provider" then + self.add_provider_json(action_hash['params']) + when "del_provider" then + self.del_provider_json(action_hash['params']) else error_msg = "#{action_hash['perform']} action not " << " available for this resource" @@ -62,11 +64,11 @@ module OpenNebulaJSON super(quota_template) end - def add_provider(params=Hash.new) + def add_provider_json(params=Hash.new) super(params['zone_id'].to_i, params['cluster_id'].to_i) end - def del_provider(params=Hash.new) + def del_provider_json(params=Hash.new) super(params['zone_id'].to_i, params['cluster_id'].to_i) end end