module ManageIQ::ApplianceConsole::Logging
Attributes
interactive[RW]
Public Class Methods
interactive?()
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 10 def interactive? @interactive != false end
Public Instance Methods
error_and_logging_from_command_result_error(error)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 85 def error_and_logging_from_command_result_error(error) result = error.result location = error.backtrace.detect { |loc| !loc.match(/(linux_admin|awesome_spawn)/) } return error.message, "Command failed: #{error.message}. Error: #{result.error}. Output: #{result.output}. At: #{location}" end
error_and_logging_from_standard_error(error)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 91 def error_and_logging_from_standard_error(error) debugging = "Error: #{error.class.name} with message: #{error.message}" logging = "#{debugging}. Failed at: #{error.backtrace[0]}" return debugging, logging end
interactive()
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 23 def interactive ManageIQ::ApplianceConsole::Logging.interactive end
interactive=(interactive)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 15 def interactive=(interactive) ManageIQ::ApplianceConsole::Logging.interactive = interactive end
interactive?()
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 19 def interactive? ManageIQ::ApplianceConsole::Logging.interactive? end
log_and_feedback(method) { || ... }
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 48 def log_and_feedback(method) raise ArgumentError, "No block given" unless block_given? log_and_feedback_info(method, "starting") result = nil begin result = yield rescue => err log_and_feedback_exception(err, method) else log_and_feedback_info(method, "complete") end result end
log_and_feedback_exception(error, failed_method)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 73 def log_and_feedback_exception(error, failed_method) feedback_error, logging = case error when AwesomeSpawn::CommandResultError error_and_logging_from_command_result_error(error) else error_and_logging_from_standard_error(error) end log_error(failed_method, logging) say_error(failed_method, feedback_error) end
log_and_feedback_info(method, message)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 68 def log_and_feedback_info(method, message) logger.info("#{log_prefix(method)}: #{message}") say_info(method, message) end
log_error(failed_method, debugging)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 97 def log_error(failed_method, debugging) logger.error("#{log_prefix(failed_method)} #{debugging}") end
log_prefix(method)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 64 def log_prefix(method) "MIQ(#{self.class.name}##{method}) " end
logger()
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 31 def logger ManageIQ::ApplianceConsole.logger end
logger=(logger)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 27 def logger=(logger) ManageIQ::ApplianceConsole.logger = logger end
say_error(method, output)
click to toggle source
TODO: move say_error
and say_info
to prompting module?
# File lib/manageiq/appliance_console/logging.rb, line 36 def say_error(method, output) log = "\nSee #{ManageIQ::ApplianceConsole::Logger.log_file} for details." text = "#{method.to_s.humanize} failed with error - #{output.truncate(200)}.#{log}" say(text) press_any_key if interactive? raise ManageIQ::ApplianceConsole::MiqSignalError end
say_info(method, output)
click to toggle source
# File lib/manageiq/appliance_console/logging.rb, line 44 def say_info(method, output) say("#{method.to_s.humanize} #{output}") end