mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-18 08:26:38 +02:00
Merge pull request #139 from simplechris/feature/consul-config
Add ability to pass consul client config via registry options.
This commit is contained in:
commit
1688329049
25
registry/consul/options.go
Normal file
25
registry/consul/options.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package consul
|
||||||
|
|
||||||
|
import (
|
||||||
|
consul "github.com/hashicorp/consul/api"
|
||||||
|
"github.com/micro/go-micro/registry"
|
||||||
|
"golang.org/x/net/context"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Config(c *consul.Config) registry.Option {
|
||||||
|
return func(o *registry.Options) {
|
||||||
|
if o.Context == nil {
|
||||||
|
o.Context = context.Background()
|
||||||
|
}
|
||||||
|
o.Context = context.WithValue(o.Context, "consul_config", c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Token(t string) registry.Option {
|
||||||
|
return func(o *registry.Options) {
|
||||||
|
if o.Context == nil {
|
||||||
|
o.Context = context.Background()
|
||||||
|
}
|
||||||
|
o.Context = context.WithValue(o.Context, "consul_token", t)
|
||||||
|
}
|
||||||
|
}
|
@ -53,6 +53,17 @@ func newConsulRegistry(opts ...Option) Registry {
|
|||||||
|
|
||||||
// use default config
|
// use default config
|
||||||
config := consul.DefaultConfig()
|
config := consul.DefaultConfig()
|
||||||
|
if options.Context != nil {
|
||||||
|
// Use the consul config passed in the options, if available
|
||||||
|
c := options.Context.Value("consul_config")
|
||||||
|
if c != nil {
|
||||||
|
config = c.(*consul.Config)
|
||||||
|
}
|
||||||
|
t := options.Context.Value("consul_token")
|
||||||
|
if t != nil {
|
||||||
|
config.Token = t.(string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// set timeout
|
// set timeout
|
||||||
if options.Timeout > 0 {
|
if options.Timeout > 0 {
|
||||||
@ -253,7 +264,7 @@ func (c *consulRegistry) ListServices() ([]*Service, error) {
|
|||||||
|
|
||||||
var services []*Service
|
var services []*Service
|
||||||
|
|
||||||
for service, _ := range rsp {
|
for service := range rsp {
|
||||||
services = append(services, &Service{Name: service})
|
services = append(services, &Service{Name: service})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user