logstash-core 5.4.1-java → 5.4.2-java
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/logstash-core/logstash-core.jar +0 -0
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/config/mixin.rb +6 -0
- data/lib/logstash/util/environment_variables.rb +43 -0
- data/lib/logstash/version.rb +1 -1
- data/logstash-core.gemspec +1 -1
- data/spec/logstash/config/mixin_spec.rb +12 -0
- metadata +13 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25bc0eb9c11736f20bbfcf8ce52d5f36739099a3
|
4
|
+
data.tar.gz: 746a309a74e29b9038fa6dbf16b020411a84406e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7fc76c80fe33ef6667f304e5d48b7a3cd0d52913a8444971e1e842fff51a75bea27f7b57f8720e25be083fbb4f34a45c204ef9051a7b1808fd551d96c80cc71
|
7
|
+
data.tar.gz: cf4a89721f3609926d553c3dfc393775e869316bf8a1233e33459501349d9f8666773a0ab693554e90fb5e5d722bdeb93127b1151f6b134e6a2239af04a8b5b3
|
Binary file
|
@@ -6,6 +6,7 @@ require "logstash/util/password"
|
|
6
6
|
require "logstash/util/safe_uri"
|
7
7
|
require "logstash/version"
|
8
8
|
require "logstash/environment"
|
9
|
+
require "logstash/util/environment_variables"
|
9
10
|
require "logstash/util/plugin_version"
|
10
11
|
require "filesize"
|
11
12
|
|
@@ -180,6 +181,9 @@ module LogStash::Config::Mixin
|
|
180
181
|
end # def replace_env_placeholders
|
181
182
|
|
182
183
|
module DSL
|
184
|
+
|
185
|
+
include LogStash::Util::EnvironmentVariables
|
186
|
+
|
183
187
|
attr_accessor :flags
|
184
188
|
|
185
189
|
# If name is given, set the name and return it.
|
@@ -425,6 +429,8 @@ module LogStash::Config::Mixin
|
|
425
429
|
# (see LogStash::Inputs::File for example)
|
426
430
|
result = nil
|
427
431
|
|
432
|
+
value = deep_replace(value)
|
433
|
+
|
428
434
|
if validator.nil?
|
429
435
|
return true, value
|
430
436
|
elsif validator.is_a?(Array)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module ::LogStash::Util::EnvironmentVariables
|
3
|
+
|
4
|
+
ENV_PLACEHOLDER_REGEX = /\${(?<name>[a-zA-Z_.][a-zA-Z0-9_.]*)(:(?<default>[^}]*))?}/
|
5
|
+
|
6
|
+
# Recursive method to replace environment variable references in parameters
|
7
|
+
def deep_replace(value)
|
8
|
+
if value.is_a?(Hash)
|
9
|
+
value.each do |valueHashKey, valueHashValue|
|
10
|
+
value[valueHashKey.to_s] = deep_replace(valueHashValue)
|
11
|
+
end
|
12
|
+
else
|
13
|
+
if value.is_a?(Array)
|
14
|
+
value.each_index do | valueArrayIndex|
|
15
|
+
value[valueArrayIndex] = deep_replace(value[valueArrayIndex])
|
16
|
+
end
|
17
|
+
else
|
18
|
+
return replace_env_placeholders(value)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Replace all environment variable references in 'value' param by environment variable value and return updated value
|
24
|
+
# Process following patterns : $VAR, ${VAR}, ${VAR:defaultValue}
|
25
|
+
def replace_env_placeholders(value)
|
26
|
+
return value unless value.is_a?(String)
|
27
|
+
|
28
|
+
value.gsub(ENV_PLACEHOLDER_REGEX) do |placeholder|
|
29
|
+
# Note: Ruby docs claim[1] Regexp.last_match is thread-local and scoped to
|
30
|
+
# the call, so this should be thread-safe.
|
31
|
+
#
|
32
|
+
# [1] http://ruby-doc.org/core-2.1.1/Regexp.html#method-c-last_match
|
33
|
+
name = Regexp.last_match(:name)
|
34
|
+
default = Regexp.last_match(:default)
|
35
|
+
|
36
|
+
replacement = ENV.fetch(name, default)
|
37
|
+
if replacement.nil?
|
38
|
+
raise LogStash::ConfigurationError, "Cannot evaluate `#{placeholder}`. Environment variable `#{name}` is not set and there is no default value given."
|
39
|
+
end
|
40
|
+
replacement
|
41
|
+
end
|
42
|
+
end # def replace_env_placeholders
|
43
|
+
end
|
data/lib/logstash/version.rb
CHANGED
data/logstash-core.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |gem|
|
|
24
24
|
gem.add_runtime_dependency "clamp", "~> 0.6.5" #(MIT license) for command line args/flags
|
25
25
|
gem.add_runtime_dependency "filesize", "0.0.4" #(MIT license) for :bytes config validator
|
26
26
|
gem.add_runtime_dependency "gems", "~> 0.8.3" #(MIT license)
|
27
|
-
gem.add_runtime_dependency "concurrent-ruby", "1.0.0"
|
27
|
+
gem.add_runtime_dependency "concurrent-ruby", "~> 1.0", ">= 1.0.5"
|
28
28
|
gem.add_runtime_dependency "sinatra", '~> 1.4', '>= 1.4.6'
|
29
29
|
gem.add_runtime_dependency 'puma', '~> 2.16'
|
30
30
|
gem.add_runtime_dependency "jruby-openssl", "0.9.16" # >= 0.9.13 Required to support TLSv1.2
|
@@ -369,11 +369,13 @@ describe LogStash::Config::Mixin do
|
|
369
369
|
before do
|
370
370
|
ENV["FunString"] = "fancy"
|
371
371
|
ENV["FunBool"] = "true"
|
372
|
+
ENV["SERVER_LS_TEST_ADDRESS"] = "some.host.address.tld"
|
372
373
|
end
|
373
374
|
|
374
375
|
after do
|
375
376
|
ENV.delete("FunString")
|
376
377
|
ENV.delete("FunBool")
|
378
|
+
ENV.delete("SERVER_LS_TEST_ADDRESS")
|
377
379
|
end
|
378
380
|
|
379
381
|
subject do
|
@@ -397,6 +399,16 @@ describe LogStash::Config::Mixin do
|
|
397
399
|
expect(subject.nestedArray).to(be == { "level1" => [{ "key1" => "http://fancy:8080/blah.txt" }, { "key2" => "http://fancy:8080/foo.txt" }] })
|
398
400
|
expect(subject.deepHash).to(be == { "level1" => { "level2" => { "level3" => { "key1" => "http://fancy:8080/blah.txt" } } } })
|
399
401
|
end
|
402
|
+
|
403
|
+
it "should validate settings after interpolating ENV variables" do
|
404
|
+
expect {
|
405
|
+
Class.new(LogStash::Filters::Base) do
|
406
|
+
include LogStash::Config::Mixin
|
407
|
+
config_name "test"
|
408
|
+
config :server_address, :validate => :uri
|
409
|
+
end.new({"server_address" => "${SERVER_LS_TEST_ADDRESS}"})
|
410
|
+
}.not_to raise_error
|
411
|
+
end
|
400
412
|
end
|
401
413
|
|
402
414
|
context "should support $ in values" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.4.
|
4
|
+
version: 5.4.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,17 +83,23 @@ dependencies:
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1.0'
|
89
|
+
- - ">="
|
87
90
|
- !ruby/object:Gem::Version
|
88
|
-
version: 1.0.
|
91
|
+
version: 1.0.5
|
89
92
|
name: concurrent-ruby
|
90
93
|
prerelease: false
|
91
94
|
type: :runtime
|
92
95
|
version_requirements: !ruby/object:Gem::Requirement
|
93
96
|
requirements:
|
94
|
-
- -
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '1.0'
|
100
|
+
- - ">="
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.0.
|
102
|
+
version: 1.0.5
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
requirement: !ruby/object:Gem::Requirement
|
99
105
|
requirements:
|
@@ -393,6 +399,7 @@ files:
|
|
393
399
|
- lib/logstash/util/charset.rb
|
394
400
|
- lib/logstash/util/decorators.rb
|
395
401
|
- lib/logstash/util/duration_formatter.rb
|
402
|
+
- lib/logstash/util/environment_variables.rb
|
396
403
|
- lib/logstash/util/filetools.rb
|
397
404
|
- lib/logstash/util/java_version.rb
|
398
405
|
- lib/logstash/util/loggable.rb
|