From 7255fb1b6227f505bd562a4343f5a259aee8182c Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Tue, 27 Jan 2015 16:55:13 -0800 Subject: [PATCH] client: alias etcdserver/etcdhttp/httptypes.Member --- client/members.go | 19 +++++++++++++------ integration/cluster_test.go | 13 ++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/client/members.go b/client/members.go index 69de9fa6c..29dd2b289 100644 --- a/client/members.go +++ b/client/members.go @@ -31,6 +31,8 @@ var ( defaultV2MembersPrefix = "/v2/members" ) +type Member httptypes.Member + // NewMembersAPI constructs a new MembersAPI that uses HTTP to // interact with etcd's membership API. func NewMembersAPI(c Client) MembersAPI { @@ -40,8 +42,8 @@ func NewMembersAPI(c Client) MembersAPI { } type MembersAPI interface { - List(ctx context.Context) ([]httptypes.Member, error) - Add(ctx context.Context, peerURL string) (*httptypes.Member, error) + List(ctx context.Context) ([]Member, error) + Add(ctx context.Context, peerURL string) (*Member, error) Remove(ctx context.Context, mID string) error } @@ -49,7 +51,7 @@ type httpMembersAPI struct { client httpClient } -func (m *httpMembersAPI) List(ctx context.Context) ([]httptypes.Member, error) { +func (m *httpMembersAPI) List(ctx context.Context) ([]Member, error) { req := &membersAPIActionList{} resp, body, err := m.client.Do(ctx, req) if err != nil { @@ -65,10 +67,15 @@ func (m *httpMembersAPI) List(ctx context.Context) ([]httptypes.Member, error) { return nil, err } - return []httptypes.Member(mCollection), nil + ms := make([]Member, len(mCollection)) + for i, m := range mCollection { + m := Member(m) + ms[i] = m + } + return ms, nil } -func (m *httpMembersAPI) Add(ctx context.Context, peerURL string) (*httptypes.Member, error) { +func (m *httpMembersAPI) Add(ctx context.Context, peerURL string) (*Member, error) { urls, err := types.NewURLs([]string{peerURL}) if err != nil { return nil, err @@ -92,7 +99,7 @@ func (m *httpMembersAPI) Add(ctx context.Context, peerURL string) (*httptypes.Me return nil, httperr } - var memb httptypes.Member + var memb Member if err := json.Unmarshal(body, &memb); err != nil { return nil, err } diff --git a/integration/cluster_test.go b/integration/cluster_test.go index 2effd1070..1a133e922 100644 --- a/integration/cluster_test.go +++ b/integration/cluster_test.go @@ -33,7 +33,6 @@ import ( "github.com/coreos/etcd/client" "github.com/coreos/etcd/etcdserver" "github.com/coreos/etcd/etcdserver/etcdhttp" - "github.com/coreos/etcd/etcdserver/etcdhttp/httptypes" "github.com/coreos/etcd/pkg/testutil" "github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/pkg/types" @@ -280,8 +279,8 @@ func (c *cluster) URLs() []string { return urls } -func (c *cluster) HTTPMembers() []httptypes.Member { - ms := make([]httptypes.Member, len(c.Members)) +func (c *cluster) HTTPMembers() []client.Member { + ms := make([]client.Member, len(c.Members)) for i, m := range c.Members { ms[i].Name = m.Name for _, ln := range m.PeerListeners { @@ -310,7 +309,7 @@ func (c *cluster) AddMember(t *testing.T) { cancel() // wait for the add node entry applied in the cluster - members := append(c.HTTPMembers(), httptypes.Member{PeerURLs: []string{peerURL}, ClientURLs: []string{}}) + members := append(c.HTTPMembers(), client.Member{PeerURLs: []string{peerURL}, ClientURLs: []string{}}) c.waitMembersMatch(t, members) for _, ln := range m.PeerListeners { @@ -363,7 +362,7 @@ func (c *cluster) Terminate(t *testing.T) { } } -func (c *cluster) waitMembersMatch(t *testing.T, membs []httptypes.Member) { +func (c *cluster) waitMembersMatch(t *testing.T, membs []client.Member) { for _, u := range c.URLs() { cc := mustNewHTTPClient(t, []string{u}) ma := client.NewMembersAPI(cc) @@ -406,7 +405,7 @@ func (c *cluster) name(i int) string { // isMembersEqual checks whether two members equal except ID field. // The given wmembs should always set ID field to empty string. -func isMembersEqual(membs []httptypes.Member, wmembs []httptypes.Member) bool { +func isMembersEqual(membs []client.Member, wmembs []client.Member) bool { sort.Sort(SortableMemberSliceByPeerURLs(membs)) sort.Sort(SortableMemberSliceByPeerURLs(wmembs)) for i := range membs { @@ -631,7 +630,7 @@ func mustNewTransport(t *testing.T) *http.Transport { return tr } -type SortableMemberSliceByPeerURLs []httptypes.Member +type SortableMemberSliceByPeerURLs []client.Member func (p SortableMemberSliceByPeerURLs) Len() int { return len(p) } func (p SortableMemberSliceByPeerURLs) Less(i, j int) bool {