diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-22 09:53:37 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-22 21:38:28 +0200 |
commit | 4a9d408fe0bbf4c563546e35d2be7ade4e920c4c (patch) | |
tree | 942f920d5b829ab04b2e5786a712a713beb84f53 /common/maps/params.go | |
parent | 93120598880ae7c598f186f5259fc4d5a286632f (diff) |
config: Fix merge of config with map[string]string values.
Fixes #8679
Diffstat (limited to 'common/maps/params.go')
-rw-r--r-- | common/maps/params.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/common/maps/params.go b/common/maps/params.go index 7e94d593b..e5a1bd07d 100644 --- a/common/maps/params.go +++ b/common/maps/params.go @@ -226,7 +226,7 @@ func toMergeStrategy(v interface{}) ParamsMergeStrategy { // PrepareParams // * makes all the keys in the given map lower cased and will do so // * This will modify the map given. -// * Any nested map[interface{}]interface{} will be converted to Params. +// * Any nested map[interface{}]interface{}, map[string]interface{},map[string]string will be converted to Params. // * Any _merge value will be converted to proper type and value. func PrepareParams(m Params) { for k, v := range m { @@ -236,7 +236,7 @@ func PrepareParams(m Params) { v = toMergeStrategy(v) retyped = true } else { - switch v.(type) { + switch vv := v.(type) { case map[interface{}]interface{}: var p Params = cast.ToStringMap(v) v = p @@ -247,6 +247,14 @@ func PrepareParams(m Params) { v = p PrepareParams(p) retyped = true + case map[string]string: + p := make(Params) + for k, v := range vv { + p[k] = v + } + v = p + PrepareParams(p) + retyped = true } } |