class ForemanMaintain::Config

Attributes

backup_dir[RW]
config_file[RW]
db_backup_dir[RW]
definitions_dirs[RW]
foreman_proxy_cert_path[RW]
log_dir[RW]
log_file_size[RW]
log_level[RW]
pre_setup_log_messages[RW]
storage_file[RW]

Public Class Methods

new(options) click to toggle source
# File lib/foreman_maintain/config.rb, line 9
def initialize(options)
  @pre_setup_log_messages = []
  @config_file = options.fetch(:config_file, config_file_path)
  @options = load_config
  @definitions_dirs = @options.fetch(:definitions_dirs,
                                     [File.join(source_path, 'definitions')])
  load_log_configs
  load_backup_dir_paths
  @foreman_proxy_cert_path = @options.fetch(:foreman_proxy_cert_path, '/etc/foreman')
end

Private Instance Methods

config_file_path() click to toggle source
# File lib/foreman_maintain/config.rb, line 50
def config_file_path
  File.exist?(CONFIG_FILE) ? CONFIG_FILE : File.join(source_path, 'config/foreman_maintain.yml')
end
find_dir_path(dir_path_str) click to toggle source
# File lib/foreman_maintain/config.rb, line 58
def find_dir_path(dir_path_str)
  dir_path = File.expand_path(dir_path_str)
  begin
    FileUtils.mkdir_p(dir_path, :mode => 0o750) unless File.exist?(dir_path)
  rescue StandardError => e
    warn "No permissions to create dir #{dir_path_str}"
    warn e.message.inspect
  end
  dir_path
end
load_backup_dir_paths() click to toggle source
# File lib/foreman_maintain/config.rb, line 28
def load_backup_dir_paths
  @storage_file = @options.fetch(:storage_file, 'data.yml')
  @backup_dir = find_dir_path(
    @options.fetch(:backup_dir, '/var/lib/foreman-maintain')
  )
  @db_backup_dir = find_dir_path(
    @options.fetch(:db_backup_dir, '/var/lib/foreman-maintain/db-backups')
  )
end
load_config() click to toggle source
# File lib/foreman_maintain/config.rb, line 38
def load_config
  if File.exist?(config_file)
    YAML.load(File.open(config_file)) || {}
  else
    @pre_setup_log_messages <<
      "Config file #{config_file} not found, using default configuration"
    {}
  end
rescue StandardError => e
  raise "Couldn't load configuration file. Error: #{e.message}"
end
load_log_configs() click to toggle source
# File lib/foreman_maintain/config.rb, line 22
def load_log_configs
  @log_level = @options.fetch(:log_level, ::Logger::DEBUG)
  @log_dir = find_dir_path(@options.fetch(:log_dir, 'log'))
  @log_file_size = @options.fetch(:log_file_size, 10_000)
end
source_path() click to toggle source
# File lib/foreman_maintain/config.rb, line 54
def source_path
  File.expand_path('../../..', __FILE__)
end