From 71acd0c3d0ce3f972aa9d40990c711aff547f034 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Tue, 4 Nov 2014 15:11:53 -0800 Subject: [PATCH] discovery: consolidate proxyDiscover and Discover interface --- discovery/discovery.go | 24 +++++++++++++----------- etcdmain/etcd.go | 4 ++-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/discovery/discovery.go b/discovery/discovery.go index 9ed4d8e5e..f5dc0b8d1 100644 --- a/discovery/discovery.go +++ b/discovery/discovery.go @@ -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 } diff --git a/etcdmain/etcd.go b/etcdmain/etcd.go index 45e19a564..9400fee67 100644 --- a/etcdmain/etcd.go +++ b/etcdmain/etcd.go @@ -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 }