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 85
def available_checks(*args)
  detector.available_checks(*args)
end
available_features(*args) click to toggle source
# File lib/foreman_maintain.rb, line 77
def available_features(*args)
  detector.available_features(*args)
end
available_procedures(*args) click to toggle source
# File lib/foreman_maintain.rb, line 89
def available_procedures(*args)
  detector.available_procedures(*args)
end
available_scenarios(*args) click to toggle source
# File lib/foreman_maintain.rb, line 81
def available_scenarios(*args)
  detector.available_scenarios(*args)
end
cache() click to toggle source
# File lib/foreman_maintain.rb, line 69
def cache
  ObjectCache.instance
end
config_file() click to toggle source
# File lib/foreman_maintain.rb, line 55
def config_file
  config.config_file
end
detector() click to toggle source
# File lib/foreman_maintain.rb, line 73
def detector
  @detector ||= Detector.new
end
init_logger() click to toggle source
# File lib/foreman_maintain.rb, line 93
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")
  # convert size in KB to Bytes
  log_fsize = config.log_file_size.to_i * 1024
  @logger = Logger.new(filename, 10, log_fsize).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 59
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 106
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 48
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 = :default) click to toggle source
# File lib/foreman_maintain.rb, line 112
def storage(label = :default)
  ForemanMaintain::YamlStorage.load(label)
rescue StandardError => e
  logger.error "Invalid Storage label i.e #{label}. Error - #{e.message}"
end