class Smith::Commands::Logger
Public Instance Methods
_logger(&blk)
click to toggle source
# File lib/smith/commands/agency/logger.rb, line 8 def _logger(&blk) error_messages = [] if options[:level].nil? error_messages << "No log level. You must specify a log level and a target" else case target.first when 'all' agents.state(:running).each do |agent| error_messages << set_log_level(agent.uuid) end '' when 'agency' begin logger.info { "Setting agency log level to: #{options[:level]}" } log_level(options[:level]) rescue ArgumentError m = "Incorrect log level: #{options[:level]}" logger.error { m } error_messages << m end '' when nil error_messages << "No target. You must specify one of the following: 'agency', 'all' or a list of agents" else target.each do |uuid| error_messages << set_log_level(uuid) end end end error_messages.compact.join(", ") end
execute()
click to toggle source
# File lib/smith/commands/agency/logger.rb, line 4 def execute responder.succeed((_logger)) end
Private Instance Methods
options_spec()
click to toggle source
# File lib/smith/commands/agency/logger.rb, line 58 def options_spec banner "Change the log and trace level of the agents or the agency.", "<uuid[s]>" opt :level, "the log level you want to set", :type => :string, :short => :l opt :trace, "turn trace on or off", :type => :boolean, :short => :t end
send_agent_control_message(agent, message)
click to toggle source
# File lib/smith/commands/agency/logger.rb, line 52 def send_agent_control_message(agent, message) Messaging::Sender.new(agent.control_queue_def) do |sender| sender.publish(ACL::AgentCommand.new(message)) end end
set_log_level(uuid)
click to toggle source
# File lib/smith/commands/agency/logger.rb, line 42 def set_log_level(uuid) agent = agents[uuid] if agent && agent.running? send_agent_control_message(agent, :command => 'log_level', :options => [options[:level]]) nil else "Agent does not exist: #{uuid}" end end