Sha256: e13a539b2bd5fe2f312aecdaf7c3bf1b75b5bce6e1cff9825375828a39e7229e

Contents?: true

Size: 1.01 KB

Versions: 21

Compression:

Stored size: 1.01 KB

Contents

#!/usr/bin/env ruby

require 'ostruct'

module Flapjack
  class NotifierEngine

    attr_reader :log, :notifiers

    def initialize(opts={})
      @log = opts[:log]
      raise "you have to specify a logger" unless @log

      @notifiers = []
      if opts[:notifiers]
        opts[:notifiers].each do |n|
          @notifiers << n
          @log.info("using the #{n.class.to_s.split("::").last} notifier")
        end
      else
        @log.warning("There are no notifiers! flapjack-notifier won't be useful.")
      end
    end

    def notify!(options={})
      result     = options[:result]
      event      = options[:event]
      recipients = options[:recipients]

      raise ArgumentError, "A result + event were not passed!" unless result && event

      @notifiers.each do |n|
        recipients.each do |recipient|
          @log.info("Notifying #{recipient.name} via #{n.class} about check #{result.check_id}")
          n.notify(:result => result, :who => recipient, :event => event)
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
flapjack-0.6.43 lib/flapjack/notifier_engine.rb
flapjack-0.6.42 lib/flapjack/notifier_engine.rb
flapjack-0.6.41 lib/flapjack/notifier_engine.rb
flapjack-0.6.40 lib/flapjack/notifier_engine.rb
flapjack-0.6.39 lib/flapjack/notifier_engine.rb
flapjack-0.6.38 lib/flapjack/notifier_engine.rb
flapjack-0.6.37 lib/flapjack/notifier_engine.rb
flapjack-0.6.36 lib/flapjack/notifier_engine.rb
flapjack-0.6.35 lib/flapjack/notifier_engine.rb
flapjack-0.6.34 lib/flapjack/notifier_engine.rb
flapjack-0.6.33 lib/flapjack/notifier_engine.rb
flapjack-0.6.32 lib/flapjack/notifier_engine.rb
flapjack-0.6.31 lib/flapjack/notifier_engine.rb
flapjack-0.6.30 lib/flapjack/notifier_engine.rb
flapjack-0.6.29 lib/flapjack/notifier_engine.rb
flapjack-0.6.28 lib/flapjack/notifier_engine.rb
flapjack-0.6.27 lib/flapjack/notifier_engine.rb
flapjack-0.6.26 lib/flapjack/notifier_engine.rb
flapjack-0.6.25 lib/flapjack/notifier_engine.rb
flapjack-0.6.24 lib/flapjack/notifier_engine.rb