mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
client: alias etcdserver/etcdhttp/httptypes.Member
This commit is contained in:
parent
932351a00d
commit
7255fb1b62
@ -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
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user