Fix some issues with initialisation

This commit is contained in:
Asim
2016-01-04 23:07:56 +00:00
parent 9ecbf0d71b
commit 897115ed31
7 changed files with 61 additions and 0 deletions

View File

@@ -56,6 +56,17 @@ func (r *blackListSelector) run() {
}
}
func (r *blackListSelector) Init(opts ...selector.Option) error {
for _, o := range opts {
o(&r.so)
}
return nil
}
func (r *blackListSelector) Options() selector.Options {
return r.so
}
func (r *blackListSelector) Select(service string, opts ...selector.SelectOption) (selector.Next, error) {
var sopts selector.SelectOptions
for _, opt := range opts {

View File

@@ -15,6 +15,17 @@ func init() {
rand.Seed(time.Now().Unix())
}
func (r *randomSelector) Init(opts ...Option) error {
for _, o := range opts {
o(&r.so)
}
return nil
}
func (r *randomSelector) Options() Options {
return r.so
}
func (r *randomSelector) Select(service string, opts ...SelectOption) (Next, error) {
var sopts SelectOptions
for _, opt := range opts {

View File

@@ -16,6 +16,17 @@ func init() {
cmd.DefaultSelectors["roundrobin"] = NewSelector
}
func (r *roundRobinSelector) Init(opts ...selector.Option) error {
for _, o := range opts {
o(&r.so)
}
return nil
}
func (r *roundRobinSelector) Options() selector.Options {
return r.so
}
func (r *roundRobinSelector) Select(service string, opts ...selector.SelectOption) (selector.Next, error) {
var sopts selector.SelectOptions
for _, opt := range opts {

View File

@@ -64,6 +64,8 @@ import (
// and mark their status. This allows host pools and other things
// to be built using various algorithms.
type Selector interface {
Init(opts ...Option) error
Options() Options
// Select returns a function which should return the next node
Select(service string, opts ...SelectOption) (Next, error)
// Mark sets the success/error against a node