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
26e2c15274
commit
efc0a0c598
1 changed files with 31 additions and 26 deletions
|
@ -47,6 +47,23 @@ module LogStash::Config::Mixin
|
|||
base.extend(LogStash::Config::Mixin::DSL)
|
||||
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)
|
||||
# Validation will modify the values inside params if necessary.
|
||||
# For example: converting a string to a number, etc.
|
||||
|
@ -105,19 +122,7 @@ module LogStash::Config::Mixin
|
|||
|
||||
# Resolve environment variables references
|
||||
params.each do |name, value|
|
||||
if (value.is_a?(Hash))
|
||||
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
|
||||
params[name.to_s] = deep_replace(value)
|
||||
end
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue