|
|
@@ -24,8 +24,6 @@ import (
|
|
|
"github.com/coreos/etcd/etcdserver/membership"
|
|
|
"github.com/coreos/etcd/pkg/types"
|
|
|
"golang.org/x/net/context"
|
|
|
- "google.golang.org/grpc"
|
|
|
- "google.golang.org/grpc/codes"
|
|
|
)
|
|
|
|
|
|
type ClusterServer struct {
|
|
|
@@ -50,14 +48,8 @@ func (cs *ClusterServer) MemberAdd(ctx context.Context, r *pb.MemberAddRequest)
|
|
|
|
|
|
now := time.Now()
|
|
|
m := membership.NewMember("", urls, "", &now)
|
|
|
- err = cs.server.AddMember(ctx, *m)
|
|
|
- switch {
|
|
|
- case err == membership.ErrIDExists:
|
|
|
- return nil, rpctypes.ErrGRPCMemberExist
|
|
|
- case err == membership.ErrPeerURLexists:
|
|
|
- return nil, rpctypes.ErrGRPCPeerURLExist
|
|
|
- case err != nil:
|
|
|
- return nil, grpc.Errorf(codes.Internal, err.Error())
|
|
|
+ if err = cs.server.AddMember(ctx, *m); err != nil {
|
|
|
+ return nil, togRPCError(err)
|
|
|
}
|
|
|
|
|
|
return &pb.MemberAddResponse{
|
|
|
@@ -67,16 +59,9 @@ func (cs *ClusterServer) MemberAdd(ctx context.Context, r *pb.MemberAddRequest)
|
|
|
}
|
|
|
|
|
|
func (cs *ClusterServer) MemberRemove(ctx context.Context, r *pb.MemberRemoveRequest) (*pb.MemberRemoveResponse, error) {
|
|
|
- err := cs.server.RemoveMember(ctx, r.ID)
|
|
|
- switch {
|
|
|
- case err == membership.ErrIDRemoved:
|
|
|
- fallthrough
|
|
|
- case err == membership.ErrIDNotFound:
|
|
|
- return nil, rpctypes.ErrGRPCMemberNotFound
|
|
|
- case err != nil:
|
|
|
- return nil, grpc.Errorf(codes.Internal, err.Error())
|
|
|
+ if err := cs.server.RemoveMember(ctx, r.ID); err != nil {
|
|
|
+ return nil, togRPCError(err)
|
|
|
}
|
|
|
-
|
|
|
return &pb.MemberRemoveResponse{Header: cs.header()}, nil
|
|
|
}
|
|
|
|
|
|
@@ -85,16 +70,9 @@ func (cs *ClusterServer) MemberUpdate(ctx context.Context, r *pb.MemberUpdateReq
|
|
|
ID: types.ID(r.ID),
|
|
|
RaftAttributes: membership.RaftAttributes{PeerURLs: r.PeerURLs},
|
|
|
}
|
|
|
- err := cs.server.UpdateMember(ctx, m)
|
|
|
- switch {
|
|
|
- case err == membership.ErrPeerURLexists:
|
|
|
- return nil, rpctypes.ErrGRPCPeerURLExist
|
|
|
- case err == membership.ErrIDNotFound:
|
|
|
- return nil, rpctypes.ErrGRPCMemberNotFound
|
|
|
- case err != nil:
|
|
|
- return nil, grpc.Errorf(codes.Internal, err.Error())
|
|
|
+ if err := cs.server.UpdateMember(ctx, m); err != nil {
|
|
|
+ return nil, togRPCError(err)
|
|
|
}
|
|
|
-
|
|
|
return &pb.MemberUpdateResponse{Header: cs.header()}, nil
|
|
|
}
|
|
|
|