Module: ManageIQ::ApplianceConsole::Logging
- Included in:
- DatabaseConfiguration, DatabaseReplication, DatabaseReplicationPrimary, DatabaseReplicationStandby, ExternalAuthOptions, LogfileConfiguration, LogicalVolumeManagement, TempStorageConfiguration
- Defined in:
- lib/manageiq/appliance_console/logging.rb
Class Attribute Summary collapse
-
.interactive ⇒ Object
Returns the value of attribute interactive.
Class Method Summary collapse
Instance Method Summary collapse
- #error_and_logging_from_command_result_error(error) ⇒ Object
- #error_and_logging_from_standard_error(error) ⇒ Object
- #interactive ⇒ Object
- #interactive=(interactive) ⇒ Object
- #interactive? ⇒ Boolean
- #log_and_feedback(method) ⇒ Object
- #log_and_feedback_exception(error, failed_method) ⇒ Object
- #log_and_feedback_info(method, message) ⇒ Object
- #log_error(failed_method, debugging) ⇒ Object
- #log_prefix(method) ⇒ Object
- #logger ⇒ Object
- #logger=(logger) ⇒ Object
-
#say_error(method, output) ⇒ Object
TODO: move say_error and say_info to prompting module?.
- #say_info(method, output) ⇒ Object
Class Attribute Details
.interactive ⇒ Object
Returns the value of attribute interactive.
8 9 10 |
# File 'lib/manageiq/appliance_console/logging.rb', line 8 def interactive @interactive end |
Class Method Details
.interactive? ⇒ Boolean
10 11 12 |
# File 'lib/manageiq/appliance_console/logging.rb', line 10 def interactive? @interactive != false end |
Instance Method Details
#error_and_logging_from_command_result_error(error) ⇒ Object
85 86 87 88 89 |
# 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., "Command failed: #{error.}. Error: #{result.error}. Output: #{result.output}. At: #{location}" end |
#error_and_logging_from_standard_error(error) ⇒ Object
91 92 93 94 95 |
# 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.}" logging = "#{debugging}. Failed at: #{error.backtrace[0]}" return debugging, logging end |
#interactive ⇒ Object
23 24 25 |
# File 'lib/manageiq/appliance_console/logging.rb', line 23 def interactive ManageIQ::ApplianceConsole::Logging.interactive end |
#interactive=(interactive) ⇒ Object
15 16 17 |
# File 'lib/manageiq/appliance_console/logging.rb', line 15 def interactive=(interactive) ManageIQ::ApplianceConsole::Logging.interactive = interactive end |
#interactive? ⇒ Boolean
19 20 21 |
# File 'lib/manageiq/appliance_console/logging.rb', line 19 def interactive? ManageIQ::ApplianceConsole::Logging.interactive? end |
#log_and_feedback(method) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# 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) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# 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) ⇒ Object
68 69 70 71 |
# File 'lib/manageiq/appliance_console/logging.rb', line 68 def log_and_feedback_info(method, ) logger.info("#{log_prefix(method)}: #{}") say_info(method, ) end |
#log_error(failed_method, debugging) ⇒ Object
97 98 99 |
# 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) ⇒ Object
64 65 66 |
# File 'lib/manageiq/appliance_console/logging.rb', line 64 def log_prefix(method) "MIQ(#{self.class.name}##{method}) " end |
#logger ⇒ Object
31 32 33 |
# File 'lib/manageiq/appliance_console/logging.rb', line 31 def logger ManageIQ::ApplianceConsole.logger end |
#logger=(logger) ⇒ Object
27 28 29 |
# File 'lib/manageiq/appliance_console/logging.rb', line 27 def logger=(logger) ManageIQ::ApplianceConsole.logger = logger end |
#say_error(method, output) ⇒ Object
TODO: move say_error and say_info to prompting module?
36 37 38 39 40 41 42 |
# 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) ⇒ Object
44 45 46 |
# File 'lib/manageiq/appliance_console/logging.rb', line 44 def say_info(method, output) say("#{method.to_s.humanize} #{output}") end |