def self.rpcresults(result, flags = {})
flags = {:verbose => false, :flatten => false, :format => :console, :force_display_mode => false}.merge(flags)
result_text = ""
ddl = nil
if flags[:format] == :json
if STDOUT.tty?
result_text = JSON.pretty_generate(result)
else
result_text = result.to_json
end
else
if flags[:verbose]
result_text = old_rpcresults(result, flags)
else
[result].flatten.each do |r|
begin
ddl ||= DDL.new(r.agent).action_interface(r.action.to_s)
sender = r[:sender]
status = r[:statuscode]
message = r[:statusmsg]
result = r[:data]
if flags[:force_display_mode]
display = flags[:force_display_mode]
else
display = ddl[:display]
end
case display
when :ok
if status == 0
result_text << text_for_result(sender, status, message, result, ddl)
end
when :failed
if status > 0
result_text << text_for_result(sender, status, message, result, ddl)
end
when :always
result_text << text_for_result(sender, status, message, result, ddl)
when :flatten
Log.warn("The display option :flatten is being deprecated and will be removed in the next minor release")
result_text << text_for_flattened_result(status, result)
end
rescue Exception => e
result_text = old_rpcresults(result, flags)
end
end
end
end
result_text
end