Sha256: 2b237e638a9bbf17824f6edb680d2621ee3c79e8b4304b9f01a2dbb29200d1a9
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
module NagiosPlugin EXIT_CODES = { :ok => 0, :warning => 1, :critical => 2, :unknown => 3, } PluginError = Class.new(StandardError) class Plugin def self.check! plugin = self.new plugin.check rescue Exception => e puts [plugin.prefix, e.to_s].join(' ') else puts plugin.message ensure exit plugin.code end def check measure if respond_to?(:measure) set_status rescue Exception @status = :unknown raise end def message [prefix, (output if respond_to?(:output))].compact.join(' ') end def prefix "#{self.class.name.upcase} #{status.upcase}:" end def code EXIT_CODES[status] end def status @status || :unknown end protected def set_status @status = [:critical, :warning, :ok].select { |s| send("#{s}?") }.first raise PluginError, "All status checks returned false!" if @status.nil? end def ok? true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nagiosplugin-0.0.3 | lib/nagiosplugin/plugin.rb |