Merge pull request #4294 from xiang90/member_api

*: finish member api implementation
This commit is contained in:
Xiang Li 2016-01-26 18:48:16 -08:00
commit 6d8b82f6ce
7 changed files with 534 additions and 192 deletions

View File

@ -0,0 +1,219 @@
// Copyright 2016 CoreOS, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package command
import (
"fmt"
"strconv"
"strings"
"github.com/coreos/etcd/Godeps/_workspace/src/github.com/spf13/cobra"
"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
"github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc"
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
)
var (
memberID uint64
memberPeerURLs string
)
// NewMemberCommand returns the cobra command for "member".
func NewMemberCommand() *cobra.Command {
mc := &cobra.Command{
Use: "member",
Short: "member is used to manage membership in an etcd cluster.",
}
mc.AddCommand(NewMemberAddCommand())
mc.AddCommand(NewMemberRemoveCommand())
mc.AddCommand(NewMemberUpdateCommand())
mc.AddCommand(NewMemberListCommand())
return mc
}
// NewMemberAddCommand returns the cobra command for "member add".
func NewMemberAddCommand() *cobra.Command {
cc := &cobra.Command{
Use: "add",
Short: "add is used to add a member into the cluster",
Run: memberAddCommandFunc,
}
cc.Flags().StringVar(&memberPeerURLs, "peerURLs", "", "comma separated peer URLs for the new member.")
return cc
}
// NewMemberRemoveCommand returns the cobra command for "member remove".
func NewMemberRemoveCommand() *cobra.Command {
cc := &cobra.Command{
Use: "remove",
Short: "remove is used to remove a member from the cluster",
Run: memberRemoveCommandFunc,
}
return cc
}
// NewMemberUpdateCommand returns the cobra command for "member update".
func NewMemberUpdateCommand() *cobra.Command {
cc := &cobra.Command{
Use: "update",
Short: "update is used to update a member in the cluster",
Run: memberUpdateCommandFunc,
}
cc.Flags().StringVar(&memberPeerURLs, "peerURLs", "", "comma separated peer URLs for the updated member.")
return cc
}
// NewMemberListCommand returns the cobra command for "member list".
func NewMemberListCommand() *cobra.Command {
cc := &cobra.Command{
Use: "list",
Short: "list is used to list all members in the cluster",
Run: memberListCommandFunc,
}
return cc
}
// memberAddCommandFunc executes the "member add" command.
func memberAddCommandFunc(cmd *cobra.Command, args []string) {
if len(args) != 1 {
ExitWithError(ExitBadArgs, fmt.Errorf("member name not provided."))
}
if len(memberPeerURLs) == 0 {
ExitWithError(ExitBadArgs, fmt.Errorf("member peer urls not provided."))
}
urls := strings.Split(memberPeerURLs, ",")
endpoint, err := cmd.Flags().GetString("endpoint")
if err != nil {
ExitWithError(ExitError, err)
}
conn, err := grpc.Dial(endpoint)
if err != nil {
ExitWithError(ExitBadConnection, err)
}
mc := pb.NewClusterClient(conn)
resp, err := mc.MemberAdd(context.TODO(), &pb.MemberAddRequest{PeerURLs: urls})
if err != nil {
ExitWithError(ExitError, err)
}
fmt.Printf("Member %16x added to cluster %16x\n", args[0], resp.Member.ID, resp.Header.ClusterId)
}
// memberRemoveCommandFunc executes the "member remove" command.
func memberRemoveCommandFunc(cmd *cobra.Command, args []string) {
if len(args) != 1 {
ExitWithError(ExitBadArgs, fmt.Errorf("member ID is not provided"))
}
id, err := strconv.ParseUint(args[0], 16, 64)
if err != nil {
ExitWithError(ExitBadArgs, fmt.Errorf("bad member ID arg (%v), expecting ID in Hex", err))
}
endpoint, err := cmd.Flags().GetString("endpoint")
if err != nil {
ExitWithError(ExitError, err)
}
conn, err := grpc.Dial(endpoint)
if err != nil {
ExitWithError(ExitBadConnection, err)
}
mc := pb.NewClusterClient(conn)
resp, err := mc.MemberRemove(context.TODO(), &pb.MemberRemoveRequest{ID: uint64(id)})
if err != nil {
ExitWithError(ExitError, err)
}
fmt.Printf("Member %16x removed from cluster %16x\n", id, resp.Header.ClusterId)
}
// memberUpdateCommandFunc executes the "member update" command.
func memberUpdateCommandFunc(cmd *cobra.Command, args []string) {
if len(args) != 1 {
ExitWithError(ExitBadArgs, fmt.Errorf("member ID is not provided"))
}
id, err := strconv.ParseUint(args[0], 16, 64)
if err != nil {
ExitWithError(ExitBadArgs, fmt.Errorf("bad member ID arg (%v), expecting ID in Hex", err))
}
if len(memberPeerURLs) == 0 {
ExitWithError(ExitBadArgs, fmt.Errorf("member peer urls not provided."))
}
urls := strings.Split(memberPeerURLs, ",")
endpoint, err := cmd.Flags().GetString("endpoint")
if err != nil {
ExitWithError(ExitError, err)
}
conn, err := grpc.Dial(endpoint)
if err != nil {
ExitWithError(ExitBadConnection, err)
}
mc := pb.NewClusterClient(conn)
resp, err := mc.MemberUpdate(context.TODO(), &pb.MemberUpdateRequest{ID: uint64(id), PeerURLs: urls})
if err != nil {
ExitWithError(ExitError, err)
}
fmt.Printf("Member %16x updated in cluster %16x\n", id, resp.Header.ClusterId)
}
// memberListCommandFunc executes the "member list" command.
func memberListCommandFunc(cmd *cobra.Command, args []string) {
endpoint, err := cmd.Flags().GetString("endpoint")
if err != nil {
ExitWithError(ExitError, err)
}
conn, err := grpc.Dial(endpoint)
if err != nil {
ExitWithError(ExitBadConnection, err)
}
mc := pb.NewClusterClient(conn)
resp, err := mc.MemberList(context.TODO(), &pb.MemberListRequest{})
if err != nil {
ExitWithError(ExitError, err)
}
// use https://github.com/olekukonko/tablewriter to print out a pretty table?
for _, m := range resp.Members {
if len(m.Name) == 0 {
fmt.Printf("%16x[unstarted]: peerURLs=%s\n", m.ID, strings.Join(m.PeerURLs, ","))
} else {
fmt.Printf("%16x: name=%s peerURLs=%s clientURLs=%s\n", m.ID, m.Name, strings.Join(m.PeerURLs, ","), strings.Join(m.ClientURLs, ","))
}
}
}

View File

@ -52,6 +52,7 @@ func init() {
command.NewWatchCommand(),
command.NewVersionCommand(),
command.NewLeaseCommand(),
command.NewMemberCommand(),
)
}

View File

@ -334,6 +334,7 @@ func startEtcd(cfg *config) (<-chan struct{}, error) {
etcdserverpb.RegisterKVServer(grpcServer, v3rpc.NewKVServer(s))
etcdserverpb.RegisterWatchServer(grpcServer, v3rpc.NewWatchServer(s))
etcdserverpb.RegisterLeaseServer(grpcServer, v3rpc.NewLeaseServer(s))
etcdserverpb.RegisterClusterServer(grpcServer, v3rpc.NewClusterServer(s))
go func() { plog.Fatal(grpcServer.Serve(v3l)) }()
}

View File

@ -26,4 +26,9 @@ var (
ErrCompacted = grpc.Errorf(codes.OutOfRange, storage.ErrCompacted.Error())
ErrFutureRev = grpc.Errorf(codes.OutOfRange, storage.ErrFutureRev.Error())
ErrLeaseNotFound = grpc.Errorf(codes.NotFound, "requested lease not found")
ErrMemberExist = grpc.Errorf(codes.FailedPrecondition, "member ID already exist")
ErrPeerURLExist = grpc.Errorf(codes.FailedPrecondition, "Peer URLs already exists")
ErrMemberBadURLs = grpc.Errorf(codes.InvalidArgument, "given member URLs are invalid")
ErrMemberNotFound = grpc.Errorf(codes.NotFound, "member not found")
)

View File

@ -0,0 +1,116 @@
// Copyright 2016 CoreOS, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package v3rpc
import (
"time"
"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
"github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc"
"github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/codes"
"github.com/coreos/etcd/etcdserver"
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
"github.com/coreos/etcd/pkg/types"
)
type ClusterServer struct {
cluster etcdserver.Cluster
server etcdserver.Server
raftTimer etcdserver.RaftTimer
}
func NewClusterServer(s *etcdserver.EtcdServer) *ClusterServer {
return &ClusterServer{
cluster: s.Cluster(),
server: s,
raftTimer: s,
}
}
func (cs *ClusterServer) MemberAdd(ctx context.Context, r *pb.MemberAddRequest) (*pb.MemberAddResponse, error) {
urls, err := types.NewURLs(r.PeerURLs)
if err != nil {
return nil, ErrMemberBadURLs
}
now := time.Now()
m := etcdserver.NewMember("", urls, "", &now)
err = cs.server.AddMember(ctx, *m)
switch {
case err == etcdserver.ErrIDExists:
return nil, ErrMemberExist
case err == etcdserver.ErrPeerURLexists:
return nil, ErrPeerURLExist
case err != nil:
return nil, grpc.Errorf(codes.Unknown, err.Error())
}
return &pb.MemberAddResponse{
Header: cs.header(),
Member: &pb.Member{ID: uint64(m.ID), PeerURLs: m.PeerURLs},
}, nil
}
func (cs *ClusterServer) MemberRemove(ctx context.Context, r *pb.MemberRemoveRequest) (*pb.MemberRemoveResponse, error) {
err := cs.server.RemoveMember(ctx, r.ID)
switch {
case err == etcdserver.ErrIDRemoved:
fallthrough
case err == etcdserver.ErrIDNotFound:
return nil, ErrMemberNotFound
case err != nil:
return nil, grpc.Errorf(codes.Unknown, err.Error())
}
return &pb.MemberRemoveResponse{Header: cs.header()}, nil
}
func (cs *ClusterServer) MemberUpdate(ctx context.Context, r *pb.MemberUpdateRequest) (*pb.MemberUpdateResponse, error) {
m := etcdserver.Member{
ID: types.ID(r.ID),
RaftAttributes: etcdserver.RaftAttributes{PeerURLs: r.PeerURLs},
}
err := cs.server.UpdateMember(ctx, m)
switch {
case err == etcdserver.ErrPeerURLexists:
return nil, ErrPeerURLExist
case err == etcdserver.ErrIDNotFound:
return nil, ErrMemberNotFound
case err != nil:
return nil, grpc.Errorf(codes.Unknown, err.Error())
}
return &pb.MemberUpdateResponse{Header: cs.header()}, nil
}
func (cs *ClusterServer) MemberList(ctx context.Context, r *pb.MemberListRequest) (*pb.MemberListResponse, error) {
membs := cs.cluster.Members()
protoMembs := make([]*pb.Member, len(membs))
for i := range membs {
protoMembs[i] = &pb.Member{
Name: membs[i].Name,
ID: uint64(membs[i].ID),
PeerURLs: membs[i].PeerURLs,
ClientURLs: membs[i].ClientURLs,
}
}
return &pb.MemberListResponse{Header: cs.header(), Members: protoMembs}, nil
}
func (cs *ClusterServer) header() *pb.ResponseHeader {
return &pb.ResponseHeader{ClusterId: uint64(cs.cluster.ID()), MemberId: uint64(cs.server.ID()), RaftTerm: cs.raftTimer.Term()}
}

View File

@ -978,119 +978,119 @@ func (m *LeaseKeepAliveResponse) GetHeader() *ResponseHeader {
type Member struct {
ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
// If the member is not started, name will be an empty string.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Peer_URLs []string `protobuf:"bytes,3,rep,name=peer_URLs" json:"peer_URLs,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
PeerURLs []string `protobuf:"bytes,3,rep,name=peerURLs" json:"peerURLs,omitempty"`
// If the member is not started, client_URLs will be an zero length
// string array.
Client_URLs []string `protobuf:"bytes,4,rep,name=client_URLs" json:"client_URLs,omitempty"`
ClientURLs []string `protobuf:"bytes,4,rep,name=clientURLs" json:"clientURLs,omitempty"`
}
func (m *Member) Reset() { *m = Member{} }
func (m *Member) String() string { return proto.CompactTextString(m) }
func (*Member) ProtoMessage() {}
type AddMemberRequest struct {
Peer_URLs []string `protobuf:"bytes,1,rep,name=peer_URLs" json:"peer_URLs,omitempty"`
type MemberAddRequest struct {
PeerURLs []string `protobuf:"bytes,1,rep,name=peerURLs" json:"peerURLs,omitempty"`
}
func (m *AddMemberRequest) Reset() { *m = AddMemberRequest{} }
func (m *AddMemberRequest) String() string { return proto.CompactTextString(m) }
func (*AddMemberRequest) ProtoMessage() {}
func (m *MemberAddRequest) Reset() { *m = MemberAddRequest{} }
func (m *MemberAddRequest) String() string { return proto.CompactTextString(m) }
func (*MemberAddRequest) ProtoMessage() {}
type AddMemberResponse struct {
type MemberAddResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
Member *Member `protobuf:"bytes,2,opt,name=member" json:"member,omitempty"`
}
func (m *AddMemberResponse) Reset() { *m = AddMemberResponse{} }
func (m *AddMemberResponse) String() string { return proto.CompactTextString(m) }
func (*AddMemberResponse) ProtoMessage() {}
func (m *MemberAddResponse) Reset() { *m = MemberAddResponse{} }
func (m *MemberAddResponse) String() string { return proto.CompactTextString(m) }
func (*MemberAddResponse) ProtoMessage() {}
func (m *AddMemberResponse) GetHeader() *ResponseHeader {
func (m *MemberAddResponse) GetHeader() *ResponseHeader {
if m != nil {
return m.Header
}
return nil
}
func (m *AddMemberResponse) GetMember() *Member {
func (m *MemberAddResponse) GetMember() *Member {
if m != nil {
return m.Member
}
return nil
}
type RemoveMemberRequest struct {
type MemberRemoveRequest struct {
ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
}
func (m *RemoveMemberRequest) Reset() { *m = RemoveMemberRequest{} }
func (m *RemoveMemberRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveMemberRequest) ProtoMessage() {}
func (m *MemberRemoveRequest) Reset() { *m = MemberRemoveRequest{} }
func (m *MemberRemoveRequest) String() string { return proto.CompactTextString(m) }
func (*MemberRemoveRequest) ProtoMessage() {}
type RemoveMemberResponse struct {
type MemberRemoveResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
}
func (m *RemoveMemberResponse) Reset() { *m = RemoveMemberResponse{} }
func (m *RemoveMemberResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveMemberResponse) ProtoMessage() {}
func (m *MemberRemoveResponse) Reset() { *m = MemberRemoveResponse{} }
func (m *MemberRemoveResponse) String() string { return proto.CompactTextString(m) }
func (*MemberRemoveResponse) ProtoMessage() {}
func (m *RemoveMemberResponse) GetHeader() *ResponseHeader {
func (m *MemberRemoveResponse) GetHeader() *ResponseHeader {
if m != nil {
return m.Header
}
return nil
}
type UpdateMemberRequest struct {
ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
Peer_URLs []string `protobuf:"bytes,2,rep,name=peer_URLs" json:"peer_URLs,omitempty"`
type MemberUpdateRequest struct {
ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
PeerURLs []string `protobuf:"bytes,2,rep,name=peerURLs" json:"peerURLs,omitempty"`
}
func (m *UpdateMemberRequest) Reset() { *m = UpdateMemberRequest{} }
func (m *UpdateMemberRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateMemberRequest) ProtoMessage() {}
func (m *MemberUpdateRequest) Reset() { *m = MemberUpdateRequest{} }
func (m *MemberUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*MemberUpdateRequest) ProtoMessage() {}
type UpdateMemberResponse struct {
type MemberUpdateResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
}
func (m *UpdateMemberResponse) Reset() { *m = UpdateMemberResponse{} }
func (m *UpdateMemberResponse) String() string { return proto.CompactTextString(m) }
func (*UpdateMemberResponse) ProtoMessage() {}
func (m *MemberUpdateResponse) Reset() { *m = MemberUpdateResponse{} }
func (m *MemberUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*MemberUpdateResponse) ProtoMessage() {}
func (m *UpdateMemberResponse) GetHeader() *ResponseHeader {
func (m *MemberUpdateResponse) GetHeader() *ResponseHeader {
if m != nil {
return m.Header
}
return nil
}
type ListMemberRequest struct {
type MemberListRequest struct {
}
func (m *ListMemberRequest) Reset() { *m = ListMemberRequest{} }
func (m *ListMemberRequest) String() string { return proto.CompactTextString(m) }
func (*ListMemberRequest) ProtoMessage() {}
func (m *MemberListRequest) Reset() { *m = MemberListRequest{} }
func (m *MemberListRequest) String() string { return proto.CompactTextString(m) }
func (*MemberListRequest) ProtoMessage() {}
type ListMemberResponse struct {
type MemberListResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
Members []*Member `protobuf:"bytes,2,rep,name=members" json:"members,omitempty"`
}
func (m *ListMemberResponse) Reset() { *m = ListMemberResponse{} }
func (m *ListMemberResponse) String() string { return proto.CompactTextString(m) }
func (*ListMemberResponse) ProtoMessage() {}
func (m *MemberListResponse) Reset() { *m = MemberListResponse{} }
func (m *MemberListResponse) String() string { return proto.CompactTextString(m) }
func (*MemberListResponse) ProtoMessage() {}
func (m *ListMemberResponse) GetHeader() *ResponseHeader {
func (m *MemberListResponse) GetHeader() *ResponseHeader {
if m != nil {
return m.Header
}
return nil
}
func (m *ListMemberResponse) GetMembers() []*Member {
func (m *MemberListResponse) GetMembers() []*Member {
if m != nil {
return m.Members
}
@ -1123,14 +1123,14 @@ func init() {
proto.RegisterType((*LeaseKeepAliveRequest)(nil), "etcdserverpb.LeaseKeepAliveRequest")
proto.RegisterType((*LeaseKeepAliveResponse)(nil), "etcdserverpb.LeaseKeepAliveResponse")
proto.RegisterType((*Member)(nil), "etcdserverpb.Member")
proto.RegisterType((*AddMemberRequest)(nil), "etcdserverpb.AddMemberRequest")
proto.RegisterType((*AddMemberResponse)(nil), "etcdserverpb.AddMemberResponse")
proto.RegisterType((*RemoveMemberRequest)(nil), "etcdserverpb.RemoveMemberRequest")
proto.RegisterType((*RemoveMemberResponse)(nil), "etcdserverpb.RemoveMemberResponse")
proto.RegisterType((*UpdateMemberRequest)(nil), "etcdserverpb.UpdateMemberRequest")
proto.RegisterType((*UpdateMemberResponse)(nil), "etcdserverpb.UpdateMemberResponse")
proto.RegisterType((*ListMemberRequest)(nil), "etcdserverpb.ListMemberRequest")
proto.RegisterType((*ListMemberResponse)(nil), "etcdserverpb.ListMemberResponse")
proto.RegisterType((*MemberAddRequest)(nil), "etcdserverpb.MemberAddRequest")
proto.RegisterType((*MemberAddResponse)(nil), "etcdserverpb.MemberAddResponse")
proto.RegisterType((*MemberRemoveRequest)(nil), "etcdserverpb.MemberRemoveRequest")
proto.RegisterType((*MemberRemoveResponse)(nil), "etcdserverpb.MemberRemoveResponse")
proto.RegisterType((*MemberUpdateRequest)(nil), "etcdserverpb.MemberUpdateRequest")
proto.RegisterType((*MemberUpdateResponse)(nil), "etcdserverpb.MemberUpdateResponse")
proto.RegisterType((*MemberListRequest)(nil), "etcdserverpb.MemberListRequest")
proto.RegisterType((*MemberListResponse)(nil), "etcdserverpb.MemberListResponse")
proto.RegisterEnum("etcdserverpb.RangeRequest_SortOrder", RangeRequest_SortOrder_name, RangeRequest_SortOrder_value)
proto.RegisterEnum("etcdserverpb.RangeRequest_SortTarget", RangeRequest_SortTarget_name, RangeRequest_SortTarget_value)
proto.RegisterEnum("etcdserverpb.Compare_CompareResult", Compare_CompareResult_name, Compare_CompareResult_value)
@ -1600,14 +1600,14 @@ var _Lease_serviceDesc = grpc.ServiceDesc{
// Client API for Cluster service
type ClusterClient interface {
// AddMember adds a member into the cluster.
AddMember(ctx context.Context, in *AddMemberRequest, opts ...grpc.CallOption) (*AddMemberResponse, error)
// RemoveMember removes an existing member from the cluster.
RemoveMember(ctx context.Context, in *RemoveMemberRequest, opts ...grpc.CallOption) (*RemoveMemberResponse, error)
// UpdateMember updates the member configuration.
UpdateMember(ctx context.Context, in *UpdateMemberRequest, opts ...grpc.CallOption) (*UpdateMemberResponse, error)
// ListMember lists all the members in the cluster.
ListMember(ctx context.Context, in *ListMemberRequest, opts ...grpc.CallOption) (*ListMemberResponse, error)
// MemberAdd adds a member into the cluster.
MemberAdd(ctx context.Context, in *MemberAddRequest, opts ...grpc.CallOption) (*MemberAddResponse, error)
// MemberRemove removes an existing member from the cluster.
MemberRemove(ctx context.Context, in *MemberRemoveRequest, opts ...grpc.CallOption) (*MemberRemoveResponse, error)
// MemberUpdate updates the member configuration.
MemberUpdate(ctx context.Context, in *MemberUpdateRequest, opts ...grpc.CallOption) (*MemberUpdateResponse, error)
// MemberList lists all the members in the cluster.
MemberList(ctx context.Context, in *MemberListRequest, opts ...grpc.CallOption) (*MemberListResponse, error)
}
type clusterClient struct {
@ -1618,36 +1618,36 @@ func NewClusterClient(cc *grpc.ClientConn) ClusterClient {
return &clusterClient{cc}
}
func (c *clusterClient) AddMember(ctx context.Context, in *AddMemberRequest, opts ...grpc.CallOption) (*AddMemberResponse, error) {
out := new(AddMemberResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/AddMember", in, out, c.cc, opts...)
func (c *clusterClient) MemberAdd(ctx context.Context, in *MemberAddRequest, opts ...grpc.CallOption) (*MemberAddResponse, error) {
out := new(MemberAddResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/MemberAdd", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clusterClient) RemoveMember(ctx context.Context, in *RemoveMemberRequest, opts ...grpc.CallOption) (*RemoveMemberResponse, error) {
out := new(RemoveMemberResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/RemoveMember", in, out, c.cc, opts...)
func (c *clusterClient) MemberRemove(ctx context.Context, in *MemberRemoveRequest, opts ...grpc.CallOption) (*MemberRemoveResponse, error) {
out := new(MemberRemoveResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/MemberRemove", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clusterClient) UpdateMember(ctx context.Context, in *UpdateMemberRequest, opts ...grpc.CallOption) (*UpdateMemberResponse, error) {
out := new(UpdateMemberResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/UpdateMember", in, out, c.cc, opts...)
func (c *clusterClient) MemberUpdate(ctx context.Context, in *MemberUpdateRequest, opts ...grpc.CallOption) (*MemberUpdateResponse, error) {
out := new(MemberUpdateResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/MemberUpdate", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clusterClient) ListMember(ctx context.Context, in *ListMemberRequest, opts ...grpc.CallOption) (*ListMemberResponse, error) {
out := new(ListMemberResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/ListMember", in, out, c.cc, opts...)
func (c *clusterClient) MemberList(ctx context.Context, in *MemberListRequest, opts ...grpc.CallOption) (*MemberListResponse, error) {
out := new(MemberListResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Cluster/MemberList", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
@ -1657,62 +1657,62 @@ func (c *clusterClient) ListMember(ctx context.Context, in *ListMemberRequest, o
// Server API for Cluster service
type ClusterServer interface {
// AddMember adds a member into the cluster.
AddMember(context.Context, *AddMemberRequest) (*AddMemberResponse, error)
// RemoveMember removes an existing member from the cluster.
RemoveMember(context.Context, *RemoveMemberRequest) (*RemoveMemberResponse, error)
// UpdateMember updates the member configuration.
UpdateMember(context.Context, *UpdateMemberRequest) (*UpdateMemberResponse, error)
// ListMember lists all the members in the cluster.
ListMember(context.Context, *ListMemberRequest) (*ListMemberResponse, error)
// MemberAdd adds a member into the cluster.
MemberAdd(context.Context, *MemberAddRequest) (*MemberAddResponse, error)
// MemberRemove removes an existing member from the cluster.
MemberRemove(context.Context, *MemberRemoveRequest) (*MemberRemoveResponse, error)
// MemberUpdate updates the member configuration.
MemberUpdate(context.Context, *MemberUpdateRequest) (*MemberUpdateResponse, error)
// MemberList lists all the members in the cluster.
MemberList(context.Context, *MemberListRequest) (*MemberListResponse, error)
}
func RegisterClusterServer(s *grpc.Server, srv ClusterServer) {
s.RegisterService(&_Cluster_serviceDesc, srv)
}
func _Cluster_AddMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(AddMemberRequest)
func _Cluster_MemberAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(MemberAddRequest)
if err := dec(in); err != nil {
return nil, err
}
out, err := srv.(ClusterServer).AddMember(ctx, in)
out, err := srv.(ClusterServer).MemberAdd(ctx, in)
if err != nil {
return nil, err
}
return out, nil
}
func _Cluster_RemoveMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(RemoveMemberRequest)
func _Cluster_MemberRemove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(MemberRemoveRequest)
if err := dec(in); err != nil {
return nil, err
}
out, err := srv.(ClusterServer).RemoveMember(ctx, in)
out, err := srv.(ClusterServer).MemberRemove(ctx, in)
if err != nil {
return nil, err
}
return out, nil
}
func _Cluster_UpdateMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(UpdateMemberRequest)
func _Cluster_MemberUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(MemberUpdateRequest)
if err := dec(in); err != nil {
return nil, err
}
out, err := srv.(ClusterServer).UpdateMember(ctx, in)
out, err := srv.(ClusterServer).MemberUpdate(ctx, in)
if err != nil {
return nil, err
}
return out, nil
}
func _Cluster_ListMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(ListMemberRequest)
func _Cluster_MemberList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) {
in := new(MemberListRequest)
if err := dec(in); err != nil {
return nil, err
}
out, err := srv.(ClusterServer).ListMember(ctx, in)
out, err := srv.(ClusterServer).MemberList(ctx, in)
if err != nil {
return nil, err
}
@ -1724,20 +1724,20 @@ var _Cluster_serviceDesc = grpc.ServiceDesc{
HandlerType: (*ClusterServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "AddMember",
Handler: _Cluster_AddMember_Handler,
MethodName: "MemberAdd",
Handler: _Cluster_MemberAdd_Handler,
},
{
MethodName: "RemoveMember",
Handler: _Cluster_RemoveMember_Handler,
MethodName: "MemberRemove",
Handler: _Cluster_MemberRemove_Handler,
},
{
MethodName: "UpdateMember",
Handler: _Cluster_UpdateMember_Handler,
MethodName: "MemberUpdate",
Handler: _Cluster_MemberUpdate_Handler,
},
{
MethodName: "ListMember",
Handler: _Cluster_ListMember_Handler,
MethodName: "MemberList",
Handler: _Cluster_MemberList_Handler,
},
},
Streams: []grpc.StreamDesc{},
@ -2777,8 +2777,8 @@ func (m *Member) MarshalTo(data []byte) (int, error) {
i = encodeVarintRpc(data, i, uint64(len(m.Name)))
i += copy(data[i:], m.Name)
}
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
data[i] = 0x1a
i++
l = len(s)
@ -2792,8 +2792,8 @@ func (m *Member) MarshalTo(data []byte) (int, error) {
i += copy(data[i:], s)
}
}
if len(m.Client_URLs) > 0 {
for _, s := range m.Client_URLs {
if len(m.ClientURLs) > 0 {
for _, s := range m.ClientURLs {
data[i] = 0x22
i++
l = len(s)
@ -2810,7 +2810,7 @@ func (m *Member) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *AddMemberRequest) Marshal() (data []byte, err error) {
func (m *MemberAddRequest) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2820,13 +2820,13 @@ func (m *AddMemberRequest) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *AddMemberRequest) MarshalTo(data []byte) (int, error) {
func (m *MemberAddRequest) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
data[i] = 0xa
i++
l = len(s)
@ -2843,7 +2843,7 @@ func (m *AddMemberRequest) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *AddMemberResponse) Marshal() (data []byte, err error) {
func (m *MemberAddResponse) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2853,7 +2853,7 @@ func (m *AddMemberResponse) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *AddMemberResponse) MarshalTo(data []byte) (int, error) {
func (m *MemberAddResponse) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -2881,7 +2881,7 @@ func (m *AddMemberResponse) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *RemoveMemberRequest) Marshal() (data []byte, err error) {
func (m *MemberRemoveRequest) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2891,7 +2891,7 @@ func (m *RemoveMemberRequest) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *RemoveMemberRequest) MarshalTo(data []byte) (int, error) {
func (m *MemberRemoveRequest) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -2904,7 +2904,7 @@ func (m *RemoveMemberRequest) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *RemoveMemberResponse) Marshal() (data []byte, err error) {
func (m *MemberRemoveResponse) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2914,7 +2914,7 @@ func (m *RemoveMemberResponse) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *RemoveMemberResponse) MarshalTo(data []byte) (int, error) {
func (m *MemberRemoveResponse) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -2932,7 +2932,7 @@ func (m *RemoveMemberResponse) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *UpdateMemberRequest) Marshal() (data []byte, err error) {
func (m *MemberUpdateRequest) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2942,7 +2942,7 @@ func (m *UpdateMemberRequest) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *UpdateMemberRequest) MarshalTo(data []byte) (int, error) {
func (m *MemberUpdateRequest) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -2952,8 +2952,8 @@ func (m *UpdateMemberRequest) MarshalTo(data []byte) (int, error) {
i++
i = encodeVarintRpc(data, i, uint64(m.ID))
}
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
data[i] = 0x12
i++
l = len(s)
@ -2970,7 +2970,7 @@ func (m *UpdateMemberRequest) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *UpdateMemberResponse) Marshal() (data []byte, err error) {
func (m *MemberUpdateResponse) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -2980,7 +2980,7 @@ func (m *UpdateMemberResponse) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *UpdateMemberResponse) MarshalTo(data []byte) (int, error) {
func (m *MemberUpdateResponse) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -2998,7 +2998,7 @@ func (m *UpdateMemberResponse) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *ListMemberRequest) Marshal() (data []byte, err error) {
func (m *MemberListRequest) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -3008,7 +3008,7 @@ func (m *ListMemberRequest) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *ListMemberRequest) MarshalTo(data []byte) (int, error) {
func (m *MemberListRequest) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -3016,7 +3016,7 @@ func (m *ListMemberRequest) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *ListMemberResponse) Marshal() (data []byte, err error) {
func (m *MemberListResponse) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
@ -3026,7 +3026,7 @@ func (m *ListMemberResponse) Marshal() (data []byte, err error) {
return data[:n], nil
}
func (m *ListMemberResponse) MarshalTo(data []byte) (int, error) {
func (m *MemberListResponse) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
@ -3562,14 +3562,14 @@ func (m *Member) Size() (n int) {
if l > 0 {
n += 1 + l + sovRpc(uint64(l))
}
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
l = len(s)
n += 1 + l + sovRpc(uint64(l))
}
}
if len(m.Client_URLs) > 0 {
for _, s := range m.Client_URLs {
if len(m.ClientURLs) > 0 {
for _, s := range m.ClientURLs {
l = len(s)
n += 1 + l + sovRpc(uint64(l))
}
@ -3577,11 +3577,11 @@ func (m *Member) Size() (n int) {
return n
}
func (m *AddMemberRequest) Size() (n int) {
func (m *MemberAddRequest) Size() (n int) {
var l int
_ = l
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
l = len(s)
n += 1 + l + sovRpc(uint64(l))
}
@ -3589,7 +3589,7 @@ func (m *AddMemberRequest) Size() (n int) {
return n
}
func (m *AddMemberResponse) Size() (n int) {
func (m *MemberAddResponse) Size() (n int) {
var l int
_ = l
if m.Header != nil {
@ -3603,7 +3603,7 @@ func (m *AddMemberResponse) Size() (n int) {
return n
}
func (m *RemoveMemberRequest) Size() (n int) {
func (m *MemberRemoveRequest) Size() (n int) {
var l int
_ = l
if m.ID != 0 {
@ -3612,7 +3612,7 @@ func (m *RemoveMemberRequest) Size() (n int) {
return n
}
func (m *RemoveMemberResponse) Size() (n int) {
func (m *MemberRemoveResponse) Size() (n int) {
var l int
_ = l
if m.Header != nil {
@ -3622,14 +3622,14 @@ func (m *RemoveMemberResponse) Size() (n int) {
return n
}
func (m *UpdateMemberRequest) Size() (n int) {
func (m *MemberUpdateRequest) Size() (n int) {
var l int
_ = l
if m.ID != 0 {
n += 1 + sovRpc(uint64(m.ID))
}
if len(m.Peer_URLs) > 0 {
for _, s := range m.Peer_URLs {
if len(m.PeerURLs) > 0 {
for _, s := range m.PeerURLs {
l = len(s)
n += 1 + l + sovRpc(uint64(l))
}
@ -3637,7 +3637,7 @@ func (m *UpdateMemberRequest) Size() (n int) {
return n
}
func (m *UpdateMemberResponse) Size() (n int) {
func (m *MemberUpdateResponse) Size() (n int) {
var l int
_ = l
if m.Header != nil {
@ -3647,13 +3647,13 @@ func (m *UpdateMemberResponse) Size() (n int) {
return n
}
func (m *ListMemberRequest) Size() (n int) {
func (m *MemberListRequest) Size() (n int) {
var l int
_ = l
return n
}
func (m *ListMemberResponse) Size() (n int) {
func (m *MemberListResponse) Size() (n int) {
var l int
_ = l
if m.Header != nil {
@ -6635,7 +6635,7 @@ func (m *Member) Unmarshal(data []byte) error {
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Peer_URLs", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field PeerURLs", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@ -6660,11 +6660,11 @@ func (m *Member) Unmarshal(data []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Peer_URLs = append(m.Peer_URLs, string(data[iNdEx:postIndex]))
m.PeerURLs = append(m.PeerURLs, string(data[iNdEx:postIndex]))
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Client_URLs", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field ClientURLs", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@ -6689,7 +6689,7 @@ func (m *Member) Unmarshal(data []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Client_URLs = append(m.Client_URLs, string(data[iNdEx:postIndex]))
m.ClientURLs = append(m.ClientURLs, string(data[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
@ -6712,7 +6712,7 @@ func (m *Member) Unmarshal(data []byte) error {
}
return nil
}
func (m *AddMemberRequest) Unmarshal(data []byte) error {
func (m *MemberAddRequest) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -6735,15 +6735,15 @@ func (m *AddMemberRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: AddMemberRequest: wiretype end group for non-group")
return fmt.Errorf("proto: MemberAddRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: AddMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberAddRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Peer_URLs", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field PeerURLs", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@ -6768,7 +6768,7 @@ func (m *AddMemberRequest) Unmarshal(data []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Peer_URLs = append(m.Peer_URLs, string(data[iNdEx:postIndex]))
m.PeerURLs = append(m.PeerURLs, string(data[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
@ -6791,7 +6791,7 @@ func (m *AddMemberRequest) Unmarshal(data []byte) error {
}
return nil
}
func (m *AddMemberResponse) Unmarshal(data []byte) error {
func (m *MemberAddResponse) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -6814,10 +6814,10 @@ func (m *AddMemberResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: AddMemberResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MemberAddResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: AddMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberAddResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -6907,7 +6907,7 @@ func (m *AddMemberResponse) Unmarshal(data []byte) error {
}
return nil
}
func (m *RemoveMemberRequest) Unmarshal(data []byte) error {
func (m *MemberRemoveRequest) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -6930,10 +6930,10 @@ func (m *RemoveMemberRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: RemoveMemberRequest: wiretype end group for non-group")
return fmt.Errorf("proto: MemberRemoveRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: RemoveMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberRemoveRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -6976,7 +6976,7 @@ func (m *RemoveMemberRequest) Unmarshal(data []byte) error {
}
return nil
}
func (m *RemoveMemberResponse) Unmarshal(data []byte) error {
func (m *MemberRemoveResponse) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -6999,10 +6999,10 @@ func (m *RemoveMemberResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: RemoveMemberResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MemberRemoveResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: RemoveMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberRemoveResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -7059,7 +7059,7 @@ func (m *RemoveMemberResponse) Unmarshal(data []byte) error {
}
return nil
}
func (m *UpdateMemberRequest) Unmarshal(data []byte) error {
func (m *MemberUpdateRequest) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -7082,10 +7082,10 @@ func (m *UpdateMemberRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: UpdateMemberRequest: wiretype end group for non-group")
return fmt.Errorf("proto: MemberUpdateRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: UpdateMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberUpdateRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -7109,7 +7109,7 @@ func (m *UpdateMemberRequest) Unmarshal(data []byte) error {
}
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Peer_URLs", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field PeerURLs", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@ -7134,7 +7134,7 @@ func (m *UpdateMemberRequest) Unmarshal(data []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Peer_URLs = append(m.Peer_URLs, string(data[iNdEx:postIndex]))
m.PeerURLs = append(m.PeerURLs, string(data[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
@ -7157,7 +7157,7 @@ func (m *UpdateMemberRequest) Unmarshal(data []byte) error {
}
return nil
}
func (m *UpdateMemberResponse) Unmarshal(data []byte) error {
func (m *MemberUpdateResponse) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -7180,10 +7180,10 @@ func (m *UpdateMemberResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: UpdateMemberResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MemberUpdateResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: UpdateMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberUpdateResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -7240,7 +7240,7 @@ func (m *UpdateMemberResponse) Unmarshal(data []byte) error {
}
return nil
}
func (m *ListMemberRequest) Unmarshal(data []byte) error {
func (m *MemberListRequest) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -7263,10 +7263,10 @@ func (m *ListMemberRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListMemberRequest: wiretype end group for non-group")
return fmt.Errorf("proto: MemberListRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberListRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
@ -7290,7 +7290,7 @@ func (m *ListMemberRequest) Unmarshal(data []byte) error {
}
return nil
}
func (m *ListMemberResponse) Unmarshal(data []byte) error {
func (m *MemberListResponse) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
@ -7313,10 +7313,10 @@ func (m *ListMemberResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListMemberResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MemberListResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberListResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:

View File

@ -58,17 +58,17 @@ service Lease {
}
service Cluster {
// AddMember adds a member into the cluster.
rpc AddMember(AddMemberRequest) returns (AddMemberResponse) {}
// MemberAdd adds a member into the cluster.
rpc MemberAdd(MemberAddRequest) returns (MemberAddResponse) {}
// RemoveMember removes an existing member from the cluster.
rpc RemoveMember(RemoveMemberRequest) returns (RemoveMemberResponse) {}
// MemberRemove removes an existing member from the cluster.
rpc MemberRemove(MemberRemoveRequest) returns (MemberRemoveResponse) {}
// UpdateMember updates the member configuration.
rpc UpdateMember(UpdateMemberRequest) returns (UpdateMemberResponse) {}
// MemberUpdate updates the member configuration.
rpc MemberUpdate(MemberUpdateRequest) returns (MemberUpdateResponse) {}
// ListMember lists all the members in the cluster.
rpc ListMember(ListMemberRequest) returns (ListMemberResponse) {}
// MemberList lists all the members in the cluster.
rpc MemberList(MemberListRequest) returns (MemberListResponse) {}
}
message ResponseHeader {
@ -311,42 +311,42 @@ message Member {
uint64 ID = 1;
// If the member is not started, name will be an empty string.
string name = 2;
repeated string peer_URLs = 3;
repeated string peerURLs = 3;
// If the member is not started, client_URLs will be an zero length
// string array.
repeated string client_URLs = 4;
repeated string clientURLs = 4;
}
message AddMemberRequest {
repeated string peer_URLs = 1;
message MemberAddRequest {
repeated string peerURLs = 1;
}
message AddMemberResponse {
message MemberAddResponse {
ResponseHeader header = 1;
Member member = 2;
}
message RemoveMemberRequest {
message MemberRemoveRequest {
uint64 ID = 1;
}
message RemoveMemberResponse {
message MemberRemoveResponse {
ResponseHeader header = 1;
}
message UpdateMemberRequest {
message MemberUpdateRequest {
uint64 ID = 1;
repeated string peer_URLs = 2;
repeated string peerURLs = 2;
}
message UpdateMemberResponse{
message MemberUpdateResponse{
ResponseHeader header = 1;
}
message ListMemberRequest {
message MemberListRequest {
}
message ListMemberResponse {
message MemberListResponse {
ResponseHeader header = 1;
repeated Member members = 2;
}