mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
add deep environment variables replacement in configuration
This commit is contained in:
parent
5d6848f840
commit
de289435bb
1 changed files with 31 additions and 26 deletions
|
@ -47,6 +47,23 @@ module LogStash::Config::Mixin
|
||||||
base.extend(LogStash::Config::Mixin::DSL)
|
base.extend(LogStash::Config::Mixin::DSL)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Recursive method to replace environment variable references in parameters
|
||||||
|
def deep_replace(value)
|
||||||
|
if (value.is_a?(Hash))
|
||||||
|
value.each do |valueHashKey, valueHashValue|
|
||||||
|
value[valueHashKey.to_s] = deep_replace(valueHashValue)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if (value.is_a?(Array))
|
||||||
|
value.each_index do | valueArrayIndex|
|
||||||
|
value[valueArrayIndex] = deep_replace(value[valueArrayIndex])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return replace_env_placeholders(value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def config_init(params)
|
def config_init(params)
|
||||||
# Validation will modify the values inside params if necessary.
|
# Validation will modify the values inside params if necessary.
|
||||||
# For example: converting a string to a number, etc.
|
# For example: converting a string to a number, etc.
|
||||||
|
@ -105,19 +122,7 @@ module LogStash::Config::Mixin
|
||||||
|
|
||||||
# Resolve environment variables references
|
# Resolve environment variables references
|
||||||
params.each do |name, value|
|
params.each do |name, value|
|
||||||
if (value.is_a?(Hash))
|
params[name.to_s] = deep_replace(value)
|
||||||
value.each do |valueHashKey, valueHashValue|
|
|
||||||
value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if (value.is_a?(Array))
|
|
||||||
value.each_index do |valueArrayIndex|
|
|
||||||
value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex])
|
|
||||||
end
|
|
||||||
else
|
|
||||||
params[name.to_s] = replace_env_placeholders(value)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue