Module: NagiosCheck
- Includes:
- Chronometer
- Defined in:
- lib/nagios_check.rb,
lib/nagios_check/range.rb,
lib/nagios_check/version.rb,
lib/nagios_check/chronometer.rb
Defined Under Namespace
Modules: Chronometer, ClassMethods
Classes: MissingOption, Range
Constant Summary
collapse
- VERSION =
"0.3.0"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#time
Instance Attribute Details
#message ⇒ Object
Returns the value of attribute message.
13
14
15
|
# File 'lib/nagios_check.rb', line 13
def message
@message
end
|
#options ⇒ Object
Returns the value of attribute options.
12
13
14
|
# File 'lib/nagios_check.rb', line 12
def options
@options
end
|
Class Method Details
.included(base) ⇒ Object
129
130
131
132
133
134
135
|
# File 'lib/nagios_check.rb', line 129
def self.included(base)
base.extend(ClassMethods)
base.instance_eval do
@option_specs = {}
@defaults = {}
end
end
|
Instance Method Details
#finish ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/nagios_check.rb', line 54
def finish
raise "No value was provided" if @values.empty?
value = @values.first.last
if @options.c && !@options.c.include?(value)
return [2, "CRITICAL"]
end
if @options.w && !@options.w.include?(value)
return [1, "WARNING"]
end
return [0, "OK"]
end
|
#prepare ⇒ Object
16
17
18
19
|
# File 'lib/nagios_check.rb', line 16
def prepare
@values = {}
self.message = nil
end
|
#run ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/nagios_check.rb', line 21
def run
prepare
return_val, status = 3, "UNKNOWN"
begin
parse_options
if @timeout
check_with_timeout
else
check
end
return_val, status = finish
rescue Timeout::Error
store_message "TIMEOUT after #{@timeout}s"
rescue OptionParser::InvalidArgument, NagiosCheck::MissingOption => e
store_message "CLI ERROR: #{e}"
rescue => e
store_message "INTERNAL ERROR: #{e.class.name}: #{(e.to_s || '').gsub(/[\r\n]+/, ' ')}"
end
msg = status
msg += ': ' + message if message
if @values && !@values.empty?
msg += '|' + @values.map do |name, value|
"#{name}=#{value};;;;"
end.join(' ')
end
puts msg
exit return_val
end
|
#store_message(message) ⇒ Object
50
51
52
|
# File 'lib/nagios_check.rb', line 50
def store_message(message)
self.message = message
end
|
#store_value(name, value, opts = {}) ⇒ Object
66
67
68
|
# File 'lib/nagios_check.rb', line 66
def store_value(name, value, opts = {})
@values[name] = value.to_f
end
|