From b11ae81c15b6199f7a380830c15d878b1b460e8e Mon Sep 17 00:00:00 2001 From: Alejandro Huertas Herrero Date: Tue, 19 Feb 2019 10:06:44 +0100 Subject: [PATCH] F #2645: Made some cleanups in the helper (#2963) --- src/cli/one_helper/oneprovision_helper.rb | 121 ++++++++++------------ src/cli/oneprovision | 16 +-- 2 files changed, 64 insertions(+), 73 deletions(-) diff --git a/src/cli/one_helper/oneprovision_helper.rb b/src/cli/one_helper/oneprovision_helper.rb index 4e82eaa9ea..40c5f1f49d 100644 --- a/src/cli/one_helper/oneprovision_helper.rb +++ b/src/cli/one_helper/oneprovision_helper.rb @@ -105,34 +105,22 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper # Helper host functions ####################################################################### - def hosts_operation(args, operation, options) - parse_options(options) + def host_operation(host, operation, options, args) + host = OneProvision::Host.new(host['ID']) - pool = OneProvision::Host.new.pool - helper = OneHostHelper.new - - hosts = name_to_id(args[0], pool) - - helper.set_client(options) - helper.perform_actions(hosts, - options, - operation[:message]) do |host| - host = OneProvision::Host.new(host['ID']) - - case operation[:operation] - when 'resume' - host.resume - when 'poweroff' - host.poweroff - when 'reboot' - host.reboot((options.key? :hard)) - when 'delete' - host.delete - when 'configure' - host.configure((options.key? :force)) - when 'ssh' - host.ssh(args[1]) - end + case operation[:operation] + when 'resume' + host.resume + when 'poweroff' + host.poweroff + when 'reboot' + host.reboot((options.key? :hard)) + when 'delete' + host.delete + when 'configure' + host.configure((options.key? :force)) + when 'ssh' + host.ssh(args) end end @@ -140,26 +128,14 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper # Helper datastore functions ####################################################################### - def datastores_operation(args, operation, options) - parse_options(options) + def datastore_operation(datastore, operation) + case operation[:operation] + when 'delete' + msg = "Deleting datastore #{datastore['ID']}" - pool = OneProvision::Datastore.new.pool - helper = OneDatastoreHelper.new + OneProvision::OneProvisionLogger.info(msg) - datastores = name_to_id(args[0], pool) - - helper.set_client(options) - helper.perform_actions(datastores, - options, - operation[:message]) do |datastore| - case operation[:operation] - when 'delete' - msg = "Deleting datastore #{datastore['ID']}" - - OneProvision::OneProvisionLogger.info(msg) - - datastore.delete - end + datastore.delete end end @@ -167,25 +143,45 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper # Helper vnet functions ####################################################################### - def vnets_operation(args, operation, options) + def vnet_operation(vnet, operation) + case operation[:operation] + when 'delete' + msg = "Deleting vnet #{vnet['ID']}" + + OneProvision::OneProvisionLogger.info(msg) + + vnet.delete + end + end + + ####################################################################### + # Helper resource functions + ####################################################################### + + def resources_operation(args, operation, options, type) parse_options(options) - pool = OneProvision::Vnet.new.pool - helper = OneVNetHelper.new + helper = nil - vnets = name_to_id(args[0], pool) + case type + when 'HOST' then helper = OneHostHelper.new + when 'DATASTORE' then helper = OneDatastoreHelper.new + when 'VNET' then helper = OneVNetHelper.new + end + + objects = names_to_ids(args[0], type) helper.set_client(options) - helper.perform_actions(vnets, + helper.perform_actions(objects, options, - operation[:message]) do |vnet| - case operation[:operation] - when 'delete' - msg = "Deleting vnet #{vnet['ID']}" - - OneProvision::OneProvisionLogger.info(msg) - - vnet.delete + operation[:message]) do |obj| + case type + when 'HOST' then host_operation(obj, + operation, + options, + args[1]) + when 'DATASTORE' then datastore_operation(obj, operation) + when 'VNET' then vnet_operation(obj, operation) end end end @@ -217,14 +213,9 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper ids end - def name_to_id(objects, pool) + def names_to_ids(objects, type) objects = [objects].flatten.map do |obj| - if obj.to_s =~ /^[0-9]+$/ - obj.to_i - else - pool.info - pool.select {|object| object.name == obj }.first.id - end + OpenNebulaHelper.rname_to_id(obj.to_s, type)[1] end objects diff --git a/src/cli/oneprovision b/src/cli/oneprovision index 5a9600d778..0f63b945c1 100755 --- a/src/cli/oneprovision +++ b/src/cli/oneprovision @@ -335,7 +335,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES] do operation = { :operation => 'resume', :message => 'enabled' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -350,7 +350,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES] do operation = { :operation => 'poweroff', :message => 'disabled' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -365,7 +365,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES, HARD] do operation = { :operation => 'reboot', :message => 'enabled' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -380,7 +380,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES] do operation = { :operation => 'delete', :message => 'deleted' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -395,7 +395,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES, FORCE] do operation = { :operation => 'configure', :message => 'enabled' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -410,7 +410,7 @@ CommandParser::CmdParser.new(ARGV) do [:command, nil] do operation = { :operation => 'ssh', :message => 'enabled' } - helper.hosts_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'HOST') end ### @@ -489,7 +489,7 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES, FORCE] do operation = { :operation => 'delete', :message => 'deleted' } - helper.datastores_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'DATASTORE') end ######################################################################## @@ -523,6 +523,6 @@ CommandParser::CmdParser.new(ARGV) do :options => [MODES, FORCE] do operation = { :operation => 'delete', :message => 'deleted' } - helper.vnets_operation(args, operation, options) + helper.resources_operation(args, operation, options, 'VNET') end end