# File lib/foreman_maintain.rb, line 114 def allowed_available_procedures(*args) procedures = detector.available_procedures(*args) procedures.select(&:advanced_run?) end
# File lib/foreman_maintain.rb, line 106 def available_checks(*args) detector.available_checks(*args) end
# File lib/foreman_maintain.rb, line 98 def available_features(*args) detector.available_features(*args) end
# File lib/foreman_maintain.rb, line 110 def available_procedures(*args) detector.available_procedures(*args) end
# File lib/foreman_maintain.rb, line 102 def available_scenarios(*args) detector.available_scenarios(*args) end
# File lib/foreman_maintain.rb, line 86 def cache ObjectCache.instance end
# File lib/foreman_maintain.rb, line 72 def config_file config.config_file end
# File lib/foreman_maintain.rb, line 90 def detector @detector ||= Detector.new end
# File lib/foreman_maintain.rb, line 119 def init_logger # convert size in KB to Bytes log_fsize = config.log_file_size.to_i * 1024 @logger = Logger.new(config.log_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
# File lib/foreman_maintain.rb, line 76 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
# File lib/foreman_maintain.rb, line 129 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
# File lib/foreman_maintain.rb, line 94 def reporter @reporter ||= ForemanMaintain::Reporter::CLIReporter.new end
# File lib/foreman_maintain.rb, line 53 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 update_path end
# File lib/foreman_maintain.rb, line 135 def storage(label = :default) ForemanMaintain::YamlStorage.load(label) rescue StandardError => e logger.error "Invalid Storage label i.e #{label}. Error - #{e.message}" end
Appending PATH with expected paths needed for commands we run
# File lib/foreman_maintain.rb, line 62 def update_path paths = ['/sbin'] existing_paths = ENV['PATH'].split(':') paths -= existing_paths if paths.any? paths = paths.join(':').chomp(':') ENV['PATH'] = "#{ENV['PATH']}:#{paths}" end end