lib/flapjack/cli/notifier.rb in auxesis-flapjack-0.4.5 vs lib/flapjack/cli/notifier.rb in auxesis-flapjack-0.4.6
- old
+ new
@@ -4,10 +4,12 @@
require 'ostruct'
require 'optparse'
require 'log4r'
require 'log4r/outputter/syslogoutputter'
require File.join(File.dirname(__FILE__), '..', 'database')
+require File.join(File.dirname(__FILE__), '..', 'notifier')
+require File.join(File.dirname(__FILE__), '..', 'result')
module Flapjack
class NotifierOptions
def self.parse(args)
options = OpenStruct.new
@@ -150,16 +152,17 @@
notifiers_directory ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'notifiers'))
raise ArgumentError, "notifiers directory doesn't exist!" unless File.exists?(notifiers_directory)
@notifiers = []
-
+
@config.notifiers.each_pair do |notifier, config|
filename = File.join(notifiers_directory, notifier.to_s, 'init')
if File.exists?(filename + '.rb')
@log.debug("Loading the #{notifier.to_s.capitalize} notifier")
require filename
+ config.merge!(:logger => @log, :website_uri => @config.website_uri)
@notifiers << Flapjack::Notifiers.const_get("#{notifier.to_s.capitalize}").new(config)
else
@log.warning("Flapjack::Notifiers::#{notifier.to_s.capitalize} doesn't exist!")
end
end
@@ -212,10 +215,10 @@
end
def process_result
@log.debug("Waiting for new result...")
result_job = @results_queue.reserve # blocks until a job is reserved
- result = Result.new(YAML::load(result_job.body))
+ result = Flapjack::Result.new(YAML::load(result_job.body))
@log.info("Processing result for check '#{result.id}'")
if result.warning? || result.critical?
if any_parents_warning_or_critical?(result)
@log.info("Not notifying on check '#{result.id}' as parent is failing.")