sensu-plugin 1.4.7 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sensu-handler.rb +2 -18
- data/lib/sensu-plugin.rb +1 -1
- data/lib/sensu-plugin/cli.rb +2 -2
- data/test/external_check_test.rb +2 -2
- data/test/handle_filter_test.rb +46 -13
- data/test/test_helper.rb +0 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3baa8a659398d40bd3ee8ae30f9ce2fe69078eb
|
4
|
+
data.tar.gz: 802b2d8ab27edc4ca6834d2cf33b2ad0ece76b6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 826f3b874c986cce0e3923293a93bc4a612872496afb9ad4e75a997c6fadbdbc33c935d7bbc49fc12ae752677141b544ef7763079455b39941c8d6777808b4c3
|
7
|
+
data.tar.gz: 5299d3bd34f0fb9588d23f83a8d4666833defa5571aaa5d090556905dbff601ca43ccea8b8770155921588539375bd4891c67e77b8d5d3cd6e37aed32479e4ee
|
data/lib/sensu-handler.rb
CHANGED
@@ -42,28 +42,13 @@ module Sensu
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
# Evaluates whether deprecated filtering is explicitly disabled
|
46
|
-
# via global Sensu configuration. Defaults to false,
|
47
|
-
# i.e. deprecated filters are run by default.
|
48
|
-
#
|
49
|
-
# @return [TrueClass, FalseClass]
|
50
|
-
def deprecated_filtering_globally_disabled?
|
51
|
-
global_settings = settings.fetch('sensu_plugin', {})
|
52
|
-
global_settings['disable_deprecated_filtering'].to_s == "true"
|
53
|
-
end
|
54
|
-
|
55
45
|
# Evaluates whether the event should be processed by any of the
|
56
46
|
# filter methods in this library. Defaults to true,
|
57
47
|
# i.e. deprecated filters are run by default.
|
58
48
|
#
|
59
49
|
# @return [TrueClass, FalseClass]
|
60
50
|
def deprecated_filtering_enabled?
|
61
|
-
|
62
|
-
return false
|
63
|
-
else
|
64
|
-
@event['check']['enable_deprecated_filtering'].nil? || \
|
65
|
-
@event['check']['enable_deprecated_filtering'].to_s == "true"
|
66
|
-
end
|
51
|
+
@event['check'].fetch('enable_deprecated_filtering', false).to_s == "true"
|
67
52
|
end
|
68
53
|
|
69
54
|
# Evaluates whether the event should be processed by the
|
@@ -72,8 +57,7 @@ module Sensu
|
|
72
57
|
#
|
73
58
|
# @return [TrueClass, FalseClass]
|
74
59
|
def deprecated_occurrence_filtering_enabled?
|
75
|
-
@event['check']
|
76
|
-
@event['check']['enable_deprecated_occurrence_filtering'].to_s == "true"
|
60
|
+
@event['check'].fetch('enable_deprecated_occurrence_filtering', false).to_s == "true"
|
77
61
|
end
|
78
62
|
|
79
63
|
# This works just like Plugin::CLI's autorun.
|
data/lib/sensu-plugin.rb
CHANGED
data/lib/sensu-plugin/cli.rb
CHANGED
@@ -60,11 +60,11 @@ module Sensu
|
|
60
60
|
exit e.status
|
61
61
|
rescue OptionParser::InvalidOption => e
|
62
62
|
puts "Invalid check argument(s): #{e.message}, #{e.backtrace}"
|
63
|
-
exit
|
63
|
+
exit 3
|
64
64
|
rescue Exception => e
|
65
65
|
# This can't call check.critical, as the check may have failed to construct
|
66
66
|
puts "Check failed to run: #{e.message}, #{e.backtrace}"
|
67
|
-
exit
|
67
|
+
exit 3
|
68
68
|
end
|
69
69
|
check.warning "Check did not exit! You should call an exit code method."
|
70
70
|
end
|
data/test/external_check_test.rb
CHANGED
@@ -39,7 +39,7 @@ class TestCheckExternal < MiniTest::Test
|
|
39
39
|
|
40
40
|
def test_exception
|
41
41
|
output = run_script '-f'
|
42
|
-
assert $?.exitstatus ==
|
42
|
+
assert $?.exitstatus == 3 && output.include?('failed')
|
43
43
|
end
|
44
44
|
|
45
45
|
def test_argv
|
@@ -49,7 +49,7 @@ class TestCheckExternal < MiniTest::Test
|
|
49
49
|
|
50
50
|
def test_bad_commandline
|
51
51
|
output = run_script '--doesnotexist'
|
52
|
-
assert $?.exitstatus ==
|
52
|
+
assert $?.exitstatus == 3 && output.include?('doesnotexist') && output.include?('invalid option')
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_bad_require
|
data/test/handle_filter_test.rb
CHANGED
@@ -11,7 +11,12 @@ class TestFilterExternal < MiniTest::Test
|
|
11
11
|
def test_create_not_enough_occurrences
|
12
12
|
event = {
|
13
13
|
'client' => { 'name' => 'test' },
|
14
|
-
'check' => {
|
14
|
+
'check' => {
|
15
|
+
'name' => 'test',
|
16
|
+
'occurrences' => 2,
|
17
|
+
'enable_deprecated_filtering' => true,
|
18
|
+
'enable_deprecated_occurrence_filtering' => true
|
19
|
+
},
|
15
20
|
'occurrences' => 1,
|
16
21
|
'action' => 'create'
|
17
22
|
}
|
@@ -23,7 +28,12 @@ class TestFilterExternal < MiniTest::Test
|
|
23
28
|
def test_create_enough_occurrences
|
24
29
|
event = {
|
25
30
|
'client' => { 'name' => 'test' },
|
26
|
-
'check' => {
|
31
|
+
'check' => {
|
32
|
+
'name' => 'test',
|
33
|
+
'occurrences' => 2,
|
34
|
+
'enable_deprecated_filtering' => true,
|
35
|
+
'enable_deprecated_occurrence_filtering' => true
|
36
|
+
},
|
27
37
|
'occurrences' => 2,
|
28
38
|
'action' => 'create'
|
29
39
|
}
|
@@ -35,7 +45,12 @@ class TestFilterExternal < MiniTest::Test
|
|
35
45
|
def test_resolve_not_enough_occurrences
|
36
46
|
event = {
|
37
47
|
'client' => { 'name' => 'test' },
|
38
|
-
'check' => {
|
48
|
+
'check' => {
|
49
|
+
'name' => 'test',
|
50
|
+
'occurrences' => 2,
|
51
|
+
'enable_deprecated_filtering' => true,
|
52
|
+
'enable_deprecated_occurrence_filtering' => true
|
53
|
+
},
|
39
54
|
'occurrences' => 1,
|
40
55
|
'action' => 'resolve'
|
41
56
|
}
|
@@ -47,7 +62,11 @@ class TestFilterExternal < MiniTest::Test
|
|
47
62
|
def test_resolve_enough_occurrences
|
48
63
|
event = {
|
49
64
|
'client' => { 'name' => 'test' },
|
50
|
-
'check' => {
|
65
|
+
'check' => {
|
66
|
+
'name' => 'test',
|
67
|
+
'occurrences' => 2,
|
68
|
+
'enable_deprecated_filtering' => true
|
69
|
+
},
|
51
70
|
'occurrences' => 2,
|
52
71
|
'action' => 'resolve'
|
53
72
|
}
|
@@ -59,7 +78,11 @@ class TestFilterExternal < MiniTest::Test
|
|
59
78
|
def test_refresh_enough_occurrences
|
60
79
|
event = {
|
61
80
|
'client' => { 'name' => 'test' },
|
62
|
-
'check' => {
|
81
|
+
'check' => {
|
82
|
+
'name' => 'test',
|
83
|
+
'enable_deprecated_filtering' => true,
|
84
|
+
'enable_deprecated_occurrence_filtering' => true
|
85
|
+
},
|
63
86
|
'occurrences' => 61,
|
64
87
|
'action' => 'create'
|
65
88
|
}
|
@@ -71,7 +94,11 @@ class TestFilterExternal < MiniTest::Test
|
|
71
94
|
def test_refresh_not_enough_occurrences
|
72
95
|
event = {
|
73
96
|
'client' => { 'name' => 'test' },
|
74
|
-
'check' => {
|
97
|
+
'check' => {
|
98
|
+
'name' => 'test',
|
99
|
+
'enable_deprecated_filtering' => true,
|
100
|
+
'enable_deprecated_occurrence_filtering' => true
|
101
|
+
},
|
75
102
|
'occurrences' => 60,
|
76
103
|
'action' => 'create'
|
77
104
|
}
|
@@ -107,7 +134,11 @@ class TestFilterExternal < MiniTest::Test
|
|
107
134
|
def test_dependency_event_exists
|
108
135
|
event = {
|
109
136
|
'client' => { 'name' => 'test' },
|
110
|
-
'check' => {
|
137
|
+
'check' => {
|
138
|
+
'name' => 'test',
|
139
|
+
'dependencies' => ['foo', 'bar'],
|
140
|
+
'enable_deprecated_filtering' => true
|
141
|
+
},
|
111
142
|
'occurrences' => 1
|
112
143
|
}
|
113
144
|
output = run_script_with_input(JSON.generate(event))
|
@@ -119,7 +150,7 @@ class TestFilterExternal < MiniTest::Test
|
|
119
150
|
'warning: event filtering in sensu-plugin is deprecated, see http://bit.ly/sensu-plugin'
|
120
151
|
end
|
121
152
|
|
122
|
-
def
|
153
|
+
def test_filter_deprecation_warning_is_not_present_by_default
|
123
154
|
event = {
|
124
155
|
'client' => { 'name' => 'test' },
|
125
156
|
'check' => { 'name' => 'test', 'refresh' => 30 },
|
@@ -128,7 +159,7 @@ class TestFilterExternal < MiniTest::Test
|
|
128
159
|
}
|
129
160
|
output = run_script_with_input(JSON.generate(event))
|
130
161
|
assert_equal(0, $?.exitstatus)
|
131
|
-
|
162
|
+
refute_match(/#{filter_deprecation_string}/, output)
|
132
163
|
end
|
133
164
|
|
134
165
|
def test_filter_deprecation_warning_exists_when_explicitly_enabled
|
@@ -184,7 +215,7 @@ class TestFilterExternal < MiniTest::Test
|
|
184
215
|
'warning: occurrence filtering in sensu-plugin is deprecated, see http://bit.ly/sensu-plugin'
|
185
216
|
end
|
186
217
|
|
187
|
-
def
|
218
|
+
def test_occurrence_filter_deprecation_warning_not_present_by_default
|
188
219
|
event = {
|
189
220
|
'client' => { 'name' => 'test' },
|
190
221
|
'check' => { 'name' => 'test', 'refresh' => 30 },
|
@@ -193,15 +224,16 @@ class TestFilterExternal < MiniTest::Test
|
|
193
224
|
}
|
194
225
|
output = run_script_with_input(JSON.generate(event))
|
195
226
|
assert_equal(0, $?.exitstatus)
|
196
|
-
|
227
|
+
refute_match(/#{occurrence_filter_deprecation_string}/, output)
|
197
228
|
end
|
198
229
|
|
199
|
-
def
|
230
|
+
def test_occurrence_filter_deprecation_warning_present_when_explicitly_enabled
|
200
231
|
event = {
|
201
232
|
'client' => { 'name' => 'test' },
|
202
233
|
'check' => {
|
203
234
|
'name' => 'test',
|
204
235
|
'refresh' => 30,
|
236
|
+
'enable_deprecated_filtering' => true,
|
205
237
|
'enable_deprecated_occurrence_filtering' => true
|
206
238
|
},
|
207
239
|
'occurrences' => 60,
|
@@ -212,12 +244,13 @@ class TestFilterExternal < MiniTest::Test
|
|
212
244
|
assert_match(/#{occurrence_filter_deprecation_string}/, output)
|
213
245
|
end
|
214
246
|
|
215
|
-
def
|
247
|
+
def test_occurrence_filter_deprecation_warning_not_present_when_explicitly_disabled
|
216
248
|
event = {
|
217
249
|
'client' => { 'name' => 'test' },
|
218
250
|
'check' => {
|
219
251
|
'name' => 'unfiltered test',
|
220
252
|
'refresh' => 30,
|
253
|
+
'enable_deprecated_filtering' => true,
|
221
254
|
'enable_deprecated_occurrence_filtering' => false
|
222
255
|
},
|
223
256
|
'occurrences' => 60,
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Decklin Foster
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-03-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -29,16 +29,16 @@ dependencies:
|
|
29
29
|
name: mixlib-cli
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.5.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 1.5.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,9 +101,9 @@ require_paths:
|
|
101
101
|
- lib
|
102
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- - "
|
104
|
+
- - "~>"
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: '0'
|
106
|
+
version: '2.0'
|
107
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - ">="
|
@@ -111,17 +111,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
113
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.6.
|
114
|
+
rubygems_version: 2.6.6
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Sensu Plugins
|
118
118
|
test_files:
|
119
|
+
- test/deep_merge_test.rb
|
119
120
|
- test/external_check_test.rb
|
120
|
-
- test/
|
121
|
+
- test/external_handler_argument_test.rb
|
122
|
+
- test/external_handler_test.rb
|
121
123
|
- test/external_metric_test.rb
|
122
124
|
- test/handle_filter_test.rb
|
123
|
-
- test/
|
125
|
+
- test/handle_helper_test.rb
|
124
126
|
- test/mutator_test.rb
|
125
127
|
- test/test_helper.rb
|
126
|
-
- test/external_handler_argument_test.rb
|
127
|
-
- test/external_handler_test.rb
|