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 +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/logstash/filters/translate.rb +14 -5
- data/logstash-filter-translate.gemspec +2 -2
- data/spec/filters/translate_spec.rb +23 -8
- metadata +23 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acfc6640bfba3a33d089e25dabcb4e80af6225f4
|
4
|
+
data.tar.gz: 220ed14bfd31c28b5084ae926ffc9f54667bbd52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e536664483feac265b01e0dd723d5cf8de7a8fef4a64a2fd782211c399aeba0e2d7bcc5c086a1161ee03b004be7cecde9a907a4fee11b61706db4c66d53f7937
|
7
|
+
data.tar.gz: 3c43650e40ea637c743306d4204b7b2d70772eafd97fe0443a1972b90f59f7e186d59af9b0d348ae3ee85924cb12e692208e20c5912c4c8682e7f129c274828e
|
data/CHANGELOG.md
CHANGED
@@ -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
|
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
|
196
|
+
event.set(@destination, lock_for_read { @dictionary[key] })
|
188
197
|
matched = true
|
189
198
|
end
|
190
199
|
elsif @dictionary.include?(source)
|
191
|
-
event
|
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
|
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
|
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 = '
|
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", "
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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:
|
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-
|
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.
|
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: '
|
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: []
|