Class: Kurchatov::Application

Inherits:
Object
  • Object
show all
Includes:
Mixin::Monitor, Mixin::Ohai, Mixlib::CLI
Defined in:
lib/kurchatov/application.rb

Instance Method Summary collapse

Methods included from Mixin::Monitor

#monitor

Methods included from Mixin::Ohai

#ohai

Instance Method Details

#configure_defaultsObject



110
111
112
113
114
115
116
# File 'lib/kurchatov/application.rb', line 110

def configure_defaults
  ::Ohai::Config[:plugin_path] = [File.expand_path(File.join('..', 'ohai', 'plugins'), File.dirname(__FILE__))]
  if Config[:ohai_plugins_paths]
    ::Ohai::Config[:plugin_path] += Config[:ohai_plugins_paths]
  end
  Config[:host] ||= ohai[:fqdn] || ohai[:hostname]
end

#configure_loggingObject



105
106
107
108
# File 'lib/kurchatov/application.rb', line 105

def configure_logging
  Log.init(Config[:log_location])
  Log.level = Config[:log_level]
end

#configure_optsObject



99
100
101
102
103
# File 'lib/kurchatov/application.rb', line 99

def configure_opts
  @attributes = parse_options
  @attributes = nil if @attributes.empty?
  Config.merge!(config)
end

#configure_test_pluginObject



125
126
127
128
129
130
# File 'lib/kurchatov/application.rb', line 125

def configure_test_plugin
  return unless Config[:test_plugin]
  plugins = Kurchatov::Plugins::Config.load_test_plugin(Config[:test_plugin],
                                                    Config[:config_file])
  plugins.each {|p| monitor << p}
end

#load_plugins(path) ⇒ Object



118
119
120
121
122
123
# File 'lib/kurchatov/application.rb', line 118

def load_plugins(path)
  return if Config[:test_plugin]
  plugins = Kurchatov::Plugins::Config.load_plugins(path,
                                                    Config[:config_file])
  plugins.each {|p| monitor << p}
end

#runObject



132
133
134
135
136
137
138
139
140
# File 'lib/kurchatov/application.rb', line 132

def run
  configure_opts
  configure_logging
  configure_defaults
  load_plugins(File.join(File.dirname(__FILE__),'responders'))
  load_plugins(Config[:plugin_paths])
  configure_test_plugin
  monitor.start!
end