logstash-filter-prune 2.0.6 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0aa13777206748e30389b8dac3a5717a7de5c936
4
- data.tar.gz: 323b0ad7e14c359bc05d1337dbd3d599f1195d4a
3
+ metadata.gz: 5ef1690c69edaaf16f57f240c96677c00d86cb95
4
+ data.tar.gz: 99015b154c7efe6f4d5921041c05ca8ba866718e
5
5
  SHA512:
6
- metadata.gz: e988e91deb98a220e5f1a3eb4a3af92c5784c8fe223330336b73a905888a72d08ad1de87a5571365890eca6493cc2551ee8c030e40c737a82b8661e2f8fd0268
7
- data.tar.gz: 0f2e99730b3045dd932609802d773f9bb73522d7e43f21809c70fe66cee58cc9910302b29a7d26c106d7bb008f120524b2984bbbf1d1f5a5b94465be7532ae1d
6
+ metadata.gz: 03283a46d5f871fccc10fcbb6ce9f57dcf6dca4b4a588dead0297201b75da9525ef33391fd8c4f366e02c88eb6f02f133ebfabf262449238616eb2c0ce2474f0
7
+ data.tar.gz: 3741c495ba8f040549e38186abf74f98d2d59daa27e931342012a6b0a43727c9b04352a077de2ea6094156c9c4c61763fe171ede89c3adbb7433f2ca31444354
@@ -1,3 +1,7 @@
1
+ ## 3.0.0
2
+ - internal: Bumped up logstash-core-plugin-api dependency to allow installation with Logstash 5.
3
+ - doc: Clarify that pruning of subfields is unsupported.
4
+
1
5
  ## 2.0.6
2
6
  - doc: Documentation improvements.
3
7
 
@@ -11,7 +15,7 @@
11
15
  - internal,deps: New dependency requirements for logstash-core for the 5.0 release
12
16
 
13
17
  ## 2.0.0
14
- - internal: Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully,
18
+ - internal: Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully,
15
19
  instead of using Thread.raise on the plugins' threads. Ref: https://github.com/elastic/logstash/pull/3895
16
20
  - internal,deps: Dependency on logstash-core update to 2.0
17
21
 
@@ -8,6 +8,7 @@ Contributors:
8
8
  * Aaron Mildenstein (untergeek)
9
9
  * David R Soller (3ygun)
10
10
  * Jordan Sissel (jordansissel)
11
+ * Joshua Spence (joshuaspence)
11
12
  * Pier-Hugues Pellerin (ph)
12
13
  * Richard Pijnenburg (electrical)
13
14
  * Suyog Rao (suyograo)
@@ -14,19 +14,19 @@ require "logstash/namespace"
14
14
  #
15
15
  # Usage help:
16
16
  # To specify a exact field name or value use the regular expression syntax `^some_name_or_value$`.
17
- # Example usage: Input data `{ "msg":"hello world", "msg_short":"hw" }`
17
+ # Example usage: Input data `{ "msg":"hello world", "msg_short":"hw" }`
18
18
  # [source,ruby]
19
- # filter {
20
- # %PLUGIN% {
19
+ # filter {
20
+ # %PLUGIN% {
21
21
  # whitelist_names => [ "msg" ]
22
22
  # }
23
23
  # }
24
24
  # Allows both `"msg"` and `"msg_short"` through.
25
- #
25
+ #
26
26
  # While:
27
27
  # [source,ruby]
28
- # filter {
29
- # %PLUGIN% {
28
+ # filter {
29
+ # %PLUGIN% {
30
30
  # whitelist_names => ["^msg$"]
31
31
  # }
32
32
  # }
@@ -34,6 +34,10 @@ require "logstash/namespace"
34
34
  #
35
35
  # Logstash stores an event's `tags` as a field which is subject to pruning. Remember to `whitelist_names => [ "^tags$" ]`
36
36
  # to maintain `tags` after pruning or use `blacklist_values => [ "^tag_name$" ]` to eliminate a specific `tag`.
37
+ #
38
+ # NOTE: This filter currently only support operations on top-level fields,
39
+ # i.e. whitelisting and blacklisting of subfields based on name or value
40
+ # does not work.
37
41
 
38
42
  class LogStash::Filters::Prune < LogStash::Filters::Base
39
43
  config_name "prune"
@@ -44,9 +48,9 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
44
48
  config :interpolate, :validate => :boolean, :default => false
45
49
 
46
50
  # Include only fields only if their names match specified regexps, default to empty list which means include everything.
47
- # [source,ruby]
48
- # filter {
49
- # %PLUGIN% {
51
+ # [source,ruby]
52
+ # filter {
53
+ # %PLUGIN% {
50
54
  # whitelist_names => [ "method", "(referrer|status)", "${some}_field" ]
51
55
  # }
52
56
  # }
@@ -54,8 +58,8 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
54
58
 
55
59
  # Exclude fields whose names match specified regexps, by default exclude unresolved `%{field}` strings.
56
60
  # [source,ruby]
57
- # filter {
58
- # %PLUGIN% {
61
+ # filter {
62
+ # %PLUGIN% {
59
63
  # blacklist_names => [ "method", "(referrer|status)", "${some}_field" ]
60
64
  # }
61
65
  # }
@@ -64,8 +68,8 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
64
68
  # Include specified fields only if their values match one of the supplied regular expressions.
65
69
  # In case field values are arrays, each array item is matched against the regular expressions and only matching array items will be included.
66
70
  # [source,ruby]
67
- # filter {
68
- # %PLUGIN% {
71
+ # filter {
72
+ # %PLUGIN% {
69
73
  # whitelist_values => [ "uripath", "/index.php",
70
74
  # "method", "(GET|POST)",
71
75
  # "status", "^[^2]" ]
@@ -76,8 +80,8 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
76
80
  # Exclude specified fields if their values match one of the supplied regular expressions.
77
81
  # In case field values are arrays, each array item is matched against the regular expressions and matching array items will be excluded.
78
82
  # [source,ruby]
79
- # filter {
80
- # %PLUGIN% {
83
+ # filter {
84
+ # %PLUGIN% {
81
85
  # blacklist_values => [ "uripath", "/index.php",
82
86
  # "method", "(HEAD|OPTIONS)",
83
87
  # "status", "^[^2]" ]
@@ -101,7 +105,7 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
101
105
 
102
106
  public
103
107
  def filter(event)
104
-
108
+
105
109
 
106
110
  hash = event.to_hash
107
111
 
@@ -161,9 +165,10 @@ class LogStash::Filters::Prune < LogStash::Filters::Base
161
165
 
162
166
  fields_to_remove.each do |field|
163
167
  if field.is_a?(Hash)
164
- hash[field[:key]] = hash[field[:key]] - field[:values]
168
+ event.set(field[:key], hash[field[:key]] - field[:values])
165
169
  else
166
170
  hash.delete(field)
171
+ event.remove(field)
167
172
  end
168
173
  end
169
174
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-prune'
4
- s.version = '2.0.6'
4
+ s.version = '3.0.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "The prune filter is for pruning event data from fields based on whitelist/blacklist of field names or their values (names and values can also be regular expressions)"
7
7
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
21
21
 
22
22
  # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
23
+ s.add_runtime_dependency 'logstash-core-plugin-api', '>= 1.60', '<= 2.99'
24
24
 
25
25
  s.add_development_dependency 'logstash-devutils'
26
26
  end
@@ -16,7 +16,7 @@ describe LogStash::Filters::Prune, :if => false do
16
16
  prune { }
17
17
  }
18
18
  CONFIG
19
-
19
+
20
20
  sample(
21
21
  "firstname" => "Borat",
22
22
  "lastname" => "Sagdiyev",
@@ -28,15 +28,15 @@ describe LogStash::Filters::Prune, :if => false do
28
28
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
29
29
  "%{hmm}" => "doh"
30
30
  ) do
31
- insist { subject["firstname"] } == "Borat"
32
- insist { subject["lastname"] } == "Sagdiyev"
33
- insist { subject["fullname"] } == "Borat Sagdiyev"
34
- insist { subject["country"] } == "Kazakhstan"
35
- insist { subject["location"] } == "Somethere in Kazakhstan"
36
- insist { subject["hobby"] } == "Cloud"
37
- insist { subject["status"] } == "200"
38
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
39
- insist { subject["%{hmm}"] } == nil
31
+ insist { subject.get("firstname") } == "Borat"
32
+ insist { subject.get("lastname") } == "Sagdiyev"
33
+ insist { subject.get("fullname") } == "Borat Sagdiyev"
34
+ insist { subject.get("country") } == "Kazakhstan"
35
+ insist { subject.get("location") } == "Somethere in Kazakhstan"
36
+ insist { subject.get("hobby") } == "Cloud"
37
+ insist { subject.get("status") } == "200"
38
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
39
+ insist { subject.get("%{hmm}") } == nil
40
40
  end
41
41
  end
42
42
 
@@ -49,7 +49,7 @@ describe LogStash::Filters::Prune, :if => false do
49
49
  }
50
50
  }
51
51
  CONFIG
52
-
52
+
53
53
  sample(
54
54
  "firstname" => "Borat",
55
55
  "lastname" => "Sagdiyev",
@@ -61,15 +61,15 @@ describe LogStash::Filters::Prune, :if => false do
61
61
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
62
62
  "%{hmm}" => "doh"
63
63
  ) do
64
- insist { subject["firstname"] } == "Borat"
65
- insist { subject["lastname"] } == nil
66
- insist { subject["fullname"] } == nil
67
- insist { subject["country"] } == nil
68
- insist { subject["location"] } == nil
69
- insist { subject["hobby"] } == "Cloud"
70
- insist { subject["status"] } == "200"
71
- insist { subject["Borat_saying"] } == nil
72
- insist { subject["%{hmm}"] } == nil
64
+ insist { subject.get("firstname") } == "Borat"
65
+ insist { subject.get("lastname") } == nil
66
+ insist { subject.get("fullname") } == nil
67
+ insist { subject.get("country") } == nil
68
+ insist { subject.get("location") } == nil
69
+ insist { subject.get("hobby") } == "Cloud"
70
+ insist { subject.get("status") } == "200"
71
+ insist { subject.get("Borat_saying") } == nil
72
+ insist { subject.get("%{hmm}") } == nil
73
73
  end
74
74
  end
75
75
 
@@ -83,7 +83,7 @@ describe LogStash::Filters::Prune, :if => false do
83
83
  }
84
84
  }
85
85
  CONFIG
86
-
86
+
87
87
  sample(
88
88
  "firstname" => "Borat",
89
89
  "lastname" => "Sagdiyev",
@@ -95,15 +95,15 @@ describe LogStash::Filters::Prune, :if => false do
95
95
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
96
96
  "%{hmm}" => "doh"
97
97
  ) do
98
- insist { subject["firstname"] } == "Borat"
99
- insist { subject["lastname"] } == nil
100
- insist { subject["fullname"] } == nil
101
- insist { subject["country"] } == nil
102
- insist { subject["location"] } == nil
103
- insist { subject["hobby"] } == "Cloud"
104
- insist { subject["status"] } == "200"
105
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
106
- insist { subject["%{hmm}"] } == nil
98
+ insist { subject.get("firstname") } == "Borat"
99
+ insist { subject.get("lastname") } == nil
100
+ insist { subject.get("fullname") } == nil
101
+ insist { subject.get("country") } == nil
102
+ insist { subject.get("location") } == nil
103
+ insist { subject.get("hobby") } == "Cloud"
104
+ insist { subject.get("status") } == "200"
105
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
106
+ insist { subject.get("%{hmm}") } == nil
107
107
  end
108
108
  end
109
109
 
@@ -128,15 +128,15 @@ describe LogStash::Filters::Prune, :if => false do
128
128
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
129
129
  "%{hmm}" => "doh"
130
130
  ) do
131
- insist { subject["firstname"] } == nil
132
- insist { subject["lastname"] } == "Sagdiyev"
133
- insist { subject["fullname"] } == "Borat Sagdiyev"
134
- insist { subject["country"] } == "Kazakhstan"
135
- insist { subject["location"] } == "Somethere in Kazakhstan"
136
- insist { subject["hobby"] } == nil
137
- insist { subject["status"] } == nil
138
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
139
- insist { subject["%{hmm}"] } == "doh"
131
+ insist { subject.get("firstname") } == nil
132
+ insist { subject.get("lastname") } == "Sagdiyev"
133
+ insist { subject.get("fullname") } == "Borat Sagdiyev"
134
+ insist { subject.get("country") } == "Kazakhstan"
135
+ insist { subject.get("location") } == "Somethere in Kazakhstan"
136
+ insist { subject.get("hobby") } == nil
137
+ insist { subject.get("status") } == nil
138
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
139
+ insist { subject.get("%{hmm}") } == "doh"
140
140
  end
141
141
  end
142
142
 
@@ -162,15 +162,15 @@ describe LogStash::Filters::Prune, :if => false do
162
162
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
163
163
  "%{hmm}" => "doh"
164
164
  ) do
165
- insist { subject["firstname"] } == nil
166
- insist { subject["lastname"] } == "Sagdiyev"
167
- insist { subject["fullname"] } == "Borat Sagdiyev"
168
- insist { subject["country"] } == "Kazakhstan"
169
- insist { subject["location"] } == "Somethere in Kazakhstan"
170
- insist { subject["hobby"] } == nil
171
- insist { subject["status"] } == nil
172
- insist { subject["Borat_saying"] } == nil
173
- insist { subject["%{hmm}"] } == "doh"
165
+ insist { subject.get("firstname") } == nil
166
+ insist { subject.get("lastname") } == "Sagdiyev"
167
+ insist { subject.get("fullname") } == "Borat Sagdiyev"
168
+ insist { subject.get("country") } == "Kazakhstan"
169
+ insist { subject.get("location") } == "Somethere in Kazakhstan"
170
+ insist { subject.get("hobby") } == nil
171
+ insist { subject.get("status") } == nil
172
+ insist { subject.get("Borat_saying") } == nil
173
+ insist { subject.get("%{hmm}") } == "doh"
174
174
  end
175
175
  end
176
176
 
@@ -201,25 +201,25 @@ describe LogStash::Filters::Prune, :if => false do
201
201
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
202
202
  "%{hmm}" => "doh"
203
203
  ) do
204
- insist { subject["firstname"] } == "Borat"
204
+ insist { subject.get("firstname") } == "Borat"
205
205
 
206
206
  # TODO(sissel): According to the config above, this should be nil because
207
207
  # it is not in the list of whitelisted fields, but we expect it to be
208
208
  # "Sagdiyev" ? I am confused.
209
- insist { subject["lastname"] } == "Sagdiyev"
210
- insist { subject["fullname"] } == nil
211
- insist { subject["country"] } == "Kazakhstan"
212
- insist { subject["location"] } == nil
213
- insist { subject["hobby"] } == "Cloud"
214
- insist { subject["status"] } == "200"
215
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
209
+ insist { subject.get("lastname") } == "Sagdiyev"
210
+ insist { subject.get("fullname") } == nil
211
+ insist { subject.get("country") } == "Kazakhstan"
212
+ insist { subject.get("location") } == nil
213
+ insist { subject.get("hobby") } == "Cloud"
214
+ insist { subject.get("status") } == "200"
215
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
216
216
 
217
217
  # TODO(sissel): Contrary to the 'lastname' check, we expect %{hmm} field
218
- # to be nil because it is not whitelisted, yes? Contradictory insists
218
+ # to be nil because it is not whitelisted, yes? Contradictory insists
219
219
  # here. I don't know what the intended behavior is... Seems like
220
220
  # whitelist means 'anything not here' but since this test is written
221
221
  # confusingly, I dont' know how to move forward.
222
- insist { subject["%{hmm}"] } == nil
222
+ insist { subject.get("%{hmm}") } == nil
223
223
  end
224
224
  end
225
225
 
@@ -249,15 +249,15 @@ describe LogStash::Filters::Prune, :if => false do
249
249
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
250
250
  "%{hmm}" => "doh"
251
251
  ) do
252
- insist { subject["firstname"] } == "Borat"
253
- insist { subject["lastname"] } == "Sagdiyev"
254
- insist { subject["fullname"] } == "Borat Sagdiyev"
255
- insist { subject["country"] } == "Kazakhstan"
256
- insist { subject["location"] } == nil
257
- insist { subject["hobby"] } == "Cloud"
258
- insist { subject["status"] } == "200"
259
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
260
- insist { subject["%{hmm}"] } == nil
252
+ insist { subject.get("firstname") } == "Borat"
253
+ insist { subject.get("lastname") } == "Sagdiyev"
254
+ insist { subject.get("fullname") } == "Borat Sagdiyev"
255
+ insist { subject.get("country") } == "Kazakhstan"
256
+ insist { subject.get("location") } == nil
257
+ insist { subject.get("hobby") } == "Cloud"
258
+ insist { subject.get("status") } == "200"
259
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
260
+ insist { subject.get("%{hmm}") } == nil
261
261
  end
262
262
  end
263
263
 
@@ -286,15 +286,15 @@ describe LogStash::Filters::Prune, :if => false do
286
286
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
287
287
  "%{hmm}" => "doh"
288
288
  ) do
289
- insist { subject["firstname"] } == nil
290
- insist { subject["lastname"] } == "Sagdiyev"
291
- insist { subject["fullname"] } == "Borat Sagdiyev"
292
- insist { subject["country"] } == "Kazakhstan"
293
- insist { subject["location"] } == "Somethere in Kazakhstan"
294
- insist { subject["hobby"] } == "Cloud"
295
- insist { subject["status"] } == nil
296
- insist { subject["Borat_saying"] } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
297
- insist { subject["%{hmm}"] } == nil
289
+ insist { subject.get("firstname") } == nil
290
+ insist { subject.get("lastname") } == "Sagdiyev"
291
+ insist { subject.get("fullname") } == "Borat Sagdiyev"
292
+ insist { subject.get("country") } == "Kazakhstan"
293
+ insist { subject.get("location") } == "Somethere in Kazakhstan"
294
+ insist { subject.get("hobby") } == "Cloud"
295
+ insist { subject.get("status") } == nil
296
+ insist { subject.get("Borat_saying") } == "Cloud is not ready for enterprise if is not integrate with single server running Active Directory."
297
+ insist { subject.get("%{hmm}") } == nil
298
298
  end
299
299
  end
300
300
 
@@ -324,15 +324,15 @@ describe LogStash::Filters::Prune, :if => false do
324
324
  "Borat_saying" => "Cloud is not ready for enterprise if is not integrate with single server running Active Directory.",
325
325
  "%{hmm}" => "doh"
326
326
  ) do
327
- insist { subject["firstname"] } == nil
328
- insist { subject["lastname"] } == "Sagdiyev"
329
- insist { subject["fullname"] } == nil
330
- insist { subject["country"] } == "Kazakhstan"
331
- insist { subject["location"] } == "Somethere in Kazakhstan"
332
- insist { subject["hobby"] } == "Cloud"
333
- insist { subject["status"] } == nil
334
- insist { subject["Borat_saying"] } == nil
335
- insist { subject["%{hmm}"] } == nil
327
+ insist { subject.get("firstname") } == nil
328
+ insist { subject.get("lastname") } == "Sagdiyev"
329
+ insist { subject.get("fullname") } == nil
330
+ insist { subject.get("country") } == "Kazakhstan"
331
+ insist { subject.get("location") } == "Somethere in Kazakhstan"
332
+ insist { subject.get("hobby") } == "Cloud"
333
+ insist { subject.get("status") } == nil
334
+ insist { subject.get("Borat_saying") } == nil
335
+ insist { subject.get("%{hmm}") } == nil
336
336
  end
337
337
  end
338
338
 
@@ -354,10 +354,10 @@ describe LogStash::Filters::Prune, :if => false do
354
354
  "status" => [ "100", "200", "300", "400", "500" ],
355
355
  "error" => [ "This is foolish" , "Need smthing smart too" ]
356
356
  ) do
357
- insist { subject["blah"] } == "foo"
358
- insist { subject["error"] } == nil
359
- insist { subject["xxx"] } == [ "1 2 3", "3 4 5" ]
360
- insist { subject["status"] } == [ "100", "200", "300" ]
357
+ insist { subject.get("blah") } == "foo"
358
+ insist { subject.get("error") } == nil
359
+ insist { subject.get("xxx") } == [ "1 2 3", "3 4 5" ]
360
+ insist { subject.get("status") } == [ "100", "200", "300" ]
361
361
  end
362
362
  end
363
363
 
@@ -379,15 +379,15 @@ describe LogStash::Filters::Prune, :if => false do
379
379
  "status" => [ "100", "200", "300", "400", "500" ],
380
380
  "error" => [ "This is foolish", "Need smthing smart too" ]
381
381
  ) do
382
- insist { subject["blah"] } == "foo"
383
- insist { subject["error"] } == [ "This is foolish", "Need smthing smart too" ]
384
- insist { subject["xxx"] } == nil
385
- insist { subject["status"] } == [ "400", "500" ]
382
+ insist { subject.get("blah") } == "foo"
383
+ insist { subject.get("error") } == [ "This is foolish", "Need smthing smart too" ]
384
+ insist { subject.get("xxx") } == nil
385
+ insist { subject.get("status") } == [ "400", "500" ]
386
386
  end
387
387
  end
388
388
 
389
389
  describe "whitelist field values with interpolation on fields witn array values" do
390
-
390
+
391
391
  config <<-CONFIG
392
392
  filter {
393
393
  prune {
@@ -405,10 +405,10 @@ describe LogStash::Filters::Prune, :if => false do
405
405
  "status" => [ "100", "200", "300", "400", "500" ],
406
406
  "error" => [ "This is foolish" , "Need smthing smart too" ]
407
407
  ) do
408
- insist { subject["blah"] } == "foo"
409
- insist { subject["error"] } == [ "This is foolish" ]
410
- insist { subject["xxx"] } == [ "1 2 3", "3 4 5" ]
411
- insist { subject["status"] } == [ "100", "200", "300" ]
408
+ insist { subject.get("blah") } == "foo"
409
+ insist { subject.get("error") } == [ "This is foolish" ]
410
+ insist { subject.get("xxx") } == [ "1 2 3", "3 4 5" ]
411
+ insist { subject.get("status") } == [ "100", "200", "300" ]
412
412
  end
413
413
  end
414
414
 
@@ -431,10 +431,10 @@ describe LogStash::Filters::Prune, :if => false do
431
431
  "status" => [ "100", "200", "300", "400", "500" ],
432
432
  "error" => [ "This is foolish" , "Need smthing smart too" ]
433
433
  ) do
434
- insist { subject["blah"] } == "foo"
435
- insist { subject["error"] } == [ "Need smthing smart too" ]
436
- insist { subject["xxx"] } == nil
437
- insist { subject["status"] } == [ "400", "500" ]
434
+ insist { subject.get("blah") } == "foo"
435
+ insist { subject.get("error") } == [ "Need smthing smart too" ]
436
+ insist { subject.get("xxx") } == nil
437
+ insist { subject.get("status") } == [ "400", "500" ]
438
438
  end
439
439
  end
440
440
 
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-prune
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-26 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.60'
19
+ - - "<="
17
20
  - !ruby/object:Gem::Version
18
- version: '1.0'
21
+ version: '2.99'
19
22
  name: logstash-core-plugin-api
20
23
  prerelease: false
21
24
  type: :runtime
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.60'
30
+ - - "<="
25
31
  - !ruby/object:Gem::Version
26
- version: '1.0'
32
+ version: '2.99'
27
33
  - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements: