rnagios 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rnagios/plugin.rb +33 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88ca321fd55063124516f59aae279cb493116805
|
4
|
+
data.tar.gz: e5ab19f6e4a6d7f67697b7e8601228642e356cfa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f06b79ec7a24528f5ef3ff8c756acd93c70606c74be1e9fec1307a63625a9c0b5f9dc83a78c7bf096e8772ec22ead916482186c4104317e227a20182dd1c2f5f
|
7
|
+
data.tar.gz: f3239d00aa645c363c6043ff10cefbc44fabacaf52b1424c0a9fb2a14f0726693b29c130c724821c39da49bde667b0af2f5c53f5f228039a66b4852bc2c64ce5
|
data/lib/rnagios/plugin.rb
CHANGED
@@ -119,8 +119,8 @@ class Plugin
|
|
119
119
|
#
|
120
120
|
# Scripts should call this method at the very end. The general
|
121
121
|
# flow of a script running on UNIX/Linux should be as follows:
|
122
|
-
#
|
123
|
-
# class MyCheck <
|
122
|
+
#
|
123
|
+
# class MyCheck < Plugin
|
124
124
|
# def measure
|
125
125
|
# stat = ActiveStatus.new
|
126
126
|
# stat.status = <...service check code goes here, returns Nagios::Status::<constant> status...>
|
@@ -161,7 +161,8 @@ class Plugin
|
|
161
161
|
status = measure
|
162
162
|
|
163
163
|
# Mark the end time for Nagios performance stats
|
164
|
-
end_time = Time.now
|
164
|
+
end_time = Time.now
|
165
|
+
time_took = end_time - start_time
|
165
166
|
|
166
167
|
# Since we can't effectively check for exceptions, we make
|
167
168
|
# sure we get a good Status
|
@@ -173,7 +174,7 @@ class Plugin
|
|
173
174
|
raise NagiosError.new('Status passive code is invalid')
|
174
175
|
elsif status.is_a? ActiveStatus
|
175
176
|
if status.is_a? NscaServiceStatus
|
176
|
-
if !valid_passive_code? status
|
177
|
+
if !valid_passive_code? status
|
177
178
|
raise NagiosError.new('Status passive code is invalid')
|
178
179
|
end
|
179
180
|
elsif !valid_exit_code? status
|
@@ -183,13 +184,31 @@ class Plugin
|
|
183
184
|
raise NagiosError.new('Status message must not be nil or empty')
|
184
185
|
end
|
185
186
|
|
186
|
-
# Status checks out as valid -- we now
|
187
|
-
# the type of Status received
|
187
|
+
# Status checks out as valid -- we now check the warning and critical
|
188
|
+
# times and format the output based on the type of Status received
|
188
189
|
if status.is_a? NscaHostStatus
|
189
190
|
status.message = format_passive_host_check(status)
|
190
191
|
elsif status.is_a? NscaServiceStatus
|
192
|
+
if valid_value_w && valid_value_c
|
193
|
+
if time_took >= @w && time_took < @c && status.status != ActiveStatus::WARNING
|
194
|
+
status.status = ActiveStatus::WARNING
|
195
|
+
status.message += '; check time >= ' + @w
|
196
|
+
elsif time_took >= @c && status.status != ActiveStatus::CRITICAL
|
197
|
+
status.status = ActiveStatus::CRITICAL
|
198
|
+
status.message += '; check time >= ' + @c
|
199
|
+
end
|
200
|
+
end
|
191
201
|
status.message = format_passive_service_check(status)
|
192
202
|
else
|
203
|
+
if valid_value_w && valid_value_c
|
204
|
+
if time_took >= @w && time_took < @c && status.status != ActiveStatus::WARNING
|
205
|
+
status.status = ActiveStatus::WARNING
|
206
|
+
status.message += '; check time >= ' + @w
|
207
|
+
elsif time_took >= @c && status.status != ActiveStatus::CRITICAL
|
208
|
+
status.status = ActiveStatus::CRITICAL
|
209
|
+
status.message += '; check time >= ' + @c
|
210
|
+
end
|
211
|
+
end
|
193
212
|
status.message = format_active_service_check(status, start_time, end_time)
|
194
213
|
end
|
195
214
|
|
@@ -215,7 +234,7 @@ class Plugin
|
|
215
234
|
# message = 'Everything looks good'
|
216
235
|
# elsif random_measure == 2
|
217
236
|
# status = ActiveStatus::WARNING
|
218
|
-
# message = 'Keep an eye on this service'
|
237
|
+
# message = 'Keep an eye on this service'
|
219
238
|
# elsif random_measure == 3
|
220
239
|
# status = ActiveStatus::CRITICAL
|
221
240
|
# message = 'There''s a problem'
|
@@ -369,4 +388,11 @@ private
|
|
369
388
|
end
|
370
389
|
end
|
371
390
|
|
391
|
+
def valid_value_w()
|
392
|
+
@w.is_a?(Integer) && @w > 0
|
393
|
+
end
|
394
|
+
|
395
|
+
def valid_value_c()
|
396
|
+
@c.is_a?(Integer) && @c > 0
|
397
|
+
end
|
372
398
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rnagios
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger A. Rubio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make your own plugins in Ruby for Nagios to run on the Nagios server
|
14
14
|
or as NSCA plugins on remote servers.
|