Sha256: 8fa6fb434b07b921153459821c5dbd31ee05ce701a6a2c615e337bd635a150f3
Contents?: true
Size: 1.53 KB
Versions: 3
Compression:
Stored size: 1.53 KB
Contents
class Nagios::Runner def initialize(params, &callback) @params = params.with_indifferent_access @callback = callback @method = @params.delete(:method).to_s @method = @method.gsub(/[^:_\.\-a-z0-9]/i, '') @klass_name = "Nagios::#{@method.camelize}" raise "method should be" if @method.blank? Nagios.load_initializers load_class run rescue Exception, Timeout::Error => ex Nagios.logger.info "T= #{params.inspect} #{ex.message} (#{ex.backtrace.inspect})" callback[ Nagios::Check.default_error(ex.message) ] end # synchrony check, for manual call def self.check(params = {}) result = nil self.new(params) do |res| result = res end result end protected def constantize c = @klass_name.constantize if c.ancestors.detect { |an| an == Nagios::Check || an == Nagios::CheckEM } c end rescue LoadError, NameError nil end def load_class klass = constantize unless klass Dir[Nagios.root + "/**/#{@method}.rb"].each do |file| require File.expand_path(file) end klass = constantize end raise "unknown klass #{@klass_name}" unless klass @klass = klass @ancestor = klass.ancestors.detect { |an| an == Nagios::Check || an == Nagios::CheckEM } end def run if @ancestor == Nagios::Check script = @klass.new(@params, &@callback) script.run elsif @ancestor == Nagios::CheckEM raise "cant run EM check in Sync Runner" else raise "unknown klass #{@klass.inspect}" end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nagios_helper-0.2.2 | lib/nagios/runner.rb |
nagios_helper-0.2.1 | lib/nagios/runner.rb |
nagios_helper-0.2 | lib/nagios/runner.rb |