nagios_reporter 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/nagios_reporter.rb +87 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1eeb1a0f003b94a8bc9f3bde02f958c78aa3c7d8
|
4
|
+
data.tar.gz: 1a1bda22d406be35356d545f9d835e16c9811600
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dae9863bb5ef09ef5b9f05786e02645c55aea9cac9916e98052cca3c460c6dbae78ca71fe3171824226ff25108450023c3f0f249f6b9bee8a702eff4fda5e06b
|
7
|
+
data.tar.gz: cc8f005b5fe7f7eb97adae8439508f548f07f432259abcd420243c0231ef1a5a1cff884ea108d88c5d3405c4d390f469e5a555245d120ccbce0bf6cf1af21ae1
|
@@ -0,0 +1,87 @@
|
|
1
|
+
class Reporter
|
2
|
+
attr_reader :state
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
# 2d array of reports implemented with a hash
|
6
|
+
@reports = Hash.new
|
7
|
+
@type = :all
|
8
|
+
@silent_exit = false
|
9
|
+
@state = -1
|
10
|
+
end
|
11
|
+
def set_type(type=:all)
|
12
|
+
if type == :all or type == :worst_only
|
13
|
+
@type = type
|
14
|
+
else
|
15
|
+
unknown!("Invalid reporter type, #{type}, use :all or :worst_only")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
def silence
|
19
|
+
@silent_exit = true
|
20
|
+
end
|
21
|
+
def silence!
|
22
|
+
@silent_exit = true
|
23
|
+
final_report
|
24
|
+
end
|
25
|
+
def ok(message)
|
26
|
+
report(0,message)
|
27
|
+
end
|
28
|
+
def ok!(message)
|
29
|
+
report!(0,message)
|
30
|
+
end
|
31
|
+
def warning(message)
|
32
|
+
report(1,message)
|
33
|
+
end
|
34
|
+
def warning!(message)
|
35
|
+
report!(1,message)
|
36
|
+
end
|
37
|
+
def critical(message)
|
38
|
+
report(2,message)
|
39
|
+
end
|
40
|
+
def critical!(message)
|
41
|
+
report!(2,message)
|
42
|
+
end
|
43
|
+
def unknown(message)
|
44
|
+
report(3,message)
|
45
|
+
end
|
46
|
+
def unknown!(message)
|
47
|
+
report!(3,message)
|
48
|
+
end
|
49
|
+
def state_header(state)
|
50
|
+
message_header = {0 => "OK: ", 1 => "WARNING: ", 2 => "CRITICAL: ", 3 => "UNKNOWN: "}
|
51
|
+
message_header[state]
|
52
|
+
end
|
53
|
+
def final_report
|
54
|
+
message = ""
|
55
|
+
if @type == :all
|
56
|
+
state_spacer = ""
|
57
|
+
@reports.keys.sort.reverse.each do |state|
|
58
|
+
message << state_spacer
|
59
|
+
message << state_header(state)
|
60
|
+
message << @reports[state].join(", ")
|
61
|
+
state_spacer = ". "
|
62
|
+
end
|
63
|
+
else
|
64
|
+
message << state_header(state)
|
65
|
+
message << @reports[@state].join(", ")
|
66
|
+
end
|
67
|
+
|
68
|
+
@state = 3 if @state == -1
|
69
|
+
message = "Check gathered no information" if message == ""
|
70
|
+
|
71
|
+
exit @state if @silent_exit
|
72
|
+
report!(@state,message,true)
|
73
|
+
end
|
74
|
+
def report!(state,message,no_state_header=false)
|
75
|
+
# report with passed state and message immediately then exit
|
76
|
+
print state_header(state) unless no_state_header
|
77
|
+
puts message
|
78
|
+
exit state
|
79
|
+
end
|
80
|
+
def report(state,message)
|
81
|
+
# update global state if new state is higher
|
82
|
+
@state = @state > state ? @state : state
|
83
|
+
# add to list of reports of given state
|
84
|
+
@reports[state] ||= []
|
85
|
+
@reports[state].push(message)
|
86
|
+
end
|
87
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nagios_reporter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dave Watson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-23 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A helper gem for nagios style reporting
|
14
|
+
email: dave@brightbox.co.uk
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/nagios_reporter.rb
|
20
|
+
homepage: http://rubygems.org/gems/nagios_reporter
|
21
|
+
licenses:
|
22
|
+
- GPLV3
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.4.5.5
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: nagios_reporter
|
44
|
+
test_files: []
|