icinga2 0.6.2 → 0.6.3
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 +4 -4
- data/doc/Icinga2.html +49 -1
- data/doc/Logging.html +25 -13
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +306 -10
- data/doc/top-level-namespace.html +1 -1
- data/examples/test.rb +168 -146
- data/lib/icinga2.rb +33 -0
- data/lib/icinga2/downtimes.rb +2 -5
- data/lib/icinga2/status.rb +93 -0
- data/lib/icinga2/tools.rb +72 -0
- data/lib/icinga2/version.rb +1 -1
- data/lib/logging.rb +2 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 36fd6f89ab9f69c033767b14de5cca6df6d2e53a
|
|
4
|
+
data.tar.gz: 2b89c7dcb2380bebf6d13a7fd8ab7c9984b8ab2e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fc2293409575e948d11a27f2d85e34ed7453105111e4cdae47fb7ab9bcb77d30a45d23b0b16e072d6ce6aa7d68cc5f025d5df4f849a94d8c1844d2295661d237
|
|
7
|
+
data.tar.gz: a8ef82c2e70f0a848a929ee38c4c19228b91fe25330dac91092f8f0e1b11adbd9a95092c5805d0051d5ff9e77a8fb574737af461713c248c8a00aeb9a1bd1dcc
|
data/doc/Icinga2.html
CHANGED
|
@@ -112,6 +112,54 @@
|
|
|
112
112
|
<h2>Constant Summary</h2>
|
|
113
113
|
<dl class="constants">
|
|
114
114
|
|
|
115
|
+
<dt id="HANDLED_WARNING-constant" class="">HANDLED_WARNING =
|
|
116
|
+
<div class="docstring">
|
|
117
|
+
<div class="discussion">
|
|
118
|
+
|
|
119
|
+
<p>static variables for handled warning</p>
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="tags">
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
</div>
|
|
128
|
+
</dt>
|
|
129
|
+
<dd><pre class="code"><span class='int'>1</span></pre></dd>
|
|
130
|
+
|
|
131
|
+
<dt id="HANDLED_CRITICAL-constant" class="">HANDLED_CRITICAL =
|
|
132
|
+
<div class="docstring">
|
|
133
|
+
<div class="discussion">
|
|
134
|
+
|
|
135
|
+
<p>static variables for handled critical</p>
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="tags">
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</div>
|
|
144
|
+
</dt>
|
|
145
|
+
<dd><pre class="code"><span class='int'>2</span></pre></dd>
|
|
146
|
+
|
|
147
|
+
<dt id="HANDLED_UNKNOWN-constant" class="">HANDLED_UNKNOWN =
|
|
148
|
+
<div class="docstring">
|
|
149
|
+
<div class="discussion">
|
|
150
|
+
|
|
151
|
+
<p>static variables for handled unknown</p>
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<div class="tags">
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
</div>
|
|
160
|
+
</dt>
|
|
161
|
+
<dd><pre class="code"><span class='int'>3</span></pre></dd>
|
|
162
|
+
|
|
115
163
|
<dt id="VERSION-constant" class="">VERSION =
|
|
116
164
|
<div class="docstring">
|
|
117
165
|
<div class="discussion">
|
|
@@ -141,7 +189,7 @@
|
|
|
141
189
|
</div>
|
|
142
190
|
|
|
143
191
|
<div id="footer">
|
|
144
|
-
Generated on
|
|
192
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
145
193
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
146
194
|
0.9.9 (ruby-2.3.4).
|
|
147
195
|
</div>
|
data/doc/Logging.html
CHANGED
|
@@ -88,7 +88,19 @@
|
|
|
88
88
|
|
|
89
89
|
</div>
|
|
90
90
|
|
|
91
|
+
<h2>Overview</h2><div class="docstring">
|
|
92
|
+
<div class="discussion">
|
|
93
|
+
|
|
94
|
+
<p>taken from <a
|
|
95
|
+
href="https://stackoverflow.com/questions/917566/ruby-share-logger-instance-among-module-classes">stackoverflow.com/questions/917566/ruby-share-logger-instance-among-module-classes</a></p>
|
|
96
|
+
|
|
91
97
|
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="tags">
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
</div>
|
|
92
104
|
|
|
93
105
|
|
|
94
106
|
|
|
@@ -202,8 +214,6 @@
|
|
|
202
214
|
<pre class="lines">
|
|
203
215
|
|
|
204
216
|
|
|
205
|
-
26
|
|
206
|
-
27
|
|
207
217
|
28
|
|
208
218
|
29
|
|
209
219
|
30
|
|
@@ -213,10 +223,12 @@
|
|
|
213
223
|
34
|
|
214
224
|
35
|
|
215
225
|
36
|
|
216
|
-
37
|
|
226
|
+
37
|
|
227
|
+
38
|
|
228
|
+
39</pre>
|
|
217
229
|
</td>
|
|
218
230
|
<td>
|
|
219
|
-
<pre class="code"><span class="info file"># File 'lib/logging.rb', line
|
|
231
|
+
<pre class="code"><span class="info file"># File 'lib/logging.rb', line 28</span>
|
|
220
232
|
|
|
221
233
|
<span class='kw'>def</span> <span class='id identifier rubyid_configure_logger_for'>configure_logger_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_classname'>classname</span> <span class='rparen'>)</span>
|
|
222
234
|
|
|
@@ -250,12 +262,12 @@
|
|
|
250
262
|
<pre class="lines">
|
|
251
263
|
|
|
252
264
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
265
|
+
24
|
|
266
|
+
25
|
|
267
|
+
26</pre>
|
|
256
268
|
</td>
|
|
257
269
|
<td>
|
|
258
|
-
<pre class="code"><span class="info file"># File 'lib/logging.rb', line
|
|
270
|
+
<pre class="code"><span class="info file"># File 'lib/logging.rb', line 24</span>
|
|
259
271
|
|
|
260
272
|
<span class='kw'>def</span> <span class='id identifier rubyid_logger_for'>logger_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_classname'>classname</span> <span class='rparen'>)</span>
|
|
261
273
|
<span class='ivar'>@loggers</span><span class='lbracket'>[</span><span class='id identifier rubyid_classname'>classname</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='id identifier rubyid_configure_logger_for'>configure_logger_for</span><span class='lparen'>(</span> <span class='id identifier rubyid_classname'>classname</span> <span class='rparen'>)</span>
|
|
@@ -286,12 +298,12 @@
|
|
|
286
298
|
<pre class="lines">
|
|
287
299
|
|
|
288
300
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
301
|
+
13
|
|
302
|
+
14
|
|
303
|
+
15</pre>
|
|
292
304
|
</td>
|
|
293
305
|
<td>
|
|
294
|
-
<pre class="code"><span class="info file"># File 'lib/logging.rb', line
|
|
306
|
+
<pre class="code"><span class="info file"># File 'lib/logging.rb', line 13</span>
|
|
295
307
|
|
|
296
308
|
<span class='kw'>def</span> <span class='id identifier rubyid_logger'>logger</span>
|
|
297
309
|
<span class='ivar'>@logger</span> <span class='op'>||=</span> <span class='const'><span class='object_link'><a href="" title="Logging (module)">Logging</a></span></span><span class='period'>.</span><span class='id identifier rubyid_logger_for'><span class='object_link'><a href="#logger_for-class_method" title="Logging.logger_for (method)">logger_for</a></span></span><span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='rparen'>)</span>
|
|
@@ -306,7 +318,7 @@
|
|
|
306
318
|
</div>
|
|
307
319
|
|
|
308
320
|
<div id="footer">
|
|
309
|
-
Generated on
|
|
321
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
310
322
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
311
323
|
0.9.9 (ruby-2.3.4).
|
|
312
324
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
</div>
|
|
276
276
|
|
|
277
277
|
<div id="footer">
|
|
278
|
-
Generated on
|
|
278
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
279
279
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
280
280
|
0.9.9 (ruby-2.3.4).
|
|
281
281
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -268,7 +268,7 @@ feature'</code>)</p>
|
|
|
268
268
|
</div></div>
|
|
269
269
|
|
|
270
270
|
<div id="footer">
|
|
271
|
-
Generated on
|
|
271
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
272
272
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
273
273
|
0.9.9 (ruby-2.3.4).
|
|
274
274
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -268,7 +268,7 @@ feature'</code>)</p>
|
|
|
268
268
|
</div></div>
|
|
269
269
|
|
|
270
270
|
<div id="footer">
|
|
271
|
-
Generated on
|
|
271
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
272
272
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
273
273
|
0.9.9 (ruby-2.3.4).
|
|
274
274
|
</div>
|
data/doc/method_list.html
CHANGED
|
@@ -293,6 +293,14 @@
|
|
|
293
293
|
|
|
294
294
|
|
|
295
295
|
<li class="even ">
|
|
296
|
+
<div class="item">
|
|
297
|
+
<span class='object_link'><a href="Icinga2/Status.html#extract_data-instance_method" title="Icinga2::Status#extract_data (method)">#extract_data</a></span>
|
|
298
|
+
<small>Icinga2::Status</small>
|
|
299
|
+
</div>
|
|
300
|
+
</li>
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
<li class="odd ">
|
|
296
304
|
<div class="item">
|
|
297
305
|
<span class='object_link'><a href="Icinga2/Converts.html#format_service-class_method" title="Icinga2::Converts.format_service (method)">format_service</a></span>
|
|
298
306
|
<small>Icinga2::Converts</small>
|
|
@@ -300,7 +308,7 @@
|
|
|
300
308
|
</li>
|
|
301
309
|
|
|
302
310
|
|
|
303
|
-
<li class="
|
|
311
|
+
<li class="even ">
|
|
304
312
|
<div class="item">
|
|
305
313
|
<span class='object_link'><a href="Icinga2/Network.html#get-class_method" title="Icinga2::Network.get (method)">get</a></span>
|
|
306
314
|
<small>Icinga2::Network</small>
|
|
@@ -308,7 +316,7 @@
|
|
|
308
316
|
</li>
|
|
309
317
|
|
|
310
318
|
|
|
311
|
-
<li class="
|
|
319
|
+
<li class="odd ">
|
|
312
320
|
<div class="item">
|
|
313
321
|
<span class='object_link'><a href="Icinga2/Network.html#get_with_payload-class_method" title="Icinga2::Network.get_with_payload (method)">get_with_payload</a></span>
|
|
314
322
|
<small>Icinga2::Network</small>
|
|
@@ -316,6 +324,14 @@
|
|
|
316
324
|
</li>
|
|
317
325
|
|
|
318
326
|
|
|
327
|
+
<li class="even ">
|
|
328
|
+
<div class="item">
|
|
329
|
+
<span class='object_link'><a href="Icinga2/Tools.html#handled_problems-instance_method" title="Icinga2::Tools#handled_problems (method)">#handled_problems</a></span>
|
|
330
|
+
<small>Icinga2::Tools</small>
|
|
331
|
+
</div>
|
|
332
|
+
</li>
|
|
333
|
+
|
|
334
|
+
|
|
319
335
|
<li class="odd ">
|
|
320
336
|
<div class="item">
|
|
321
337
|
<span class='object_link'><a href="Icinga2/Hosts.html#host_objects-instance_method" title="Icinga2::Hosts#host_objects (method)">#host_objects</a></span>
|
|
@@ -358,13 +374,117 @@
|
|
|
358
374
|
|
|
359
375
|
<li class="even ">
|
|
360
376
|
<div class="item">
|
|
361
|
-
<span class='object_link'><a href="Icinga2/Client.html#
|
|
377
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_acknowledged-instance_method" title="Icinga2::Client#hosts_acknowledged (method)">#hosts_acknowledged</a></span>
|
|
378
|
+
<small>Icinga2::Client</small>
|
|
379
|
+
</div>
|
|
380
|
+
</li>
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
<li class="odd ">
|
|
384
|
+
<div class="item">
|
|
385
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_active_checks_1min-instance_method" title="Icinga2::Client#hosts_active_checks_1min (method)">#hosts_active_checks_1min</a></span>
|
|
386
|
+
<small>Icinga2::Client</small>
|
|
387
|
+
</div>
|
|
388
|
+
</li>
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
<li class="even ">
|
|
392
|
+
<div class="item">
|
|
393
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_all-instance_method" title="Icinga2::Client#hosts_all (method)">#hosts_all</a></span>
|
|
394
|
+
<small>Icinga2::Client</small>
|
|
395
|
+
</div>
|
|
396
|
+
</li>
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
<li class="odd ">
|
|
400
|
+
<div class="item">
|
|
401
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_down-instance_method" title="Icinga2::Client#hosts_down (method)">#hosts_down</a></span>
|
|
402
|
+
<small>Icinga2::Client</small>
|
|
403
|
+
</div>
|
|
404
|
+
</li>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
<li class="even ">
|
|
408
|
+
<div class="item">
|
|
409
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_down_adjusted-instance_method" title="Icinga2::Client#hosts_down_adjusted (method)">#hosts_down_adjusted</a></span>
|
|
410
|
+
<small>Icinga2::Client</small>
|
|
411
|
+
</div>
|
|
412
|
+
</li>
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
<li class="odd ">
|
|
416
|
+
<div class="item">
|
|
417
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_critical_problems-instance_method" title="Icinga2::Client#hosts_handled_critical_problems (method)">#hosts_handled_critical_problems</a></span>
|
|
418
|
+
<small>Icinga2::Client</small>
|
|
419
|
+
</div>
|
|
420
|
+
</li>
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
<li class="even ">
|
|
424
|
+
<div class="item">
|
|
425
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_problems-instance_method" title="Icinga2::Client#hosts_handled_problems (method)">#hosts_handled_problems</a></span>
|
|
426
|
+
<small>Icinga2::Client</small>
|
|
427
|
+
</div>
|
|
428
|
+
</li>
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
<li class="odd ">
|
|
432
|
+
<div class="item">
|
|
433
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_unknown_problems-instance_method" title="Icinga2::Client#hosts_handled_unknown_problems (method)">#hosts_handled_unknown_problems</a></span>
|
|
434
|
+
<small>Icinga2::Client</small>
|
|
435
|
+
</div>
|
|
436
|
+
</li>
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
<li class="even ">
|
|
440
|
+
<div class="item">
|
|
441
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_warning_problems-instance_method" title="Icinga2::Client#hosts_handled_warning_problems (method)">#hosts_handled_warning_problems</a></span>
|
|
362
442
|
<small>Icinga2::Client</small>
|
|
363
443
|
</div>
|
|
364
444
|
</li>
|
|
365
445
|
|
|
366
446
|
|
|
367
447
|
<li class="odd ">
|
|
448
|
+
<div class="item">
|
|
449
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_in_downtime-instance_method" title="Icinga2::Client#hosts_in_downtime (method)">#hosts_in_downtime</a></span>
|
|
450
|
+
<small>Icinga2::Client</small>
|
|
451
|
+
</div>
|
|
452
|
+
</li>
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
<li class="even ">
|
|
456
|
+
<div class="item">
|
|
457
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_passive_checks_1min-instance_method" title="Icinga2::Client#hosts_passive_checks_1min (method)">#hosts_passive_checks_1min</a></span>
|
|
458
|
+
<small>Icinga2::Client</small>
|
|
459
|
+
</div>
|
|
460
|
+
</li>
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
<li class="odd ">
|
|
464
|
+
<div class="item">
|
|
465
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_problems-instance_method" title="Icinga2::Client#hosts_problems (method)">#hosts_problems</a></span>
|
|
466
|
+
<small>Icinga2::Client</small>
|
|
467
|
+
</div>
|
|
468
|
+
</li>
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
<li class="even ">
|
|
472
|
+
<div class="item">
|
|
473
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_up-instance_method" title="Icinga2::Client#hosts_up (method)">#hosts_up</a></span>
|
|
474
|
+
<small>Icinga2::Client</small>
|
|
475
|
+
</div>
|
|
476
|
+
</li>
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
<li class="odd ">
|
|
480
|
+
<div class="item">
|
|
481
|
+
<span class='object_link'><a href="Icinga2/Client.html#initialize-instance_method" title="Icinga2::Client#initialize (method)">#initialize</a></span>
|
|
482
|
+
<small>Icinga2::Client</small>
|
|
483
|
+
</div>
|
|
484
|
+
</li>
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
<li class="even ">
|
|
368
488
|
<div class="item">
|
|
369
489
|
<span class='object_link'><a href="Logging.html#logger-instance_method" title="Logging#logger (method)">#logger</a></span>
|
|
370
490
|
<small>Logging</small>
|
|
@@ -372,7 +492,7 @@
|
|
|
372
492
|
</li>
|
|
373
493
|
|
|
374
494
|
|
|
375
|
-
<li class="
|
|
495
|
+
<li class="odd ">
|
|
376
496
|
<div class="item">
|
|
377
497
|
<span class='object_link'><a href="Logging.html#logger_for-class_method" title="Logging.logger_for (method)">logger_for</a></span>
|
|
378
498
|
<small>Logging</small>
|
|
@@ -380,6 +500,14 @@
|
|
|
380
500
|
</li>
|
|
381
501
|
|
|
382
502
|
|
|
503
|
+
<li class="even ">
|
|
504
|
+
<div class="item">
|
|
505
|
+
<span class='object_link'><a href="Icinga2/Client.html#node_name-instance_method" title="Icinga2::Client#node_name (method)">#node_name</a></span>
|
|
506
|
+
<small>Icinga2::Client</small>
|
|
507
|
+
</div>
|
|
508
|
+
</li>
|
|
509
|
+
|
|
510
|
+
|
|
383
511
|
<li class="odd ">
|
|
384
512
|
<div class="item">
|
|
385
513
|
<span class='object_link'><a href="Icinga2/Notifications.html#notifications-instance_method" title="Icinga2::Notifications#notifications (method)">#notifications</a></span>
|
|
@@ -397,6 +525,14 @@
|
|
|
397
525
|
|
|
398
526
|
|
|
399
527
|
<li class="odd ">
|
|
528
|
+
<div class="item">
|
|
529
|
+
<span class='object_link'><a href="Icinga2/Tools.html#parse_version-instance_method" title="Icinga2::Tools#parse_version (method)">#parse_version</a></span>
|
|
530
|
+
<small>Icinga2::Tools</small>
|
|
531
|
+
</div>
|
|
532
|
+
</li>
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
<li class="even ">
|
|
400
536
|
<div class="item">
|
|
401
537
|
<span class='object_link'><a href="Icinga2/Network.html#post-class_method" title="Icinga2::Network.post (method)">post</a></span>
|
|
402
538
|
<small>Icinga2::Network</small>
|
|
@@ -404,7 +540,7 @@
|
|
|
404
540
|
</li>
|
|
405
541
|
|
|
406
542
|
|
|
407
|
-
<li class="
|
|
543
|
+
<li class="odd ">
|
|
408
544
|
<div class="item">
|
|
409
545
|
<span class='object_link'><a href="Icinga2/Hosts.html#problem_hosts-instance_method" title="Icinga2::Hosts#problem_hosts (method)">#problem_hosts</a></span>
|
|
410
546
|
<small>Icinga2::Hosts</small>
|
|
@@ -412,7 +548,7 @@
|
|
|
412
548
|
</li>
|
|
413
549
|
|
|
414
550
|
|
|
415
|
-
<li class="
|
|
551
|
+
<li class="even ">
|
|
416
552
|
<div class="item">
|
|
417
553
|
<span class='object_link'><a href="Icinga2/Services.html#problem_services-instance_method" title="Icinga2::Services#problem_services (method)">#problem_services</a></span>
|
|
418
554
|
<small>Icinga2::Services</small>
|
|
@@ -420,7 +556,7 @@
|
|
|
420
556
|
</li>
|
|
421
557
|
|
|
422
558
|
|
|
423
|
-
<li class="
|
|
559
|
+
<li class="odd ">
|
|
424
560
|
<div class="item">
|
|
425
561
|
<span class='object_link'><a href="Icinga2/Network.html#put-class_method" title="Icinga2::Network.put (method)">put</a></span>
|
|
426
562
|
<small>Icinga2::Network</small>
|
|
@@ -428,6 +564,14 @@
|
|
|
428
564
|
</li>
|
|
429
565
|
|
|
430
566
|
|
|
567
|
+
<li class="even ">
|
|
568
|
+
<div class="item">
|
|
569
|
+
<span class='object_link'><a href="Icinga2/Client.html#revision-instance_method" title="Icinga2::Client#revision (method)">#revision</a></span>
|
|
570
|
+
<small>Icinga2::Client</small>
|
|
571
|
+
</div>
|
|
572
|
+
</li>
|
|
573
|
+
|
|
574
|
+
|
|
431
575
|
<li class="odd ">
|
|
432
576
|
<div class="item">
|
|
433
577
|
<span class='object_link'><a href="Icinga2/Services.html#service_objects-instance_method" title="Icinga2::Services#service_objects (method)">#service_objects</a></span>
|
|
@@ -469,6 +613,142 @@
|
|
|
469
613
|
|
|
470
614
|
|
|
471
615
|
<li class="even ">
|
|
616
|
+
<div class="item">
|
|
617
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_acknowledged-instance_method" title="Icinga2::Client#services_acknowledged (method)">#services_acknowledged</a></span>
|
|
618
|
+
<small>Icinga2::Client</small>
|
|
619
|
+
</div>
|
|
620
|
+
</li>
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
<li class="odd ">
|
|
624
|
+
<div class="item">
|
|
625
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_active_checks_1min-instance_method" title="Icinga2::Client#services_active_checks_1min (method)">#services_active_checks_1min</a></span>
|
|
626
|
+
<small>Icinga2::Client</small>
|
|
627
|
+
</div>
|
|
628
|
+
</li>
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
<li class="even ">
|
|
632
|
+
<div class="item">
|
|
633
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_all-instance_method" title="Icinga2::Client#services_all (method)">#services_all</a></span>
|
|
634
|
+
<small>Icinga2::Client</small>
|
|
635
|
+
</div>
|
|
636
|
+
</li>
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
<li class="odd ">
|
|
640
|
+
<div class="item">
|
|
641
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_critical-instance_method" title="Icinga2::Client#services_critical (method)">#services_critical</a></span>
|
|
642
|
+
<small>Icinga2::Client</small>
|
|
643
|
+
</div>
|
|
644
|
+
</li>
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
<li class="even ">
|
|
648
|
+
<div class="item">
|
|
649
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_critical_adjusted-instance_method" title="Icinga2::Client#services_critical_adjusted (method)">#services_critical_adjusted</a></span>
|
|
650
|
+
<small>Icinga2::Client</small>
|
|
651
|
+
</div>
|
|
652
|
+
</li>
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
<li class="odd ">
|
|
656
|
+
<div class="item">
|
|
657
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_handled_critical_problems-instance_method" title="Icinga2::Client#services_handled_critical_problems (method)">#services_handled_critical_problems</a></span>
|
|
658
|
+
<small>Icinga2::Client</small>
|
|
659
|
+
</div>
|
|
660
|
+
</li>
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
<li class="even ">
|
|
664
|
+
<div class="item">
|
|
665
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_handled_unknown_problems-instance_method" title="Icinga2::Client#services_handled_unknown_problems (method)">#services_handled_unknown_problems</a></span>
|
|
666
|
+
<small>Icinga2::Client</small>
|
|
667
|
+
</div>
|
|
668
|
+
</li>
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
<li class="odd ">
|
|
672
|
+
<div class="item">
|
|
673
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_handled_warning_problems-instance_method" title="Icinga2::Client#services_handled_warning_problems (method)">#services_handled_warning_problems</a></span>
|
|
674
|
+
<small>Icinga2::Client</small>
|
|
675
|
+
</div>
|
|
676
|
+
</li>
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
<li class="even ">
|
|
680
|
+
<div class="item">
|
|
681
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_in_downtime-instance_method" title="Icinga2::Client#services_in_downtime (method)">#services_in_downtime</a></span>
|
|
682
|
+
<small>Icinga2::Client</small>
|
|
683
|
+
</div>
|
|
684
|
+
</li>
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
<li class="odd ">
|
|
688
|
+
<div class="item">
|
|
689
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_ok-instance_method" title="Icinga2::Client#services_ok (method)">#services_ok</a></span>
|
|
690
|
+
<small>Icinga2::Client</small>
|
|
691
|
+
</div>
|
|
692
|
+
</li>
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
<li class="even ">
|
|
696
|
+
<div class="item">
|
|
697
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_passive_checks_1min-instance_method" title="Icinga2::Client#services_passive_checks_1min (method)">#services_passive_checks_1min</a></span>
|
|
698
|
+
<small>Icinga2::Client</small>
|
|
699
|
+
</div>
|
|
700
|
+
</li>
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
<li class="odd ">
|
|
704
|
+
<div class="item">
|
|
705
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_problems-instance_method" title="Icinga2::Client#services_problems (method)">#services_problems</a></span>
|
|
706
|
+
<small>Icinga2::Client</small>
|
|
707
|
+
</div>
|
|
708
|
+
</li>
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
<li class="even ">
|
|
712
|
+
<div class="item">
|
|
713
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_unknown-instance_method" title="Icinga2::Client#services_unknown (method)">#services_unknown</a></span>
|
|
714
|
+
<small>Icinga2::Client</small>
|
|
715
|
+
</div>
|
|
716
|
+
</li>
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
<li class="odd ">
|
|
720
|
+
<div class="item">
|
|
721
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_unknown_adjusted-instance_method" title="Icinga2::Client#services_unknown_adjusted (method)">#services_unknown_adjusted</a></span>
|
|
722
|
+
<small>Icinga2::Client</small>
|
|
723
|
+
</div>
|
|
724
|
+
</li>
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
<li class="even ">
|
|
728
|
+
<div class="item">
|
|
729
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_warning-instance_method" title="Icinga2::Client#services_warning (method)">#services_warning</a></span>
|
|
730
|
+
<small>Icinga2::Client</small>
|
|
731
|
+
</div>
|
|
732
|
+
</li>
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
<li class="odd ">
|
|
736
|
+
<div class="item">
|
|
737
|
+
<span class='object_link'><a href="Icinga2/Client.html#services_warning_adjusted-instance_method" title="Icinga2::Client#services_warning_adjusted (method)">#services_warning_adjusted</a></span>
|
|
738
|
+
<small>Icinga2::Client</small>
|
|
739
|
+
</div>
|
|
740
|
+
</li>
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
<li class="even ">
|
|
744
|
+
<div class="item">
|
|
745
|
+
<span class='object_link'><a href="Icinga2/Client.html#start_time-instance_method" title="Icinga2::Client#start_time (method)">#start_time</a></span>
|
|
746
|
+
<small>Icinga2::Client</small>
|
|
747
|
+
</div>
|
|
748
|
+
</li>
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
<li class="odd ">
|
|
472
752
|
<div class="item">
|
|
473
753
|
<span class='object_link'><a href="Icinga2/Converts.html#state_to_color-class_method" title="Icinga2::Converts.state_to_color (method)">state_to_color</a></span>
|
|
474
754
|
<small>Icinga2::Converts</small>
|
|
@@ -476,7 +756,7 @@
|
|
|
476
756
|
</li>
|
|
477
757
|
|
|
478
758
|
|
|
479
|
-
<li class="
|
|
759
|
+
<li class="even ">
|
|
480
760
|
<div class="item">
|
|
481
761
|
<span class='object_link'><a href="Icinga2/Converts.html#state_to_string-class_method" title="Icinga2::Converts.state_to_string (method)">state_to_string</a></span>
|
|
482
762
|
<small>Icinga2::Converts</small>
|
|
@@ -484,7 +764,7 @@
|
|
|
484
764
|
</li>
|
|
485
765
|
|
|
486
766
|
|
|
487
|
-
<li class="
|
|
767
|
+
<li class="odd ">
|
|
488
768
|
<div class="item">
|
|
489
769
|
<span class='object_link'><a href="Icinga2/Services.html#unhandled_services-instance_method" title="Icinga2::Services#unhandled_services (method)">#unhandled_services</a></span>
|
|
490
770
|
<small>Icinga2::Services</small>
|
|
@@ -492,7 +772,7 @@
|
|
|
492
772
|
</li>
|
|
493
773
|
|
|
494
774
|
|
|
495
|
-
<li class="
|
|
775
|
+
<li class="even ">
|
|
496
776
|
<div class="item">
|
|
497
777
|
<span class='object_link'><a href="Icinga2/Services.html#update_host-instance_method" title="Icinga2::Services#update_host (method)">#update_host</a></span>
|
|
498
778
|
<small>Icinga2::Services</small>
|
|
@@ -500,6 +780,14 @@
|
|
|
500
780
|
</li>
|
|
501
781
|
|
|
502
782
|
|
|
783
|
+
<li class="odd ">
|
|
784
|
+
<div class="item">
|
|
785
|
+
<span class='object_link'><a href="Icinga2/Client.html#uptime-instance_method" title="Icinga2::Client#uptime (method)">#uptime</a></span>
|
|
786
|
+
<small>Icinga2::Client</small>
|
|
787
|
+
</div>
|
|
788
|
+
</li>
|
|
789
|
+
|
|
790
|
+
|
|
503
791
|
<li class="even ">
|
|
504
792
|
<div class="item">
|
|
505
793
|
<span class='object_link'><a href="Icinga2/Usergroups.html#usergroups-instance_method" title="Icinga2::Usergroups#usergroups (method)">#usergroups</a></span>
|
|
@@ -516,6 +804,14 @@
|
|
|
516
804
|
</li>
|
|
517
805
|
|
|
518
806
|
|
|
807
|
+
<li class="even ">
|
|
808
|
+
<div class="item">
|
|
809
|
+
<span class='object_link'><a href="Icinga2/Client.html#version-instance_method" title="Icinga2::Client#version (method)">#version</a></span>
|
|
810
|
+
<small>Icinga2::Client</small>
|
|
811
|
+
</div>
|
|
812
|
+
</li>
|
|
813
|
+
|
|
814
|
+
|
|
519
815
|
|
|
520
816
|
</ul>
|
|
521
817
|
</div>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
102
|
<div id="footer">
|
|
103
|
-
Generated on
|
|
103
|
+
Generated on Sun Jun 18 15:20:36 2017 by
|
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
105
105
|
0.9.9 (ruby-2.3.4).
|
|
106
106
|
</div>
|
data/examples/test.rb
CHANGED
|
@@ -41,152 +41,174 @@ i = Icinga2::Client.new( config )
|
|
|
41
41
|
|
|
42
42
|
unless( i.nil? )
|
|
43
43
|
|
|
44
|
-
# run tests ...
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
|
|
48
|
-
puts 'Information about Icinga2'
|
|
49
|
-
puts i.application_data
|
|
50
|
-
puts ''
|
|
51
|
-
puts 'CIB'
|
|
52
|
-
puts i.cib_data
|
|
53
|
-
puts ''
|
|
54
|
-
puts 'API Listener'
|
|
55
|
-
puts i.api_listener
|
|
56
|
-
puts ''
|
|
57
|
-
|
|
58
|
-
puts '
|
|
59
|
-
puts
|
|
60
|
-
puts ''
|
|
61
|
-
puts '
|
|
62
|
-
puts i.
|
|
63
|
-
puts ''
|
|
64
|
-
puts '
|
|
65
|
-
puts i.
|
|
66
|
-
puts ''
|
|
67
|
-
puts '
|
|
68
|
-
puts i.
|
|
69
|
-
puts ''
|
|
70
|
-
puts '
|
|
71
|
-
puts
|
|
72
|
-
puts
|
|
73
|
-
puts ''
|
|
74
|
-
puts '
|
|
75
|
-
puts i.
|
|
76
|
-
puts ''
|
|
77
|
-
|
|
78
|
-
puts '
|
|
79
|
-
|
|
80
|
-
puts ''
|
|
81
|
-
puts '
|
|
82
|
-
puts
|
|
83
|
-
puts ''
|
|
84
|
-
puts
|
|
85
|
-
puts
|
|
86
|
-
puts ''
|
|
87
|
-
puts
|
|
88
|
-
puts
|
|
89
|
-
puts ''
|
|
90
|
-
puts
|
|
91
|
-
puts
|
|
92
|
-
puts ''
|
|
93
|
-
|
|
94
|
-
puts
|
|
95
|
-
puts
|
|
96
|
-
puts ''
|
|
97
|
-
puts
|
|
98
|
-
puts
|
|
99
|
-
|
|
100
|
-
puts '
|
|
101
|
-
puts i.
|
|
102
|
-
puts ''
|
|
103
|
-
puts '
|
|
104
|
-
puts i.
|
|
105
|
-
puts ''
|
|
106
|
-
puts
|
|
107
|
-
puts ''
|
|
108
|
-
puts '
|
|
109
|
-
puts
|
|
110
|
-
puts
|
|
111
|
-
puts '
|
|
112
|
-
puts
|
|
113
|
-
puts ''
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
puts
|
|
117
|
-
puts ''
|
|
118
|
-
puts '
|
|
119
|
-
puts
|
|
120
|
-
puts
|
|
121
|
-
puts '
|
|
122
|
-
puts
|
|
123
|
-
puts
|
|
124
|
-
puts '
|
|
125
|
-
puts
|
|
126
|
-
puts
|
|
127
|
-
puts '
|
|
128
|
-
puts i.
|
|
129
|
-
puts ''
|
|
130
|
-
|
|
131
|
-
puts '
|
|
132
|
-
puts
|
|
133
|
-
puts ''
|
|
134
|
-
puts
|
|
135
|
-
puts
|
|
136
|
-
|
|
137
|
-
puts '
|
|
138
|
-
puts i.
|
|
139
|
-
puts ''
|
|
140
|
-
puts '
|
|
141
|
-
puts i.
|
|
142
|
-
puts ''
|
|
143
|
-
puts '
|
|
144
|
-
puts i.
|
|
145
|
-
puts ''
|
|
146
|
-
|
|
147
|
-
puts
|
|
148
|
-
puts
|
|
149
|
-
puts ''
|
|
150
|
-
puts
|
|
151
|
-
puts
|
|
152
|
-
|
|
153
|
-
puts '
|
|
154
|
-
puts i.
|
|
155
|
-
puts ''
|
|
156
|
-
puts '
|
|
157
|
-
puts i.
|
|
158
|
-
puts ''
|
|
159
|
-
puts '
|
|
160
|
-
puts i.
|
|
161
|
-
puts ''
|
|
162
|
-
|
|
163
|
-
puts
|
|
164
|
-
puts
|
|
165
|
-
puts ''
|
|
166
|
-
puts
|
|
167
|
-
puts
|
|
168
|
-
|
|
169
|
-
puts '
|
|
170
|
-
puts i.
|
|
171
|
-
puts ''
|
|
172
|
-
puts '
|
|
173
|
-
puts i.
|
|
174
|
-
puts ''
|
|
175
|
-
puts '
|
|
176
|
-
puts i.
|
|
177
|
-
puts ''
|
|
178
|
-
puts '
|
|
179
|
-
puts i.
|
|
180
|
-
puts ''
|
|
181
|
-
puts '
|
|
182
|
-
puts i.
|
|
183
|
-
puts ''
|
|
184
|
-
|
|
185
|
-
puts
|
|
186
|
-
puts ''
|
|
187
|
-
puts '
|
|
188
|
-
puts
|
|
189
|
-
puts
|
|
44
|
+
# run tests ...
|
|
45
|
+
#
|
|
46
|
+
#
|
|
47
|
+
|
|
48
|
+
puts 'Information about Icinga2'
|
|
49
|
+
puts i.application_data
|
|
50
|
+
puts ''
|
|
51
|
+
puts 'CIB'
|
|
52
|
+
puts i.cib_data
|
|
53
|
+
puts ''
|
|
54
|
+
puts 'API Listener'
|
|
55
|
+
puts i.api_listener
|
|
56
|
+
puts ''
|
|
57
|
+
|
|
58
|
+
puts format( 'version: %s, revision %s', i.version, i.revision )
|
|
59
|
+
puts format( 'start time: %s', i.start_time )
|
|
60
|
+
puts format( 'uptime: %s', i.uptime )
|
|
61
|
+
puts ''
|
|
62
|
+
puts format( 'all hosts: %d', i.hosts_all )
|
|
63
|
+
puts format( 'host down %d', i.hosts_down )
|
|
64
|
+
puts format( 'hosts handled warning problems: %d', i.hosts_handled_warning_problems )
|
|
65
|
+
puts format( 'hosts handled critical problems: %d', i.hosts_handled_critical_problems )
|
|
66
|
+
puts format( 'hosts handled unknown problems: %d', i.hosts_handled_unknown_problems )
|
|
67
|
+
puts ''
|
|
68
|
+
puts format( 'all services: %d', i.services_all )
|
|
69
|
+
puts format( 'services critical %d', i.services_critical)
|
|
70
|
+
puts format( 'services warning %d', i.services_warning)
|
|
71
|
+
puts format( 'services unknown %d', i.services_unknown)
|
|
72
|
+
puts format( 'services handled warning problems %d', i.services_handled_warning_problems)
|
|
73
|
+
puts format( 'services handled critical problems %d', i.services_handled_critical_problems)
|
|
74
|
+
puts format( 'services handled unknown problems %d', i.services_handled_unknown_problems)
|
|
75
|
+
puts format( 'services adjusted critical %d', i.services_critical_adjusted)
|
|
76
|
+
puts format( 'services adjusted warning %d', i.services_warning_adjusted)
|
|
77
|
+
puts format( 'services adjusted unknown %d', i.services_unknown_adjusted)
|
|
78
|
+
puts ''
|
|
79
|
+
|
|
80
|
+
puts 'check if Host \'icinga2\' exists'
|
|
81
|
+
puts i.exists_host?( 'icinga2' ) ? 'true' : 'false'
|
|
82
|
+
puts ''
|
|
83
|
+
puts 'get host Objects'
|
|
84
|
+
puts i.hosts_objects
|
|
85
|
+
puts ''
|
|
86
|
+
puts 'Host problems'
|
|
87
|
+
puts i.hosts_problems
|
|
88
|
+
puts ''
|
|
89
|
+
puts 'Problem Hosts'
|
|
90
|
+
puts i.problem_hosts
|
|
91
|
+
puts ''
|
|
92
|
+
puts 'list named Hosts'
|
|
93
|
+
puts i.hosts( host: 'icinga2' )
|
|
94
|
+
puts i.hosts( host: 'bp-cluster')
|
|
95
|
+
puts ''
|
|
96
|
+
puts 'list all Hosts'
|
|
97
|
+
puts i.hosts
|
|
98
|
+
puts ''
|
|
99
|
+
|
|
100
|
+
puts 'check if Hostgroup \'linux-servers\' exists'
|
|
101
|
+
puts i.exists_hostgroup?( 'linux-servers' ) ? 'true' : 'false'
|
|
102
|
+
puts ''
|
|
103
|
+
puts 'add hostgroup \'foo\''
|
|
104
|
+
puts i.add_hostgroup( hosts_group: 'foo', display_name: 'FOO' )
|
|
105
|
+
puts ''
|
|
106
|
+
puts 'list named Hostgroup \'foo\''
|
|
107
|
+
puts i.hostgroups( hosts_group: 'foo' )
|
|
108
|
+
puts ''
|
|
109
|
+
puts 'list all Hostgroups'
|
|
110
|
+
puts i.hostgroups
|
|
111
|
+
puts ''
|
|
112
|
+
puts 'delete Hostgroup \'foo\''
|
|
113
|
+
puts i.delete_hostgroup( hosts_group: 'foo' )
|
|
114
|
+
puts ''
|
|
115
|
+
|
|
116
|
+
puts 'check if service \'users\' on host \'icinga2\' exists'
|
|
117
|
+
puts i.exists_service?( host: 'icinga2', service: 'users' ) ? 'true' : 'false'
|
|
118
|
+
puts ''
|
|
119
|
+
puts 'get service Objects'
|
|
120
|
+
puts i.services_objects
|
|
121
|
+
puts ''
|
|
122
|
+
puts 'Service problems'
|
|
123
|
+
puts i.services_problems
|
|
124
|
+
puts ''
|
|
125
|
+
puts 'Problem Services'
|
|
126
|
+
puts i.problem_services
|
|
127
|
+
puts ''
|
|
128
|
+
puts i.problem_services(10)
|
|
129
|
+
puts ''
|
|
130
|
+
puts 'list named Service \'ping4\' from Host \'icinga2\''
|
|
131
|
+
puts i.services( host: 'icinga2', service: 'ping4' )
|
|
132
|
+
puts ''
|
|
133
|
+
puts 'list all Services'
|
|
134
|
+
puts i.services
|
|
135
|
+
puts ''
|
|
136
|
+
|
|
137
|
+
puts 'check if Servicegroup \'disk\' exists'
|
|
138
|
+
puts i.exists_servicegroup?( 'disk' ) ? 'true' : 'false'
|
|
139
|
+
puts ''
|
|
140
|
+
puts 'add Servicegroup \'foo\''
|
|
141
|
+
puts i.add_servicegroup( name: 'foo', display_name: 'FOO' )
|
|
142
|
+
puts ''
|
|
143
|
+
puts 'list named Servicegroup \'foo\''
|
|
144
|
+
puts i.servicegroups( name: 'foo' )
|
|
145
|
+
puts ''
|
|
146
|
+
puts 'list all Servicegroup'
|
|
147
|
+
puts i.servicegroups
|
|
148
|
+
puts ''
|
|
149
|
+
puts 'delete Servicegroup \'foo\''
|
|
150
|
+
puts i.delete_servicegroup( name: 'foo' )
|
|
151
|
+
puts ''
|
|
152
|
+
|
|
153
|
+
puts 'check if Usergroup \'icingaadmins\' exists'
|
|
154
|
+
puts i.exists_usergroup?( 'icingaadmins' ) ? 'true' : 'false'
|
|
155
|
+
puts ''
|
|
156
|
+
puts 'add Usergroup \'foo\''
|
|
157
|
+
puts i.add_usergroup( name: 'foo', display_name: 'FOO' )
|
|
158
|
+
puts ''
|
|
159
|
+
puts 'list named Usergroup \'foo\''
|
|
160
|
+
puts i.usergroups( name: 'foo' )
|
|
161
|
+
puts ''
|
|
162
|
+
puts 'list all Usergroup'
|
|
163
|
+
puts i.usergroups
|
|
164
|
+
puts ''
|
|
165
|
+
puts 'delete Usergroup \'foo\''
|
|
166
|
+
puts i.delete_usergroup( name: 'foo' )
|
|
167
|
+
puts ''
|
|
168
|
+
|
|
169
|
+
puts 'check if User \'icingaadmin\' exists'
|
|
170
|
+
puts i.exists_user?( 'icingaadmin' ) ? 'true' : 'false'
|
|
171
|
+
puts ''
|
|
172
|
+
puts 'add User \'foo\''
|
|
173
|
+
puts i.add_user( name: 'foo', display_name: 'FOO', email: 'foo@bar.com', pager: '0000', groups: ['icingaadmins'] )
|
|
174
|
+
puts ''
|
|
175
|
+
puts 'list named User \'icingaadmin\''
|
|
176
|
+
puts i.users name: 'icingaadmin'
|
|
177
|
+
puts ''
|
|
178
|
+
puts 'list all User'
|
|
179
|
+
puts i.users
|
|
180
|
+
puts ''
|
|
181
|
+
puts 'delete User \'foo\''
|
|
182
|
+
puts i.delete_user( name: 'foo' )
|
|
183
|
+
puts ''
|
|
184
|
+
|
|
185
|
+
puts 'add Downtime \'test\''
|
|
186
|
+
puts i.add_downtime( name: 'test', type: 'service', host: 'icinga2', comment: 'test downtime', author: 'icingaadmin', start_time: Time.now.to_i, end_time: Time.now.to_i + 20 )
|
|
187
|
+
puts ''
|
|
188
|
+
puts 'list all Downtimes'
|
|
189
|
+
puts i.downtimes
|
|
190
|
+
puts ''
|
|
191
|
+
puts 'list all Notifications'
|
|
192
|
+
puts i.notifications
|
|
193
|
+
puts ''
|
|
194
|
+
puts 'enable Notifications for host'
|
|
195
|
+
puts i.enable_hosts_notification( 'icinga2' )
|
|
196
|
+
puts ''
|
|
197
|
+
puts 'disable Notifications for host'
|
|
198
|
+
puts i.disable_hosts_notification( 'icinga2' )
|
|
199
|
+
puts ''
|
|
200
|
+
puts 'enable Notifications for host and services'
|
|
201
|
+
puts i.enable_services_notification('icinga2')
|
|
202
|
+
puts ''
|
|
203
|
+
puts 'disable Notifications for host and services'
|
|
204
|
+
puts i.disable_services_notification( 'icinga2' )
|
|
205
|
+
puts ''
|
|
206
|
+
puts 'enable Notifications for hostgroup'
|
|
207
|
+
puts i.enable_hostgroup_notification( host: 'icinga2', hosts_group: 'linux-servers')
|
|
208
|
+
puts ''
|
|
209
|
+
puts 'disable Notifications for hostgroup'
|
|
210
|
+
puts i.disable_hostgroup_notification( host: 'icinga2', hosts_group: 'linux-servers')
|
|
211
|
+
puts ''
|
|
190
212
|
|
|
191
213
|
end
|
|
192
214
|
|
data/lib/icinga2.rb
CHANGED
|
@@ -31,6 +31,13 @@ require_relative 'icinga2/usergroups'
|
|
|
31
31
|
# Namespace for classes and modules that handle all Icinga2 API calls
|
|
32
32
|
module Icinga2
|
|
33
33
|
|
|
34
|
+
# static variables for handled warning
|
|
35
|
+
HANDLED_WARNING = 1
|
|
36
|
+
# static variables for handled critical
|
|
37
|
+
HANDLED_CRITICAL = 2
|
|
38
|
+
# static variables for handled unknown
|
|
39
|
+
HANDLED_UNKNOWN = 3
|
|
40
|
+
|
|
34
41
|
# Abstract base class for the API calls.
|
|
35
42
|
# Provides some helper methods
|
|
36
43
|
#
|
|
@@ -38,6 +45,18 @@ module Icinga2
|
|
|
38
45
|
#
|
|
39
46
|
class Client
|
|
40
47
|
|
|
48
|
+
attr_reader :version, :revision, :node_name, :start_time, :uptime
|
|
49
|
+
attr_reader :hosts_up, :hosts_down, :hosts_in_downtime, :hosts_acknowledged
|
|
50
|
+
attr_reader :hosts_all, :hosts_problems, :hosts_handled_warning_problems, :hosts_handled_critical_problems, :hosts_handled_unknown_problems
|
|
51
|
+
attr_reader :hosts_handled_problems, :hosts_down_adjusted
|
|
52
|
+
|
|
53
|
+
attr_reader :services_ok, :services_warning, :services_critical, :services_unknown, :services_in_downtime, :services_acknowledged
|
|
54
|
+
attr_reader :services_all, :services_problems, :services_handled_warning_problems, :services_handled_critical_problems, :services_handled_unknown_problems
|
|
55
|
+
attr_reader :services_warning_adjusted, :services_critical_adjusted, :services_unknown_adjusted
|
|
56
|
+
attr_reader :hosts_active_checks_1min, :hosts_passive_checks_1min, :services_active_checks_1min, :services_passive_checks_1min
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
41
60
|
include Logging
|
|
42
61
|
|
|
43
62
|
include Icinga2::Version
|
|
@@ -98,6 +117,20 @@ module Icinga2
|
|
|
98
117
|
@has_cert = cert?( user: @icinga_api_user, password: @icinga_api_pass )
|
|
99
118
|
@headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
|
|
100
119
|
|
|
120
|
+
|
|
121
|
+
@version = @revision = 0
|
|
122
|
+
@node_name = @start_time = @uptime = ''
|
|
123
|
+
@avg_latency = @avg_execution_time = 0
|
|
124
|
+
@hosts_up = @hosts_down = @hosts_in_downtime = @hosts_acknowledged = 0
|
|
125
|
+
@hosts_all = @hosts_problems = @hosts_handled_warning_problems = @hosts_handled_critical_problems = @hosts_handled_unknown_problems = 0
|
|
126
|
+
@hosts_handled_problems = @hosts_down_adjusted = 0
|
|
127
|
+
@services_ok = @services_warning = @services_critical = @services_unknown = @services_in_downtime = @services_acknowledged = 0
|
|
128
|
+
@services_all = @services_problems = @services_handled_warning_problems = @services_handled_critical_problems = @services_handled_unknown_problems = 0
|
|
129
|
+
@services_warning_adjusted = @services_critical_adjusted = @services_unknown_adjusted = 0
|
|
130
|
+
@hosts_active_checks_1min = @hosts_passive_checks_1min = @services_active_checks_1min = @services_passive_checks_1min = 0
|
|
131
|
+
|
|
132
|
+
extract_data
|
|
133
|
+
|
|
101
134
|
self
|
|
102
135
|
end
|
|
103
136
|
|
data/lib/icinga2/downtimes.rb
CHANGED
|
@@ -128,7 +128,7 @@ module Icinga2
|
|
|
128
128
|
'filter' => filter
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
Network.post( host: name,
|
|
132
132
|
url: format( '%s/v1/actions/schedule-downtime', @icinga_api_url_base ),
|
|
133
133
|
headers: @headers,
|
|
134
134
|
options: @options,
|
|
@@ -162,14 +162,11 @@ module Icinga2
|
|
|
162
162
|
|
|
163
163
|
host = params.dig(:host)
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
Network.get( host: host,
|
|
166
166
|
url: format( '%s/v1/objects/downtimes/%s', @icinga_api_url_base, host ),
|
|
167
167
|
headers: @headers,
|
|
168
168
|
options: @options )
|
|
169
169
|
|
|
170
|
-
JSON.pretty_generate( result )
|
|
171
|
-
|
|
172
|
-
|
|
173
170
|
end
|
|
174
171
|
|
|
175
172
|
end
|
data/lib/icinga2/status.rb
CHANGED
|
@@ -54,5 +54,98 @@ module Icinga2
|
|
|
54
54
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
+
# extract many datas from application_data and cib_data
|
|
58
|
+
# and store them in global variables
|
|
59
|
+
#
|
|
60
|
+
def extract_data
|
|
61
|
+
|
|
62
|
+
a_data = application_data
|
|
63
|
+
|
|
64
|
+
if( a_data.is_a?(Hash) )
|
|
65
|
+
|
|
66
|
+
a_data = a_data.dig('status','icingaapplication','app')
|
|
67
|
+
|
|
68
|
+
if( !a_data.nil? )
|
|
69
|
+
|
|
70
|
+
# extract
|
|
71
|
+
# - version
|
|
72
|
+
@version, @revision = parse_version(a_data.dig('version'))
|
|
73
|
+
|
|
74
|
+
# - node_name
|
|
75
|
+
@node_name = a_data.dig('node_name')
|
|
76
|
+
|
|
77
|
+
# - start_time
|
|
78
|
+
@start_time = Time.at(a_data.dig('program_start').to_f)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
c_data = cib_data
|
|
83
|
+
|
|
84
|
+
if( c_data.is_a?(Hash) )
|
|
85
|
+
|
|
86
|
+
c_data = c_data.dig('status')
|
|
87
|
+
|
|
88
|
+
if( !c_data.nil? )
|
|
89
|
+
|
|
90
|
+
# extract
|
|
91
|
+
# - uptime
|
|
92
|
+
uptime = c_data.dig('uptime').round(2)
|
|
93
|
+
@uptime = Time.at(uptime).utc.strftime('%H:%M:%S')
|
|
94
|
+
|
|
95
|
+
# - avg_latency / avg_execution_time
|
|
96
|
+
@avg_latency = c_data.dig('avg_latency').round(2)
|
|
97
|
+
@avg_execution_time = c_data.dig('avg_execution_time').round(2)
|
|
98
|
+
|
|
99
|
+
# - hosts
|
|
100
|
+
@hosts_up = c_data.dig('num_hosts_up').to_i
|
|
101
|
+
@hosts_down = c_data.dig('num_hosts_down').to_i
|
|
102
|
+
@hosts_in_downtime = c_data.dig('num_hosts_in_downtime').to_i
|
|
103
|
+
@hosts_acknowledged = c_data.dig('num_hosts_acknowledged').to_i
|
|
104
|
+
|
|
105
|
+
h_objects = host_objects
|
|
106
|
+
all_hosts = h_objects.dig(:nodes)
|
|
107
|
+
|
|
108
|
+
@hosts_all = all_hosts.size
|
|
109
|
+
@hosts_problems = host_problems
|
|
110
|
+
@hosts_handled_warning_problems = handled_problems(all_hosts, Icinga2::HANDLED_WARNING)
|
|
111
|
+
@hosts_handled_critical_problems = handled_problems(all_hosts, Icinga2::HANDLED_CRITICAL)
|
|
112
|
+
@hosts_handled_unknown_problems = handled_problems(all_hosts, Icinga2::HANDLED_UNKNOWN)
|
|
113
|
+
|
|
114
|
+
# calculate host problems adjusted by handled problems
|
|
115
|
+
# count togther handled host problems
|
|
116
|
+
@hosts_handled_problems = @hosts_handled_warning_problems + @hosts_handled_critical_problems + @hosts_handled_unknown_problems
|
|
117
|
+
@hosts_down_adjusted = @hosts_down - @hosts_handled_problems
|
|
118
|
+
|
|
119
|
+
# - services
|
|
120
|
+
@services_ok = c_data.dig('num_services_ok').to_i
|
|
121
|
+
@services_warning = c_data.dig('num_services_warning').to_i
|
|
122
|
+
@services_critical = c_data.dig('num_services_critical').to_i
|
|
123
|
+
@services_unknown = c_data.dig('num_services_unknown').to_i
|
|
124
|
+
@services_in_downtime = c_data.dig('num_services_in_downtime').to_i
|
|
125
|
+
@services_acknowledged = c_data.dig('num_services_acknowledged').to_i
|
|
126
|
+
|
|
127
|
+
s_objects = service_objects
|
|
128
|
+
all_services = s_objects.dig(:nodes)
|
|
129
|
+
|
|
130
|
+
@services_all = all_services.size
|
|
131
|
+
@services_problems = service_problems
|
|
132
|
+
@services_handled_warning_problems = handled_problems(all_services, Icinga2::HANDLED_WARNING)
|
|
133
|
+
@services_handled_critical_problems = handled_problems(all_services, Icinga2::HANDLED_CRITICAL)
|
|
134
|
+
@services_handled_unknown_problems = handled_problems(all_services, Icinga2::HANDLED_UNKNOWN)
|
|
135
|
+
|
|
136
|
+
# calculate service problems adjusted by handled problems
|
|
137
|
+
@services_warning_adjusted = @services_warning - @services_handled_warning_problems
|
|
138
|
+
@services_critical_adjusted = @services_critical - @services_handled_critical_problems
|
|
139
|
+
@services_unknown_adjusted = @services_unknown - @services_handled_unknown_problems
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
# - check stats
|
|
143
|
+
@hosts_active_checks_1min = c_data.dig('active_host_checks_1min')
|
|
144
|
+
@hosts_passive_checks_1min = c_data.dig('passive_host_checks_1min')
|
|
145
|
+
@services_active_checks_1min = c_data.dig('active_service_checks_1min')
|
|
146
|
+
@services_passive_checks_1min = c_data.dig('passive_service_checks_1min')
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
57
150
|
end
|
|
58
151
|
end
|
data/lib/icinga2/tools.rb
CHANGED
|
@@ -17,5 +17,77 @@ module Icinga2
|
|
|
17
17
|
object.dig('attrs', 'last_check').positive?
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
+
# parse version string and extract version and revision
|
|
21
|
+
#
|
|
22
|
+
# @param [String] version
|
|
23
|
+
#
|
|
24
|
+
# @return [String, String]
|
|
25
|
+
#
|
|
26
|
+
def parse_version(version)
|
|
27
|
+
|
|
28
|
+
# version = "v2.4.10-504-gab4ba18"
|
|
29
|
+
# version = "v2.4.10"
|
|
30
|
+
version_map = version.split('-', 2)
|
|
31
|
+
version_str = version_map.first
|
|
32
|
+
# strip v2.4.10 (default) and r2.4.10 (Debian)
|
|
33
|
+
version_str = version_str.scan(/^[vr]+(.*)/).last.first
|
|
34
|
+
|
|
35
|
+
revision =
|
|
36
|
+
if version_map.size > 1
|
|
37
|
+
version_map.last
|
|
38
|
+
else
|
|
39
|
+
'release'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
[version_str, revision]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# return count of handled problems
|
|
47
|
+
#
|
|
48
|
+
# @param [Hash] objects
|
|
49
|
+
# @param [Integer] status
|
|
50
|
+
#
|
|
51
|
+
# @example for host objects
|
|
52
|
+
# h_objects = @icinga.host_objects
|
|
53
|
+
# all_hosts = h_objects.dig(:nodes)
|
|
54
|
+
# warning = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_WARNING)
|
|
55
|
+
# critical = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_CRITICAL)
|
|
56
|
+
# unknown = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_UNKNOWN)
|
|
57
|
+
#
|
|
58
|
+
# @example for service objects
|
|
59
|
+
# s_objects = @icinga.service_objects
|
|
60
|
+
# all_services = s_objects.dig(:nodes)
|
|
61
|
+
# warning = @icinga.handled_problems(all_services, Icinga2::HANDLED_WARNING)
|
|
62
|
+
# critical = @icinga.handled_problems(all_services, Icinga2::HANDLED_CRITICAL)
|
|
63
|
+
# unknown = @icinga.handled_problems(all_services, Icinga2::HANDLED_UNKNOWN)
|
|
64
|
+
#
|
|
65
|
+
# @return [Integer]
|
|
66
|
+
#
|
|
67
|
+
def handled_problems(objects, status)
|
|
68
|
+
|
|
69
|
+
problems = 0
|
|
70
|
+
|
|
71
|
+
objects = JSON.parse(objects) if objects.is_a?(String)
|
|
72
|
+
nodes = objects.dig(:nodes)
|
|
73
|
+
|
|
74
|
+
unless !nodes
|
|
75
|
+
|
|
76
|
+
nodes.each do |n|
|
|
77
|
+
|
|
78
|
+
attrs = n.last.dig('attrs')
|
|
79
|
+
state = attrs.dig('state') || 0
|
|
80
|
+
downtime_depth = attrs.dig('downtime_depth') || 0
|
|
81
|
+
acknowledgement = attrs.dig('acknowledgement') || 0
|
|
82
|
+
|
|
83
|
+
if( state == status && downtime_depth.zero? && acknowledgement.zero? )
|
|
84
|
+
problems += 1
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
problems
|
|
90
|
+
end
|
|
91
|
+
|
|
20
92
|
end
|
|
21
93
|
end
|
data/lib/icinga2/version.rb
CHANGED
data/lib/logging.rb
CHANGED