update for micro changes

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2020-12-19 23:24:25 +03:00
parent b3f0be323c
commit 0e7901b2fc
3 changed files with 13 additions and 9 deletions

View File

@ -82,24 +82,26 @@ func (c *consulConfig) Init(opts ...config.Option) error {
func (c *consulConfig) Load(ctx context.Context) error { func (c *consulConfig) Load(ctx context.Context) error {
for _, fn := range c.opts.BeforeLoad { for _, fn := range c.opts.BeforeLoad {
if err := fn(ctx, c); err != nil { if err := fn(ctx, c); err != nil && !c.opts.AllowFail {
return err return err
} }
} }
pair, _, err := c.cli.KV().Get(c.path, nil) pair, _, err := c.cli.KV().Get(c.path, nil)
if err != nil { if err != nil && !c.opts.AllowFail {
return fmt.Errorf("consul path load error: %v", err) return fmt.Errorf("consul path load error: %v", err)
} else if pair == nil { } else if pair == nil && !c.opts.AllowFail {
return fmt.Errorf("consul path not found %v", ErrPathNotExist) return fmt.Errorf("consul path not found %v", ErrPathNotExist)
} }
if err = c.opts.Codec.Unmarshal(pair.Value, c.opts.Struct); err != nil { if err == nil && pair != nil {
return err if err = c.opts.Codec.Unmarshal(pair.Value, c.opts.Struct); err != nil && !c.opts.AllowFail {
return err
}
} }
for _, fn := range c.opts.AfterLoad { for _, fn := range c.opts.AfterLoad {
if err := fn(ctx, c); err != nil { if err := fn(ctx, c); err != nil && !c.opts.AllowFail {
return err return err
} }
} }
@ -109,13 +111,13 @@ func (c *consulConfig) Load(ctx context.Context) error {
func (c *consulConfig) Save(ctx context.Context) error { func (c *consulConfig) Save(ctx context.Context) error {
for _, fn := range c.opts.BeforeSave { for _, fn := range c.opts.BeforeSave {
if err := fn(ctx, c); err != nil { if err := fn(ctx, c); err != nil && !c.opts.AllowFail {
return err return err
} }
} }
for _, fn := range c.opts.AfterSave { for _, fn := range c.opts.AfterSave {
if err := fn(ctx, c); err != nil { if err := fn(ctx, c); err != nil && !c.opts.AllowFail {
return err return err
} }
} }

2
go.mod
View File

@ -6,5 +6,5 @@ require (
github.com/hashicorp/consul/api v1.8.0 github.com/hashicorp/consul/api v1.8.0
github.com/hashicorp/go-hclog v0.15.0 github.com/hashicorp/go-hclog v0.15.0
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/unistack-org/micro/v3 v3.0.2-0.20201213102644-92aec349c3d4 github.com/unistack-org/micro/v3 v3.0.2-0.20201219202205-150e8ad698bb
) )

2
go.sum
View File

@ -308,6 +308,8 @@ github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4
github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
github.com/unistack-org/micro/v3 v3.0.2-0.20201213102644-92aec349c3d4 h1:SmwEx/EYb7iUOdDZHiamtwRFfnhiZjtzmVdLZq+KQM0= github.com/unistack-org/micro/v3 v3.0.2-0.20201213102644-92aec349c3d4 h1:SmwEx/EYb7iUOdDZHiamtwRFfnhiZjtzmVdLZq+KQM0=
github.com/unistack-org/micro/v3 v3.0.2-0.20201213102644-92aec349c3d4/go.mod h1:0DgOy4OdJxQCDER8YSKitZugd2+1bddrRSNfeooTHDc= github.com/unistack-org/micro/v3 v3.0.2-0.20201213102644-92aec349c3d4/go.mod h1:0DgOy4OdJxQCDER8YSKitZugd2+1bddrRSNfeooTHDc=
github.com/unistack-org/micro/v3 v3.0.2-0.20201219202205-150e8ad698bb h1:cJGF8j30idReDyjRCvEJN5waWCh/AKuiKEqLA8OLMlY=
github.com/unistack-org/micro/v3 v3.0.2-0.20201219202205-150e8ad698bb/go.mod h1:0DgOy4OdJxQCDER8YSKitZugd2+1bddrRSNfeooTHDc=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=