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
)
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,

View File

@ -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
}

View File

@ -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)

View File

@ -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 {