discovery: consolidate proxyDiscover and Discover interface

release-2.0
Xiang Li 2014-11-04 15:11:53 -08:00
parent 5cb13fd071
commit 71acd0c3d0
2 changed files with 15 additions and 13 deletions

View File

@ -56,10 +56,6 @@ type Discoverer interface {
Discover() (string, error)
}
type ProxyDiscovery interface {
ProxyDiscover() (string, error)
}
type discovery struct {
cluster string
id types.ID
@ -71,6 +67,8 @@ type discovery struct {
clock clockwork.Clock
}
type proxyDiscovery struct{ *discovery }
// proxyFuncFromEnv builds a proxy function if the appropriate environment
// variable is set. It performs basic sanitization of the environment variable
// and returns any error encountered.
@ -101,14 +99,18 @@ func proxyFuncFromEnv() (func(*http.Request) (*url.URL, error), error) {
}
func New(durl string, id types.ID, config string) (Discoverer, error) {
return new(durl, id, config)
return newDiscovery(durl, id, config)
}
func ProxyNew(durl string) (ProxyDiscovery, error) {
return new(durl, 0, "")
func ProxyNew(durl string) (Discoverer, error) {
d, err := newDiscovery(durl, 0, "")
if err != nil {
return nil, err
}
return &proxyDiscovery{d}, nil
}
func new(durl string, id types.ID, config string) (*discovery, error) {
func newDiscovery(durl string, id types.ID, config string) (*discovery, error) {
u, err := url.Parse(durl)
if err != nil {
return nil, err
@ -162,8 +164,8 @@ func (d *discovery) Discover() (string, error) {
return nodesToCluster(all), nil
}
func (d *discovery) ProxyDiscover() (string, error) {
nodes, size, err := d.checkCluster()
func (pd *proxyDiscovery) Discover() (string, error) {
nodes, size, err := pd.checkCluster()
if err != nil {
if err == ErrFullCluster {
return nodesToCluster(nodes), nil
@ -171,7 +173,7 @@ func (d *discovery) ProxyDiscover() (string, error) {
return "", err
}
all, err := d.waitNodes(nodes, size)
all, err := pd.waitNodes(nodes, size)
if err != nil {
return "", err
}

View File

@ -149,7 +149,7 @@ func Main() {
<-make(chan struct{})
} else {
if err == discovery.ErrFullCluster && *dfallback == flags.FallbackProxy {
fmt.Printf("etcd: dicovery cluster is full, falls back to %s", flags.FallbackProxy)
fmt.Printf("etcd: dicovery cluster full, falling back to %s", flags.FallbackProxy)
} else {
log.Fatalf("etcd: %v", err)
}
@ -287,7 +287,7 @@ func startProxy() error {
if err != nil {
return fmt.Errorf("cannot init discovery %v", err)
}
s, err := d.ProxyDiscover()
s, err := d.Discover()
if err != nil {
return err
}