Переглянути джерело

client: alias etcdserver/etcdhttp/httptypes.Member

Brian Waldon 11 роки тому
батько
коміт
7255fb1b62
2 змінених файлів з 19 додано та 13 видалено
  1. 13 6
      client/members.go
  2. 6 7
      integration/cluster_test.go

+ 13 - 6
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
 	}

+ 6 - 7
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 {