logstash-filter-translate 2.1.4 → 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: 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: []