class DRbQS::Setting::Manage
Public Class Methods
new()
click to toggle source
Calls superclass method
DRbQS::Setting::Base::new
# File lib/drbqs/setting/manage.rb, line 6 def initialize super(:all_keys_defined => true) do set_argument_condition(:>, 0) end end
Public Instance Methods
exec(io = nil)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 144 def exec(io = nil) @manage = DRbQS::Manage.new case @mode when 'initialize' command_initialize when 'process' command_process(io) when 'status' command_status(io) when 'history' command_history(io) when 'signal' command_signal when 'send' command_send end end
parse!()
click to toggle source
If there are invalid arguments, this method raises an error.
Calls superclass method
DRbQS::Setting::Base#parse!
# File lib/drbqs/setting/manage.rb, line 54 def parse! super ary = get_argument @mode = ary[0].to_s @argv = ary[1..-1] check_all_arguments end
Private Instance Methods
check_all_arguments()
click to toggle source
# File lib/drbqs/setting/manage.rb, line 12 def check_all_arguments case @mode when 'initialize' check_argument_size(@argv, :>=, 0, :<=, 1) when 'process' check_argument_size(@argv, :>=, 0, :<=, 1) if @argv[0] && !['clear', 'list'].include?(@argv[0]) raise DRbQS::Setting::InvalidArgument, "Invalid command 'process #{@argv[0]}'" end when 'status', 'history' check_argument_size(@argv, :==, 1) when 'signal' case @argv[1] when 'server-exit' check_argument_size(@argv, :==, 2) when 'node-exit-after-task', 'node-wake', 'node-sleep' check_argument_size(@argv, :==, 3) else raise DRbQS::Setting::InvalidArgument, "Invalid signal type '#{@argv[1]}'" end when 'send' check_argument_size(@argv, :==, 3) case @argv[0] when 'string' unless @argv[2] raise DRbQS::Setting::InvalidArgument, "String data is not set" end when 'file' unless File.exist?(@argv[2]) raise DRbQS::Setting::InvalidArgument, "File '#{@argv[2]}' does not exist" end else raise DRbQS::Setting::InvalidArgument, "Invalid option '#{argv[2]}' for 'send'" end else raise DRbQS::Setting::InvalidArgument, "Invalid command '#{@mode}'" end end
command_history(io)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 106 def command_history(io) request_to_server(io, :get_history) end
command_initialize()
click to toggle source
# File lib/drbqs/setting/manage.rb, line 62 def command_initialize @manage.set_home_directory(@argv[0]) @manage.create_config end
command_process(io)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 68 def command_process(io) if @argv[0] == 'clear' @manage.clear_process return true end result = '' list = @manage.list_process result << "Server\n" list[:server].each do |uri, data| result << "#{uri}\n" data.each do |k, v| result << sprintf(" %-10s %s\n", k, v) end end result << "\nNode\n" list[:node].each do |pid, data| result << "#{pid}\n" data.each do |k, v| result << sprintf(" %-10s %s\n", k, v) end end io.print result if io end
command_send()
click to toggle source
# File lib/drbqs/setting/manage.rb, line 132 def command_send @manage.set_uri(@argv[1]) case @argv[0] when 'string' data = @argv[2] when 'file' data = File.read(@argv[2]) end @manage.send_data(data) end
command_signal()
click to toggle source
# File lib/drbqs/setting/manage.rb, line 117 def command_signal @manage.set_uri(@argv[0]) case @argv[1] when 'server-exit' @manage.send_exit_signal when 'node-exit-after-task' signal_to_node(:send_node_exit_after_task) when 'node-wake' signal_to_node(:send_node_wake) when 'node-sleep' signal_to_node(:send_node_sleep) end end
command_status(io)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 101 def command_status(io) request_to_server(io, :get_status) end
request_to_server(io, method_name)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 93 def request_to_server(io, method_name) @manage.set_uri(@argv[0]) if status = @manage.__send__(method_name) io.puts status if io end end
signal_to_node(method_name)
click to toggle source
# File lib/drbqs/setting/manage.rb, line 111 def signal_to_node(method_name) node_id = @argv[2].to_i @manage.__send__(method_name, node_id) end