fix merge

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-12-20 00:40:18 +03:00
parent 71dea38d90
commit aa57a9d74a
4 changed files with 49 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ import (
"errors"
"github.com/hashicorp/vault/api"
"github.com/imdario/mergo"
"github.com/unistack-org/micro/v3/config"
)
@@ -107,7 +108,13 @@ func (c *vaultConfig) Load(ctx context.Context) error {
var data []byte
data, err = json.Marshal(pair.Data["data"])
if err == nil {
err = c.opts.Codec.Unmarshal(data, c.opts.Struct)
src, err := config.Zero(c.opts.Struct)
if err == nil {
err = c.opts.Codec.Unmarshal(data, src)
if err == nil {
err = mergo.Merge(c.opts.Struct, src, mergo.WithOverride, mergo.WithTypeCheck, mergo.WithAppendSlice)
}
}
}
if err != nil && !c.opts.AllowFail {
return err