module ForemanMaintain

Constants

LOGGER_LEVEL_MAPPING
VERSION

Attributes

config[RW]
logger[RW]

Public Class Methods

available_checks(*args) click to toggle source
# File lib/foreman_maintain.rb, line 77
def available_checks(*args)
  detector.available_checks(*args)
end
available_features(*args) click to toggle source
# File lib/foreman_maintain.rb, line 69
def available_features(*args)
  detector.available_features(*args)
end
available_procedures(*args) click to toggle source
# File lib/foreman_maintain.rb, line 81
def available_procedures(*args)
  detector.available_procedures(*args)
end
available_scenarios(*args) click to toggle source
# File lib/foreman_maintain.rb, line 73
def available_scenarios(*args)
  detector.available_scenarios(*args)
end
config_file() click to toggle source
# File lib/foreman_maintain.rb, line 51
def config_file
  config.config_file
end
detector() click to toggle source
# File lib/foreman_maintain.rb, line 65
def detector
  @detector ||= Detector.new
end
init_logger() click to toggle source
# File lib/foreman_maintain.rb, line 85
def init_logger
  # Note - If timestamp added to filename then number of log files i.e second
  # argument to Logger.new will not work as expected
  filename = File.expand_path("#{config.log_dir}/foreman-maintain.log")
  @logger = Logger.new(filename, 10, 10_240_000).tap do |logger|
    logger.level = LOGGER_LEVEL_MAPPING[config.log_level] || Logger::DEBUG
    logger.datetime_format = '%Y-%m-%d %H:%M:%S%z '
  end
  pickup_log_messages
end
load_definitions() click to toggle source
# File lib/foreman_maintain.rb, line 55
def load_definitions
  # we need to add the load paths first, in case there is crossreferencing
  # between the definitions directories
  $LOAD_PATH.concat(config.definitions_dirs)
  config.definitions_dirs.each do |definitions_dir|
    file_paths = File.expand_path(File.join(definitions_dir, '**', '*.rb'))
    Dir.glob(file_paths).each { |f| require f }
  end
end
pickup_log_messages() click to toggle source
# File lib/foreman_maintain.rb, line 96
def pickup_log_messages
  return if config.pre_setup_log_messages.empty?
  config.pre_setup_log_messages.each { |msg| logger.info msg }
  config.pre_setup_log_messages.clear
end
setup(options = {}) click to toggle source
# File lib/foreman_maintain.rb, line 44
def setup(options = {})
  # using a queue, we can log the messages which are generated before initializing logger
  self.config = Config.new(options)
  load_definitions
  init_logger
end
storage(label) click to toggle source
# File lib/foreman_maintain.rb, line 102
def storage(label)
  ForemanMaintain::YamlStorage.load(label)
rescue => e
  logger.error "Invalid Storage label i.e #{label}. Error - #{e.message}"
end