sensu-plugin 1.4.7 → 2.0.0
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/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
|