mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
parent
2bbdcd656f
commit
81414b24a6
@ -105,14 +105,18 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper
|
||||
# Helper host functions
|
||||
#######################################################################
|
||||
|
||||
def hosts_operation(hosts, operation, options)
|
||||
def hosts_operation(args, operation, options)
|
||||
parse_options(options)
|
||||
|
||||
host_helper = OneHostHelper.new
|
||||
host_helper.set_client(options)
|
||||
host_helper.perform_actions(hosts,
|
||||
options,
|
||||
operation[:message]) do |host|
|
||||
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]
|
||||
@ -126,6 +130,62 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper
|
||||
host.delete
|
||||
when 'configure'
|
||||
host.configure((options.key? :force))
|
||||
when 'ssh'
|
||||
host.ssh(args[1])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#######################################################################
|
||||
# Helper datastore functions
|
||||
#######################################################################
|
||||
|
||||
def datastores_operation(args, operation, options)
|
||||
parse_options(options)
|
||||
|
||||
pool = OneProvision::Datastore.new.pool
|
||||
helper = OneDatastoreHelper.new
|
||||
|
||||
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
|
||||
end
|
||||
end
|
||||
|
||||
#######################################################################
|
||||
# Helper vnet functions
|
||||
#######################################################################
|
||||
|
||||
def vnets_operation(args, operation, options)
|
||||
parse_options(options)
|
||||
|
||||
pool = OneProvision::Vnet.new.pool
|
||||
helper = OneVNetHelper.new
|
||||
|
||||
vnets = name_to_id(args[0], pool)
|
||||
|
||||
helper.set_client(options)
|
||||
helper.perform_actions(vnets,
|
||||
options,
|
||||
operation[:message]) do |vnet|
|
||||
case operation[:operation]
|
||||
when 'delete'
|
||||
msg = "Deleting vnet #{vnet['ID']}"
|
||||
|
||||
OneProvision::OneProvisionLogger.info(msg)
|
||||
|
||||
vnet.delete
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -157,6 +217,19 @@ class OneProvisionHelper < OpenNebulaHelper::OneHelper
|
||||
ids
|
||||
end
|
||||
|
||||
def name_to_id(objects, pool)
|
||||
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
|
||||
end
|
||||
|
||||
objects
|
||||
end
|
||||
|
||||
def get_list(columns, provision_list)
|
||||
ret = []
|
||||
ids = provision_ids
|
||||
|
@ -333,9 +333,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_resume_desc,
|
||||
%i[range hostid_list],
|
||||
:options => [MODES] do
|
||||
operation = { :operation => 'resume',:message => 'enabled' }
|
||||
operation = { :operation => 'resume', :message => 'enabled' }
|
||||
|
||||
helper.hosts_operation(args[0], operation, options)
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -348,9 +348,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_poweroff_desc,
|
||||
%i[range hostid_list],
|
||||
:options => [MODES] do
|
||||
operation = { :operation => 'poweroff',:message => 'disabled' }
|
||||
operation = { :operation => 'poweroff', :message => 'disabled' }
|
||||
|
||||
helper.hosts_operation(args[0],operation, options)
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -363,9 +363,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_reboot_desc,
|
||||
%i[range hostid_list],
|
||||
:options => [MODES, HARD] do
|
||||
operation = { :operation => 'reboot',:message => 'enabled' }
|
||||
operation = { :operation => 'reboot', :message => 'enabled' }
|
||||
|
||||
helper.hosts_operation(args[0],operation, options)
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -378,9 +378,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_delete_desc,
|
||||
%i[range hostid_list],
|
||||
:options => [MODES] do
|
||||
operation = { :operation => 'delete',:message => 'deleted' }
|
||||
operation = { :operation => 'delete', :message => 'deleted' }
|
||||
|
||||
helper.hosts_operation(args[0],operation, options)
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -393,9 +393,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_configure_desc,
|
||||
%i[range hostid_list],
|
||||
:options => [MODES, FORCE] do
|
||||
operation = { :operation => 'configure',:message => 'enabled' }
|
||||
operation = { :operation => 'configure', :message => 'enabled' }
|
||||
|
||||
helper.hosts_operation(args[0],operation, options)
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -408,8 +408,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
host_ssh_desc,
|
||||
:hostid,
|
||||
[:command, nil] do
|
||||
host = OneProvision::Host.new(args[0])
|
||||
host.ssh(args[1])
|
||||
operation = { :operation => 'ssh', :message => 'enabled' }
|
||||
|
||||
helper.hosts_operation(args, operation, options)
|
||||
end
|
||||
|
||||
###
|
||||
@ -486,22 +487,9 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
datastore_delete_desc,
|
||||
%i[range datastoreid_list],
|
||||
:options => [MODES, FORCE] do
|
||||
helper.parse_options(options)
|
||||
operation = { :operation => 'delete', :message => 'deleted' }
|
||||
|
||||
datastore_helper = OneDatastoreHelper.new
|
||||
datastore_helper.set_client(options)
|
||||
|
||||
datastore_helper.perform_actions(args[0],
|
||||
options,
|
||||
'deleted') do |datastore|
|
||||
msg = "Deleting datastore #{datastore['ID']}"
|
||||
|
||||
OneProvision::OneProvisionLogger.info(msg)
|
||||
|
||||
datastore.delete
|
||||
end
|
||||
|
||||
0
|
||||
helper.datastores_operation(args, operation, options)
|
||||
end
|
||||
|
||||
########################################################################
|
||||
@ -533,17 +521,8 @@ CommandParser::CmdParser.new(ARGV) do
|
||||
vnet_delete_desc,
|
||||
%i[range vnetid_list],
|
||||
:options => [MODES, FORCE] do
|
||||
helper.parse_options(options)
|
||||
operation = { :operation => 'delete', :message => 'deleted' }
|
||||
|
||||
vnet_helper = OneVNetHelper.new
|
||||
vnet_helper.set_client(options)
|
||||
|
||||
vnet_helper.perform_actions(args[0], options, 'deleted') do |vnet|
|
||||
OneProvision::OneProvisionLogger.info("Deleting vnet #{vnet['ID']}")
|
||||
|
||||
vnet.delete
|
||||
end
|
||||
|
||||
0
|
||||
helper.vnets_operation(args, operation, options)
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user