icinga2 0.9.2.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,7 +11,7 @@ module Icinga2
11
11
  # @param [String] host
12
12
  #
13
13
  # @example
14
- # @icinga.enable_host_notification('icinga')
14
+ # enable_host_notification('icinga')
15
15
  #
16
16
  # @return [Hash]
17
17
  #
@@ -30,7 +30,7 @@ module Icinga2
30
30
  # @param [String] host
31
31
  #
32
32
  # @example
33
- # @icinga.disable_host_notification('icinga')
33
+ # disable_host_notification('icinga')
34
34
  #
35
35
  # @return [Hash]
36
36
  #
@@ -49,7 +49,7 @@ module Icinga2
49
49
  # @param [String] host
50
50
  #
51
51
  # @example
52
- # @icinga.enable_service_notification('icinga')
52
+ # enable_service_notification('icinga')
53
53
  #
54
54
  # @return [Hash]
55
55
  #
@@ -68,7 +68,7 @@ module Icinga2
68
68
  # @param [String] host
69
69
  #
70
70
  # @example
71
- # @icinga.disable_service_notification('icinga')
71
+ # disable_service_notification('icinga')
72
72
  #
73
73
  # @return [Hash]
74
74
  #
@@ -87,7 +87,7 @@ module Icinga2
87
87
  # @param [String] host_group
88
88
  #
89
89
  # @example
90
- # @icinga.enable_hostgroup_notification('linux-servers')
90
+ # enable_hostgroup_notification('linux-servers')
91
91
  #
92
92
  # @return [Hash]
93
93
  #
@@ -106,7 +106,7 @@ module Icinga2
106
106
  # @param [String] host_group
107
107
  #
108
108
  # @example
109
- # @icinga.disable_hostgroup_notification('linux-servers')
109
+ # disable_hostgroup_notification('linux-servers')
110
110
  #
111
111
  # @return [Hash]
112
112
  #
@@ -152,7 +152,11 @@ module Icinga2
152
152
  name = validate( params, required: true, var: 'name', type: String )
153
153
  notifications = validate( params, required: false, var: 'enable_notifications', type: Boolean ) || false
154
154
 
155
- payload = { attrs: { enable_notifications: notifications } }
155
+ payload = {
156
+ attrs: {
157
+ enable_notifications: notifications
158
+ }
159
+ }
156
160
 
157
161
  post(
158
162
  url: format( '%s/objects/hosts/%s', @icinga_api_url_base, name ),
@@ -181,7 +185,9 @@ module Icinga2
181
185
 
182
186
  payload = {
183
187
  filter: format( '"%s" in host.groups', group ),
184
- attrs: { enable_notifications: notifications }
188
+ attrs: {
189
+ enable_notifications: notifications
190
+ }
185
191
  }
186
192
 
187
193
  post(
@@ -211,7 +217,9 @@ module Icinga2
211
217
 
212
218
  payload = {
213
219
  filter: format( 'host.name=="%s"', name ),
214
- attrs: { enable_notifications: notifications }
220
+ attrs: {
221
+ enable_notifications: notifications
222
+ }
215
223
  }
216
224
 
217
225
  post(
@@ -16,7 +16,7 @@ module Icinga2
16
16
  # @option params [String] action_url
17
17
  #
18
18
  # @example
19
- # @icinga.add_servicegroup(service_group: 'foo', display_name: 'FOO')
19
+ # add_servicegroup(service_group: 'foo', display_name: 'FOO')
20
20
  #
21
21
  # @return [Hash] result
22
22
  #
@@ -59,7 +59,7 @@ module Icinga2
59
59
  # @option params [Bool] cascade (false) delete servicegroup also when other objects depend on it
60
60
  #
61
61
  # @example
62
- # @icinga.delete_servicegroup('foo')
62
+ # delete_servicegroup('foo')
63
63
  #
64
64
  # @return [Array] result
65
65
  #
@@ -87,10 +87,10 @@ module Icinga2
87
87
  # @param [String] service_group (nil) optional for a single servicegroup
88
88
  #
89
89
  # @example to get all users
90
- # @icinga.servicegroups
90
+ # servicegroups
91
91
  #
92
92
  # @example to get one user
93
- # @icinga.servicegroups(service_group: 'disk')
93
+ # servicegroups(service_group: 'disk')
94
94
  #
95
95
  # @return [Array] returns a hash with all servicegroups
96
96
  #
@@ -113,7 +113,7 @@ module Icinga2
113
113
  # @param [String] service_group the name of the servicegroup
114
114
  #
115
115
  # @example
116
- # @icinga.exists_servicegroup?('disk')
116
+ # exists_servicegroup?('disk')
117
117
  #
118
118
  # @return [Bool] returns true if the servicegroup exists
119
119
  #
@@ -21,12 +21,12 @@ module Icinga2
21
21
  # @option params [String] check_period
22
22
  # @option params [Integer] check_timeout
23
23
  # @option params [String] command_endpoint
24
- # @option params [Boolean] enable_active_checks
25
- # @option params [Boolean] enable_event_handler
26
- # @option params [Boolean] enable_flapping
27
- # @option params [Boolean] enable_notifications
28
- # @option params [Boolean] enable_passive_checks
29
- # @option params [Boolean] enable_perfdata
24
+ # @option params [Bool] enable_active_checks
25
+ # @option params [Bool] enable_event_handler
26
+ # @option params [Bool] enable_flapping
27
+ # @option params [Bool] enable_notifications
28
+ # @option params [Bool] enable_passive_checks
29
+ # @option params [Bool] enable_perfdata
30
30
  # @option params [String] event_command
31
31
  # @option params [Integer] flapping_threshold_high
32
32
  # @option params [Integer] flapping_threshold_low
@@ -35,11 +35,11 @@ module Icinga2
35
35
  # @option params [String] icon_image
36
36
  # @option params [Integer] max_check_attempts
37
37
  # @option params [Integer] retry_interval
38
- # @option params [Boolean] volatile
38
+ # @option params [Bool] volatile
39
39
  # @option params [Hash] vars
40
40
  #
41
41
  # @example
42
- # @icinga.add_service(
42
+ # add_service(
43
43
  # name: 'http2',
44
44
  # host_name: 'icinga2',
45
45
  # check_command: 'http',
@@ -144,8 +144,8 @@ module Icinga2
144
144
  # @option params [Bool] cascade (false) delete service also when other objects depend on it
145
145
  #
146
146
  # @example
147
- # @icinga.delete_service(host_name: 'foo', name: 'http2')
148
- # @icinga.delete_service(host_name: 'foo', name: 'http2', cascade: true)
147
+ # delete_service(host_name: 'foo', name: 'http2')
148
+ # delete_service(host_name: 'foo', name: 'http2', cascade: true)
149
149
  #
150
150
  # @return [Hash] result
151
151
  #
@@ -176,7 +176,7 @@ module Icinga2
176
176
  # @option params [Hash] vars
177
177
  #
178
178
  # @example
179
- # @icinga.modify_service(
179
+ # modify_service(
180
180
  # name: 'http2',
181
181
  # check_interval: 60,
182
182
  # retry_interval: 10,
@@ -275,7 +275,7 @@ module Icinga2
275
275
  # return all unhandled services
276
276
  #
277
277
  # @example
278
- # @icinga.unhandled_services
278
+ # unhandled_services
279
279
  #
280
280
  # @return [Hash]
281
281
  #
@@ -308,10 +308,10 @@ module Icinga2
308
308
  # @option params [String] name
309
309
  #
310
310
  # @example to get all services
311
- # @icinga.services
311
+ # services
312
312
  #
313
313
  # @example to get one service for host
314
- # @icinga.services( host_name: 'icinga2', name: 'ping4' )
314
+ # services( host_name: 'icinga2', name: 'ping4' )
315
315
  #
316
316
  # @return [Hash]
317
317
  #
@@ -339,7 +339,7 @@ module Icinga2
339
339
  # @option params [String] name
340
340
  #
341
341
  # @example
342
- # @icinga.exists_service?(host_name: 'icinga2', name: 'users')
342
+ # exists_service?(host_name: 'icinga2', name: 'users')
343
343
  #
344
344
  # @return [Bool]
345
345
  #
@@ -368,10 +368,10 @@ module Icinga2
368
368
  # @option params [Array] joins (['host.name','host.state','host.acknowledgement','host.downtime_depth','host.last_check'])
369
369
  #
370
370
  # @example with default attrs and joins
371
- # @icinga.service_objects
371
+ # service_objects
372
372
  #
373
373
  # @example
374
- # @icinga.service_objects(attrs: ['name', 'state'], joins: ['host.name','host.state'])
374
+ # service_objects(attrs: ['name', 'state'], joins: ['host.name','host.state'])
375
375
  #
376
376
  # @return [Array]
377
377
  #
@@ -415,9 +415,9 @@ module Icinga2
415
415
  # returns adjusted service state
416
416
  #
417
417
  # @example
418
- # warning, critical, unknown = @icinga.services_adjusted.values
418
+ # warning, critical, unknown = services_adjusted.values
419
419
  #
420
- # s = @icinga.services_adjusted
420
+ # s = services_adjusted
421
421
  # unknown = s.dig(:unknown)
422
422
  #
423
423
  # @return [Hash]
@@ -455,7 +455,7 @@ module Icinga2
455
455
  # return count of services with problems
456
456
  #
457
457
  # @example
458
- # @icinga.count_services_with_problems
458
+ # count_services_with_problems
459
459
  #
460
460
  # @return [Integer]
461
461
  #
@@ -476,9 +476,9 @@ module Icinga2
476
476
  # @param [Integer] max_items numbers of list entries
477
477
  #
478
478
  # @example
479
- # problems, problems_and_severity = @icinga.list_services_with_problems.values
479
+ # problems, problems_and_severity = list_services_with_problems.values
480
480
  #
481
- # l = @icinga.list_services_with_problems
481
+ # l = list_services_with_problems
482
482
  # problems_and_severity = l.dig(:services_with_problems_and_severity)
483
483
  #
484
484
  # @return [Hash]
@@ -501,9 +501,11 @@ module Icinga2
501
501
  name = s.dig('name')
502
502
  state = s.dig('attrs','state')
503
503
 
504
- next if state.zero?
504
+ next if( state.zero? )
505
505
 
506
- services_with_problems[name] = service_severity(s)
506
+ # TODO
507
+ # change spec tests!
508
+ services_with_problems[name] = state # service_severity(s)
507
509
  end
508
510
 
509
511
  if( services_with_problems.count != 0 )
@@ -521,7 +523,7 @@ module Icinga2
521
523
  # returns a counter of all services
522
524
  #
523
525
  # @example
524
- # @icinga.services_all
526
+ # services_all
525
527
  #
526
528
  # @return [Integer]
527
529
  #
@@ -536,9 +538,9 @@ module Icinga2
536
538
  # returns data with service problems
537
539
  #
538
540
  # @example
539
- # all, warning, critical, unknown, pending, in_downtime, acknowledged, adjusted_warning, adjusted_critical, adjusted_unknown = @icinga.service_problems.values
541
+ # all, warning, critical, unknown, pending, in_downtime, acknowledged, adjusted_warning, adjusted_critical, adjusted_unknown = service_problems.values
540
542
  #
541
- # p = @icinga.service_problems
543
+ # p = service_problems
542
544
  # warning = p.dig(:warning)
543
545
  #
544
546
  # @return [Hash]
@@ -593,10 +595,10 @@ module Icinga2
593
595
  # returns data with service problems they be handled (acknowledged or in downtime)
594
596
  #
595
597
  # @example
596
- # @icinga.service_objects
597
- # all, warning, critical, unknown = @icinga.service_problems_handled.values
598
+ # service_objects
599
+ # all, warning, critical, unknown = service_problems_handled.values
598
600
  #
599
- # p = @icinga.service_problems_handled
601
+ # p = service_problems_handled
600
602
  # warning = p.dig(:warning)
601
603
  #
602
604
  # @return [Hash]
@@ -10,9 +10,9 @@ module Icinga2
10
10
  # return statistic data for latency and execution_time
11
11
  #
12
12
  # @example
13
- # latency, execution_time = @icinga.average_statistics.values
13
+ # latency, execution_time = average_statistics.values
14
14
  #
15
- # h = @icinga.average_statistics
15
+ # h = average_statistics
16
16
  # latency = h.dig(:latency)
17
17
  #
18
18
  # @return [Hash]
@@ -35,9 +35,9 @@ module Icinga2
35
35
  # return statistic data for intervall data
36
36
  #
37
37
  # @example
38
- # hosts_active_checks, hosts_passive_checks, services_active_checks, services_passive_checks = @icinga.interval_statistics.values
38
+ # hosts_active_checks, hosts_passive_checks, services_active_checks, services_passive_checks = interval_statistics.values
39
39
  #
40
- # i = @icinga.interval_statistics
40
+ # i = interval_statistics
41
41
  # hosts_active_checks = i.dig(:hosts_active_checks)
42
42
  #
43
43
  # @return [Hash]
@@ -68,9 +68,9 @@ module Icinga2
68
68
  # return statistic data for services
69
69
  #
70
70
  # @example
71
- # ok, warning, critical, unknown, pending, in_downtime, ack = @icinga.service_statistics.values
71
+ # ok, warning, critical, unknown, pending, in_downtime, ack = service_statistics.values
72
72
  #
73
- # s = @icinga.service_statistics
73
+ # s = service_statistics
74
74
  # critical = s.dig(:critical)
75
75
  #
76
76
  # @return [Hash]
@@ -108,9 +108,9 @@ module Icinga2
108
108
  # return statistic data for hosts
109
109
  #
110
110
  # @example
111
- # up, down, pending, unreachable, in_downtime, ack = @icinga.host_statistics.values
111
+ # up, down, pending, unreachable, in_downtime, ack = host_statistics.values
112
112
  #
113
- # h = @icinga.host_statistics
113
+ # h = host_statistics
114
114
  # pending = h.dig(:pending)
115
115
  #
116
116
  # @return [Hash]
@@ -146,7 +146,7 @@ module Icinga2
146
146
  # return queue statistics from the api
147
147
  #
148
148
  # @example
149
- # @icinga.work_queue_statistics
149
+ # work_queue_statistics
150
150
  #
151
151
  # @return [Hash]
152
152
  #
@@ -171,14 +171,17 @@ module Icinga2
171
171
  graphite_data = graphite_data.dig('status', 'graphitewriter', 'graphite') unless( graphite_data.nil? )
172
172
  ido_mysql_data = ido_mysql_data.dig('status', 'idomysqlconnection', 'ido-mysql') unless( ido_mysql_data.nil? )
173
173
 
174
- a = {}
175
- a['json_rpc'] = json_rpc_data if(json_rpc_data.is_a?(Hash))
176
- a['graphite'] = graphite_data if(graphite_data.is_a?(Hash))
177
- a['ido-mysql'] = ido_mysql_data if(ido_mysql_data.is_a?(Hash))
174
+ payload = {
175
+ json_rpc: json_rpc_data,
176
+ graphite: graphite_data,
177
+ ido_mysql: ido_mysql_data
178
+ }
179
+
180
+ payload.reject!{ |_k, v| v.nil? }
178
181
 
179
182
  key_list = %w[work_queue_item_rate query_queue_item_rate]
180
183
 
181
- a.each do |k,v|
184
+ payload.each do |k,v|
182
185
  key_list.each do |key|
183
186
  if( v.include?( key ))
184
187
  attr_name = format('%s queue rate', k)
@@ -49,18 +49,18 @@ module Icinga2
49
49
  # @param [Integer] state (nil)
50
50
  #
51
51
  # @example for host objects
52
- # h_objects = @icinga.host_objects
53
- # all = @icinga.count_problems(h_objects)
54
- # down = @icinga.count_problems(h_objects, Icinga2::HOSTS_DOWN)
55
- # critical = @icinga.count_problems(h_objects, Icinga2::HOSTS_CRITICAL)
56
- # unknown = @icinga.count_problems(h_objects, Icinga2::HOSTS_UNKNOWN)
52
+ # h_objects = host_objects
53
+ # all = count_problems(h_objects)
54
+ # down = count_problems(h_objects, Icinga2::HOSTS_DOWN)
55
+ # critical = count_problems(h_objects, Icinga2::HOSTS_CRITICAL)
56
+ # unknown = count_problems(h_objects, Icinga2::HOSTS_UNKNOWN)
57
57
  #
58
58
  # @example for service objects
59
- # s_objects = @icinga.service_objects
60
- # all = @icinga.count_problems(s_objects)
61
- # warning = @icinga.count_problems(s_objects, Icinga2::SERVICE_STATE_WARNING)
62
- # critical = @icinga.count_problems(s_objects, Icinga2::SERVICE_STATE_CRITICAL)
63
- # unknown = @icinga.count_problems(s_objects, Icinga2::SERVICE_STATE_UNKNOWN)
59
+ # s_objects = service_objects
60
+ # all = count_problems(s_objects)
61
+ # warning = count_problems(s_objects, Icinga2::SERVICE_STATE_WARNING)
62
+ # critical = count_problems(s_objects, Icinga2::SERVICE_STATE_CRITICAL)
63
+ # unknown = count_problems(s_objects, Icinga2::SERVICE_STATE_UNKNOWN)
64
64
  #
65
65
  # @return [Integer]
66
66
  #
@@ -91,5 +91,26 @@ module Icinga2
91
91
  f.size
92
92
  end
93
93
 
94
+
95
+ # check, it an String a valid Json
96
+ #
97
+ # @param json [String] json
98
+ #
99
+ # @example
100
+ # valid_json?( json )
101
+ #
102
+ # @return [Bool]
103
+ #
104
+ def valid_json?( json )
105
+
106
+ begin
107
+ JSON.parse( json )
108
+ return true
109
+ rescue JSON::ParserError => e
110
+ @logger.error("json parse error: #{e}") if @debug
111
+ return false
112
+ end
113
+
114
+ end
94
115
  end
95
116
  end
@@ -13,7 +13,7 @@ module Icinga2
13
13
  # @option params [String] display_name the displayed name
14
14
  #
15
15
  # @example
16
- # @icinga.add_usergroup(user_group: 'foo', display_name: 'FOO')
16
+ # add_usergroup(user_group: 'foo', display_name: 'FOO')
17
17
  #
18
18
  # @return [Hash] result
19
19
  #
@@ -48,7 +48,7 @@ module Icinga2
48
48
  # @param [String] user_group usergroup to delete
49
49
  #
50
50
  # @example
51
- # @icinga.delete_usergroup('foo')
51
+ # delete_usergroup('foo')
52
52
  #
53
53
  # @return [Hash] result
54
54
  #
@@ -69,10 +69,10 @@ module Icinga2
69
69
  # @param [String] user_group (nil) optional for a single usergroup
70
70
  #
71
71
  # @example to get all users
72
- # @icinga.usergroups
72
+ # usergroups
73
73
  #
74
74
  # @example to get one user
75
- # @icinga.usergroups('icingaadmins')
75
+ # usergroups('icingaadmins')
76
76
  #
77
77
  # @return [Hash] returns a hash with all usergroups
78
78
  #
@@ -93,7 +93,7 @@ module Icinga2
93
93
  # @param [String] user_group the name of the usergroups
94
94
  #
95
95
  # @example
96
- # @icinga.exists_usergroup?('icingaadmins')
96
+ # exists_usergroup?('icingaadmins')
97
97
  #
98
98
  # @return [Bool] returns true if the usergroup exists
99
99
  #