client: exchange ClientConfig for SyncableHTTPClient

This commit is contained in:
Brian Waldon 2015-01-26 13:49:50 -08:00 committed by Yicheng Qin
parent 942f0f6b9e
commit 74fe28c5e0
4 changed files with 24 additions and 9 deletions

View File

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

View File

@ -117,7 +117,11 @@ func newDiscovery(durl, dproxyurl string, id types.ID) (*discovery, error) {
if err != nil { if err != nil {
return nil, err 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 { if err != nil {
return nil, err return nil, err
} }

View File

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

View File

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