Browse Source

client: exchange ClientConfig for SyncableHTTPClient

Brian Waldon 11 years ago
parent
commit
74fe28c5e0
4 changed files with 24 additions and 9 deletions
  1. 9 4
      client/http.go
  2. 5 1
      discovery/discovery.go
  3. 6 1
      etcdctl/command/member_commands.go
  4. 4 3
      integration/cluster_test.go

+ 9 - 4
client/http.go

@@ -35,6 +35,15 @@ var (
 	DefaultMaxRedirects   = 10
 )
 
+type ClientConfig struct {
+	Endpoints []string
+	Transport CancelableTransport
+}
+
+func New(cfg ClientConfig) (SyncableHTTPClient, error) {
+	return newHTTPClusterClient(cfg.Transport, cfg.Endpoints)
+}
+
 type SyncableHTTPClient interface {
 	HTTPClient
 	Sync(context.Context) error
@@ -57,10 +66,6 @@ type CancelableTransport interface {
 	CancelRequest(req *http.Request)
 }
 
-func NewHTTPClient(tr CancelableTransport, eps []string) (SyncableHTTPClient, error) {
-	return newHTTPClusterClient(tr, eps)
-}
-
 func newHTTPClusterClient(tr CancelableTransport, eps []string) (*httpClusterClient, error) {
 	c := httpClusterClient{
 		transport: tr,

+ 5 - 1
discovery/discovery.go

@@ -117,7 +117,11 @@ func newDiscovery(durl, dproxyurl string, id types.ID) (*discovery, error) {
 	if err != nil {
 		return nil, err
 	}
-	c, err := client.NewHTTPClient(&http.Transport{Proxy: pf}, []string{u.String()})
+	cfg := client.ClientConfig{
+		Transport: &http.Transport{Proxy: pf},
+		Endpoints: []string{u.String()},
+	}
+	c, err := client.New(cfg)
 	if err != nil {
 		return nil, err
 	}

+ 6 - 1
etcdctl/command/member_commands.go

@@ -61,7 +61,12 @@ func mustNewMembersAPI(c *cli.Context) client.MembersAPI {
 		os.Exit(1)
 	}
 
-	hc, err := client.NewHTTPClient(tr, eps)
+	cfg := client.ClientConfig{
+		Transport: tr,
+		Endpoints: eps,
+	}
+
+	hc, err := client.New(cfg)
 	if err != nil {
 		fmt.Fprintln(os.Stderr, err.Error())
 		os.Exit(1)

+ 4 - 3
integration/cluster_test.go

@@ -614,12 +614,13 @@ func (m *member) Terminate(t *testing.T) {
 	}
 }
 
-func mustNewHTTPClient(t *testing.T, eps []string) client.HTTPClient {
-	cc, err := client.NewHTTPClient(mustNewTransport(t), eps)
+func mustNewHTTPClient(t *testing.T, eps []string) client.SyncableHTTPClient {
+	cc := client.ClientConfig{Transport: mustNewTransport(t), Endpoints: eps}
+	c, err := client.New(cc)
 	if err != nil {
 		t.Fatal(err)
 	}
-	return cc
+	return c
 }
 
 func mustNewTransport(t *testing.T) *http.Transport {