Skip to content

Commit

Permalink
Registry init
Browse files Browse the repository at this point in the history
  • Loading branch information
Asim committed Mar 15, 2016
1 parent 64220dc commit f088074
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 20 deletions.
4 changes: 2 additions & 2 deletions cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ var (
"http": broker.NewBroker,
}

DefaultRegistries = map[string]func([]string, ...registry.Option) registry.Registry{
DefaultRegistries = map[string]func(...registry.Option) registry.Registry{
"consul": registry.NewRegistry,
}

Expand Down Expand Up @@ -216,7 +216,7 @@ func (c *cmd) Before(ctx *cli.Context) error {
}

if r, ok := c.opts.Registries[name]; ok {
n := r(strings.Split(ctx.String("registry_address"), ","))
n := r(registry.Addrs(strings.Split(ctx.String("registry_address"), ",")...))
*c.opts.Registry = n
} else {
return fmt.Errorf("Registry %s not found", name)
Expand Down
4 changes: 2 additions & 2 deletions cmd/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type Options struct {
Server *server.Server

Brokers map[string]func(...broker.Option) broker.Broker
Registries map[string]func([]string, ...registry.Option) registry.Registry
Registries map[string]func(...registry.Option) registry.Registry
Selectors map[string]func(...selector.Option) selector.Selector
Transports map[string]func([]string, ...transport.Option) transport.Transport

Expand Down Expand Up @@ -100,7 +100,7 @@ func NewBroker(name string, b func(...broker.Option) broker.Broker) Option {
}

// New registry func
func NewRegistry(name string, r func([]string, ...registry.Option) registry.Registry) Option {
func NewRegistry(name string, r func(...registry.Option) registry.Registry) Option {
return func(o *Options) {
o.Registries[name] = r
}
Expand Down
4 changes: 2 additions & 2 deletions registry/consul/consul.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ func init() {
cmd.DefaultRegistries["consul"] = NewRegistry
}

func NewRegistry(addrs []string, opts ...registry.Option) registry.Registry {
return registry.NewRegistry(addrs, opts...)
func NewRegistry(opts ...registry.Option) registry.Registry {
return registry.NewRegistry(opts...)
}
22 changes: 11 additions & 11 deletions registry/consul_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,37 +109,37 @@ func decodeVersion(tags []string) (string, bool) {
return "", false
}

func newConsulRegistry(addrs []string, opts ...Option) Registry {
var opt Options
func newConsulRegistry(opts ...Option) Registry {
var options Options
for _, o := range opts {
o(&opt)
o(&options)
}

// use default config
config := consul.DefaultConfig()

// set timeout
if opt.Timeout > 0 {
config.HttpClient.Timeout = opt.Timeout
if options.Timeout > 0 {
config.HttpClient.Timeout = options.Timeout
}

// check if there are any addrs
if len(addrs) > 0 {
addr, port, err := net.SplitHostPort(addrs[0])
if len(options.Addrs) > 0 {
addr, port, err := net.SplitHostPort(options.Addrs[0])
if ae, ok := err.(*net.AddrError); ok && ae.Err == "missing port in address" {
port = "8500"
addr = addrs[0]
addr = options.Addrs[0]
config.Address = fmt.Sprintf("%s:%s", addr, port)
} else if err == nil {
config.Address = fmt.Sprintf("%s:%s", addr, port)
}
}

// requires secure connection?
if opt.Secure || opt.TLSConfig != nil {
if options.Secure || options.TLSConfig != nil {
config.Scheme = "https"
// We're going to support InsecureSkipVerify
config.HttpClient.Transport = newTransport(opt.TLSConfig)
config.HttpClient.Transport = newTransport(options.TLSConfig)
}

// create the client
Expand All @@ -148,7 +148,7 @@ func newConsulRegistry(addrs []string, opts ...Option) Registry {
cr := &consulRegistry{
Address: config.Address,
Client: client,
Options: opt,
Options: options,
}

return cr
Expand Down
8 changes: 8 additions & 0 deletions registry/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
)

type Options struct {
Addrs []string
Timeout time.Duration
Secure bool
TLSConfig *tls.Config
Expand All @@ -24,6 +25,13 @@ type RegisterOptions struct {
Context context.Context
}

// Addrs is the registry addresses to use
func Addrs(addrs ...string) Option {
return func(o *Options) {
o.Addrs = addrs
}
}

func Timeout(t time.Duration) Option {
return func(o *Options) {
o.Timeout = t
Expand Down
6 changes: 3 additions & 3 deletions registry/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ type Option func(*Options)
type RegisterOption func(*RegisterOptions)

var (
DefaultRegistry = newConsulRegistry([]string{})
DefaultRegistry = newConsulRegistry()

ErrNotFound = errors.New("not found")
)

func NewRegistry(addrs []string, opt ...Option) Registry {
return newConsulRegistry(addrs, opt...)
func NewRegistry(opts ...Option) Registry {
return newConsulRegistry(opts...)
}

// Register a service node. Additionally supply options such as TTL.
Expand Down

0 comments on commit f088074

Please sign in to comment.