nagios_reporter 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|