logstash-filter-translate 2.1.4 → 3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bfc9d748a0e3154c355b43202c3583de6852f192
4
- data.tar.gz: 505b2845b2a50e11f7fb6318fa36e4f82f7485d0
3
+ metadata.gz: acfc6640bfba3a33d089e25dabcb4e80af6225f4
4
+ data.tar.gz: 220ed14bfd31c28b5084ae926ffc9f54667bbd52
5
5
  SHA512:
6
- metadata.gz: 773183d1b34ab1b5ec10c925c85c77e4f43bc992b4a1a15d501449c52d62d8b2d3512b722cbe241ade0ed6d174c5a83e0e359bba0db3fb304415ae702f7482eb
7
- data.tar.gz: 77c37788a42fd3e4d174e56600de8fb988d5a950c8f0022be6c903ba15641a40631f78236c64745dbccfab819e7ca1e1e91f9791e145835dd58ec128c25aed26
6
+ metadata.gz: e536664483feac265b01e0dd723d5cf8de7a8fef4a64a2fd782211c399aeba0e2d7bcc5c086a1161ee03b004be7cecde9a907a4fee11b61706db4c66d53f7937
7
+ data.tar.gz: 3c43650e40ea637c743306d4204b7b2d70772eafd97fe0443a1972b90f59f7e186d59af9b0d348ae3ee85924cb12e692208e20c5912c4c8682e7f129c274828e
@@ -1,3 +1,6 @@
1
+ # 3.0.0
2
+ - Breaking: Updated plugin to use new Java Event APIs
3
+
1
4
  # 2.1.4
2
5
  - Fix threadsafety issues by adding in a read/write lock
3
6
 
@@ -128,6 +128,15 @@ class LogStash::Filters::Translate < LogStash::Filters::Base
128
128
  @read_lock = rw_lock.readLock
129
129
  @write_lock = rw_lock.writeLock
130
130
 
131
+ if @dictionary_path && !@dictionary.empty?
132
+ raise LogStash::ConfigurationError, I18n.t(
133
+ "logstash.agent.configuration.invalid_plugin_register",
134
+ :plugin => "filter",
135
+ :type => "translate",
136
+ :error => "The configuration options 'dictionary' and 'dictionary_path' are mutually exclusive"
137
+ )
138
+ end
139
+
131
140
  if @dictionary_path
132
141
  @next_refresh = Time.now + @refresh_interval
133
142
  raise_exception = true
@@ -178,30 +187,30 @@ class LogStash::Filters::Translate < LogStash::Filters::Base
178
187
 
179
188
  begin
180
189
  #If source field is array use first value and make sure source value is string
181
- source = event[@field].is_a?(Array) ? event[@field].first.to_s : event[@field].to_s
190
+ source = event.get(@field).is_a?(Array) ? event.get(@field).first.to_s : event.get(@field).to_s
182
191
  matched = false
183
192
  if @exact
184
193
  if @regex
185
194
  key = @dictionary.keys.detect{|k| source.match(Regexp.new(k))}
186
195
  if key
187
- event[@destination] = lock_for_read { @dictionary[key] }
196
+ event.set(@destination, lock_for_read { @dictionary[key] })
188
197
  matched = true
189
198
  end
190
199
  elsif @dictionary.include?(source)
191
- event[@destination] = lock_for_read { @dictionary[source] }
200
+ event.set(@destination, lock_for_read { @dictionary[source] })
192
201
  matched = true
193
202
  end
194
203
  else
195
204
  translation = lock_for_read { source.gsub(Regexp.union(@dictionary.keys), @dictionary) }
196
205
 
197
206
  if source != translation
198
- event[@destination] = translation.force_encoding(Encoding::UTF_8)
207
+ event.set(@destination, translation.force_encoding(Encoding::UTF_8))
199
208
  matched = true
200
209
  end
201
210
  end
202
211
 
203
212
  if not matched and @fallback
204
- event[@destination] = event.sprintf(@fallback)
213
+ event.set(@destination, event.sprintf(@fallback))
205
214
  matched = true
206
215
  end
207
216
  filter_matched(event) if matched or @field == @destination
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-translate'
4
- s.version = '2.1.4'
4
+ s.version = '3.0.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "A general search and replace tool which uses a configured hash and/or a YAML file to determine replacement values."
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
@@ -27,7 +27,7 @@ describe LogStash::Filters::Translate do
27
27
  it "return the exact translation" do
28
28
  subject.register
29
29
  subject.filter(event)
30
- expect(event["translation"]).to eq("OK")
30
+ expect(event.get("translation")).to eq("OK")
31
31
  end
32
32
  end
33
33
 
@@ -52,7 +52,7 @@ describe LogStash::Filters::Translate do
52
52
  it "return the exact translation" do
53
53
  subject.register
54
54
  subject.filter(event)
55
- expect(event["translation"]).to eq("OK & Server Error")
55
+ expect(event.get("translation")).to eq("OK & Server Error")
56
56
  end
57
57
 
58
58
  end
@@ -77,7 +77,7 @@ describe LogStash::Filters::Translate do
77
77
  it "return the exact translation" do
78
78
  subject.register
79
79
  subject.filter(event)
80
- expect(event["translation"]).to eq("OK")
80
+ expect(event.get("translation")).to eq("OK")
81
81
  end
82
82
  end
83
83
 
@@ -97,7 +97,7 @@ describe LogStash::Filters::Translate do
97
97
  it "return the exact translation" do
98
98
  subject.register
99
99
  subject.filter(event)
100
- expect(event["translation"]).to eq("no match")
100
+ expect(event.get("translation")).to eq("no match")
101
101
  end
102
102
  end
103
103
 
@@ -115,7 +115,7 @@ describe LogStash::Filters::Translate do
115
115
  it "return the exact translation" do
116
116
  subject.register
117
117
  subject.filter(event)
118
- expect(event["translation"]).to eq("missing no match")
118
+ expect(event.get("translation")).to eq("missing no match")
119
119
  end
120
120
  end
121
121
  end
@@ -146,7 +146,7 @@ describe LogStash::Filters::Translate do
146
146
  it "return the exact translation" do
147
147
  subject.register
148
148
  subject.filter(event)
149
- expect(event["translation"]).to eq(1)
149
+ expect(event.get("translation")).to eq(1)
150
150
  end
151
151
  end
152
152
 
@@ -157,7 +157,7 @@ describe LogStash::Filters::Translate do
157
157
  it "return the exact translation" do
158
158
  subject.register
159
159
  subject.filter(event)
160
- expect(event["translation"]).to eq(20)
160
+ expect(event.get("translation")).to eq(20)
161
161
  end
162
162
  end
163
163
 
@@ -168,7 +168,7 @@ describe LogStash::Filters::Translate do
168
168
  it "return the exact translation" do
169
169
  subject.register
170
170
  subject.filter(event)
171
- expect(event["translation"]).to eq("300")
171
+ expect(event.get("translation")).to eq("300")
172
172
  end
173
173
  end
174
174
 
@@ -180,4 +180,19 @@ describe LogStash::Filters::Translate do
180
180
  end
181
181
  end
182
182
  end
183
+
184
+ describe "general configuration" do
185
+ let(:dictionary_path) { File.join(File.dirname(__FILE__), "..", "fixtures", "dict.yml") }
186
+ let(:config) do
187
+ {
188
+ "field" => "random field",
189
+ "dictionary" => { "a" => "b" },
190
+ "dictionary_path" => dictionary_path,
191
+ }
192
+ end
193
+
194
+ it "raises an exception if both 'dictionary' and 'dictionary_path' are set" do
195
+ expect { subject.register }.to raise_error(LogStash::ConfigurationError)
196
+ end
197
+ end
183
198
  end
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
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-06-02 00:00:00.000000000 Z
11
+ date: 2016-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: logstash-core-plugin-api
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
14
  requirement: !ruby/object:Gem::Requirement
21
15
  requirements:
22
- - - ~>
16
+ - - ">="
23
17
  - !ruby/object:Gem::Version
24
- version: '1.0'
18
+ version: '1.60'
19
+ - - "<="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.99'
22
+ name: logstash-core-plugin-api
25
23
  prerelease: false
26
24
  type: :runtime
27
- - !ruby/object:Gem::Dependency
28
- name: logstash-devutils
29
25
  version_requirements: !ruby/object:Gem::Requirement
30
26
  requirements:
31
- - - '>='
27
+ - - ">="
32
28
  - !ruby/object:Gem::Version
33
- version: '0'
29
+ version: '1.60'
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.99'
33
+ - !ruby/object:Gem::Dependency
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
- - - '>='
36
+ - - ">="
37
37
  - !ruby/object:Gem::Version
38
38
  version: '0'
39
+ name: logstash-devutils
39
40
  prerelease: false
40
41
  type: :development
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
41
47
  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
42
48
  email: info@elastic.co
43
49
  executables: []
@@ -70,12 +76,12 @@ require_paths:
70
76
  - lib
71
77
  required_ruby_version: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - '>='
79
+ - - ">="
74
80
  - !ruby/object:Gem::Version
75
81
  version: '0'
76
82
  required_rubygems_version: !ruby/object:Gem::Requirement
77
83
  requirements:
78
- - - '>='
84
+ - - ">="
79
85
  - !ruby/object:Gem::Version
80
86
  version: '0'
81
87
  requirements: []