Class: Opstat::Config

Inherits:
Object
  • Object
show all
Includes:
Logging, Singleton
Defined in:
lib/opstat-client/config.rb

Overview

A pretty sucky config class, ripe for refactoring/improving

Instance Method Summary collapse

Methods included from Logging

#log_level, #oplogger, #preconfig_logger

Constructor Details

#initializeConfig



8
9
10
11
12
# File 'lib/opstat-client/config.rb', line 8

def initialize
  @configured = false
  @config = ''
  #TODO set defaults
end

Instance Method Details

#get(key) ⇒ Object



32
33
34
# File 'lib/opstat-client/config.rb', line 32

def get(key)
  @config[key]
end

#get_mq_configObject



36
37
38
# File 'lib/opstat-client/config.rb', line 36

def get_mq_config
  get('mq')
end

#init_config(options) ⇒ Object



40
41
42
43
44
# File 'lib/opstat-client/config.rb', line 40

def init_config(options)
  load_config(options[:config_file])
  set_defaults
  @config[:config_file] = options[:config_file]
end

#load_config(config_file) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/opstat-client/config.rb', line 14

def load_config(config_file)
  unless File.exists?(config_file)
    preconfig_logger.info 'No config file - create config file with default settings. Please set correct MQ settings'
    default_config_path = File.dirname(File.expand_path(__FILE__)) + '/config/opstat.yml'
  system_config_dir = '/etc/opstat'
  system_config_path = system_config_dir + '/opstat.yml'
  FileUtils.mkdir(system_config_dir) unless File.exists?(system_config_dir)
  FileUtils.cp(default_config_path,system_config_path)
  end
  @config = YAML.load_file(config_file)
  self.set_defaults
end

#set_defaultsObject



27
28
29
30
# File 'lib/opstat-client/config.rb', line 27

def set_defaults
  @config['client']['send_data_interval'] ||= 30
  @config['client']['log_level'] ||= "WARN"
end