Browse Source

*: fix compilation after API change

Fixed compilation erros after API change for learner.
Jingyi Hu 6 years ago
parent
commit
a0d3c4d641

+ 15 - 5
clientv3/cluster.go

@@ -20,15 +20,17 @@ import (
 	pb "go.etcd.io/etcd/v3/etcdserver/etcdserverpb"
 	pb "go.etcd.io/etcd/v3/etcdserver/etcdserverpb"
 	"go.etcd.io/etcd/v3/pkg/types"
 	"go.etcd.io/etcd/v3/pkg/types"
 
 
+	"errors"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc"
 )
 )
 
 
 type (
 type (
-	Member               pb.Member
-	MemberListResponse   pb.MemberListResponse
-	MemberAddResponse    pb.MemberAddResponse
-	MemberRemoveResponse pb.MemberRemoveResponse
-	MemberUpdateResponse pb.MemberUpdateResponse
+	Member                pb.Member
+	MemberListResponse    pb.MemberListResponse
+	MemberAddResponse     pb.MemberAddResponse
+	MemberRemoveResponse  pb.MemberRemoveResponse
+	MemberUpdateResponse  pb.MemberUpdateResponse
+	MemberPromoteResponse pb.MemberPromoteResponse
 )
 )
 
 
 type Cluster interface {
 type Cluster interface {
@@ -43,6 +45,9 @@ type Cluster interface {
 
 
 	// MemberUpdate updates the peer addresses of the member.
 	// MemberUpdate updates the peer addresses of the member.
 	MemberUpdate(ctx context.Context, id uint64, peerAddrs []string) (*MemberUpdateResponse, error)
 	MemberUpdate(ctx context.Context, id uint64, peerAddrs []string) (*MemberUpdateResponse, error)
+
+	// MemberPromote promotes a member from raft learner (non-voting) to raft voting member.
+	MemberPromote(ctx context.Context, id uint64) (*MemberPromoteResponse, error)
 }
 }
 
 
 type cluster struct {
 type cluster struct {
@@ -112,3 +117,8 @@ func (c *cluster) MemberList(ctx context.Context) (*MemberListResponse, error) {
 	}
 	}
 	return nil, toErr(ctx, err)
 	return nil, toErr(ctx, err)
 }
 }
+
+func (c *cluster) MemberPromote(ctx context.Context, id uint64) (*MemberPromoteResponse, error) {
+	// TODO: implement
+	return nil, errors.New("not implemented")
+}

+ 4 - 0
clientv3/retry.go

@@ -183,6 +183,10 @@ func (rcc *retryClusterClient) MemberUpdate(ctx context.Context, in *pb.MemberUp
 	return rcc.cc.MemberUpdate(ctx, in, opts...)
 	return rcc.cc.MemberUpdate(ctx, in, opts...)
 }
 }
 
 
+func (rcc *retryClusterClient) MemberPromote(ctx context.Context, in *pb.MemberPromoteRequest, opts ...grpc.CallOption) (resp *pb.MemberPromoteResponse, err error) {
+	return rcc.cc.MemberPromote(ctx, in, opts...)
+}
+
 type retryMaintenanceClient struct {
 type retryMaintenanceClient struct {
 	mc pb.MaintenanceClient
 	mc pb.MaintenanceClient
 }
 }

+ 6 - 0
etcdserver/api/v3rpc/member.go

@@ -16,6 +16,7 @@ package v3rpc
 
 
 import (
 import (
 	"context"
 	"context"
+	"errors"
 	"time"
 	"time"
 
 
 	"go.etcd.io/etcd/v3/etcdserver"
 	"go.etcd.io/etcd/v3/etcdserver"
@@ -83,6 +84,11 @@ func (cs *ClusterServer) MemberList(ctx context.Context, r *pb.MemberListRequest
 	return &pb.MemberListResponse{Header: cs.header(), Members: membs}, nil
 	return &pb.MemberListResponse{Header: cs.header(), Members: membs}, nil
 }
 }
 
 
+func (cs *ClusterServer) MemberPromote(ctx context.Context, r *pb.MemberPromoteRequest) (*pb.MemberPromoteResponse, error) {
+	// TODO: implement
+	return nil, errors.New("not implemented")
+}
+
 func (cs *ClusterServer) header() *pb.ResponseHeader {
 func (cs *ClusterServer) header() *pb.ResponseHeader {
 	return &pb.ResponseHeader{ClusterId: uint64(cs.cluster.ID()), MemberId: uint64(cs.server.ID()), RaftTerm: cs.server.Term()}
 	return &pb.ResponseHeader{ClusterId: uint64(cs.cluster.ID()), MemberId: uint64(cs.server.ID()), RaftTerm: cs.server.Term()}
 }
 }

+ 4 - 0
proxy/grpcproxy/adapter/cluster_client_adapter.go

@@ -43,3 +43,7 @@ func (s *cls2clc) MemberUpdate(ctx context.Context, r *pb.MemberUpdateRequest, o
 func (s *cls2clc) MemberRemove(ctx context.Context, r *pb.MemberRemoveRequest, opts ...grpc.CallOption) (*pb.MemberRemoveResponse, error) {
 func (s *cls2clc) MemberRemove(ctx context.Context, r *pb.MemberRemoveRequest, opts ...grpc.CallOption) (*pb.MemberRemoveResponse, error) {
 	return s.cls.MemberRemove(ctx, r)
 	return s.cls.MemberRemove(ctx, r)
 }
 }
+
+func (s *cls2clc) MemberPromote(ctx context.Context, r *pb.MemberPromoteRequest, opts ...grpc.CallOption) (*pb.MemberPromoteResponse, error) {
+	return s.cls.MemberPromote(ctx, r)
+}

+ 6 - 0
proxy/grpcproxy/cluster.go

@@ -25,6 +25,7 @@ import (
 	"go.etcd.io/etcd/v3/etcdserver/api/v3rpc/rpctypes"
 	"go.etcd.io/etcd/v3/etcdserver/api/v3rpc/rpctypes"
 	pb "go.etcd.io/etcd/v3/etcdserver/etcdserverpb"
 	pb "go.etcd.io/etcd/v3/etcdserver/etcdserverpb"
 
 
+	"errors"
 	"golang.org/x/time/rate"
 	"golang.org/x/time/rate"
 	gnaming "google.golang.org/grpc/naming"
 	gnaming "google.golang.org/grpc/naming"
 )
 )
@@ -175,3 +176,8 @@ func (cp *clusterProxy) MemberList(ctx context.Context, r *pb.MemberListRequest)
 	resp := (pb.MemberListResponse)(*mresp)
 	resp := (pb.MemberListResponse)(*mresp)
 	return &resp, err
 	return &resp, err
 }
 }
+
+func (cp *clusterProxy) MemberPromote(ctx context.Context, r *pb.MemberPromoteRequest) (*pb.MemberPromoteResponse, error) {
+	// TODO: implement
+	return nil, errors.New("not implemented")
+}