Browse Source

Merge pull request #1709 from xiang90/server_id

etcdserver: add ID() function to the Server interface.
Xiang Li 11 years ago
parent
commit
8319d4dcbe
3 changed files with 13 additions and 6 deletions
  1. 6 4
      etcdserver/etcdhttp/client_test.go
  2. 3 2
      etcdserver/etcdhttp/http_test.go
  3. 4 0
      etcdserver/server.go

+ 6 - 4
etcdserver/etcdhttp/client_test.go

@@ -92,6 +92,9 @@ type serverRecorder struct {
 	actions []action
 	actions []action
 }
 }
 
 
+func (s *serverRecorder) Start()       {}
+func (s *serverRecorder) Stop()        {}
+func (s *serverRecorder) ID() types.ID { return types.ID(1) }
 func (s *serverRecorder) Do(_ context.Context, r etcdserverpb.Request) (etcdserver.Response, error) {
 func (s *serverRecorder) Do(_ context.Context, r etcdserverpb.Request) (etcdserver.Response, error) {
 	s.actions = append(s.actions, action{name: "Do", params: []interface{}{r}})
 	s.actions = append(s.actions, action{name: "Do", params: []interface{}{r}})
 	return etcdserver.Response{}, nil
 	return etcdserver.Response{}, nil
@@ -100,8 +103,6 @@ func (s *serverRecorder) Process(_ context.Context, m raftpb.Message) error {
 	s.actions = append(s.actions, action{name: "Process", params: []interface{}{m}})
 	s.actions = append(s.actions, action{name: "Process", params: []interface{}{m}})
 	return nil
 	return nil
 }
 }
-func (s *serverRecorder) Start() {}
-func (s *serverRecorder) Stop()  {}
 func (s *serverRecorder) AddMember(_ context.Context, m etcdserver.Member) error {
 func (s *serverRecorder) AddMember(_ context.Context, m etcdserver.Member) error {
 	s.actions = append(s.actions, action{name: "AddMember", params: []interface{}{m}})
 	s.actions = append(s.actions, action{name: "AddMember", params: []interface{}{m}})
 	return nil
 	return nil
@@ -138,12 +139,13 @@ type resServer struct {
 	res etcdserver.Response
 	res etcdserver.Response
 }
 }
 
 
+func (rs *resServer) Start()       {}
+func (rs *resServer) Stop()        {}
+func (rs *resServer) ID() types.ID { return types.ID(1) }
 func (rs *resServer) Do(_ context.Context, _ etcdserverpb.Request) (etcdserver.Response, error) {
 func (rs *resServer) Do(_ context.Context, _ etcdserverpb.Request) (etcdserver.Response, error) {
 	return rs.res, nil
 	return rs.res, nil
 }
 }
 func (rs *resServer) Process(_ context.Context, _ raftpb.Message) error         { return nil }
 func (rs *resServer) Process(_ context.Context, _ raftpb.Message) error         { return nil }
-func (rs *resServer) Start()                                                    {}
-func (rs *resServer) Stop()                                                     {}
 func (rs *resServer) AddMember(_ context.Context, _ etcdserver.Member) error    { return nil }
 func (rs *resServer) AddMember(_ context.Context, _ etcdserver.Member) error    { return nil }
 func (rs *resServer) RemoveMember(_ context.Context, _ uint64) error            { return nil }
 func (rs *resServer) RemoveMember(_ context.Context, _ uint64) error            { return nil }
 func (rs *resServer) UpdateMember(_ context.Context, _ etcdserver.Member) error { return nil }
 func (rs *resServer) UpdateMember(_ context.Context, _ etcdserver.Member) error { return nil }

+ 3 - 2
etcdserver/etcdhttp/http_test.go

@@ -65,14 +65,15 @@ type errServer struct {
 	err error
 	err error
 }
 }
 
 
+func (fs *errServer) Start()       {}
+func (fs *errServer) Stop()        {}
+func (fs *errServer) ID() types.ID { return types.ID(1) }
 func (fs *errServer) Do(ctx context.Context, r etcdserverpb.Request) (etcdserver.Response, error) {
 func (fs *errServer) Do(ctx context.Context, r etcdserverpb.Request) (etcdserver.Response, error) {
 	return etcdserver.Response{}, fs.err
 	return etcdserver.Response{}, fs.err
 }
 }
 func (fs *errServer) Process(ctx context.Context, m raftpb.Message) error {
 func (fs *errServer) Process(ctx context.Context, m raftpb.Message) error {
 	return fs.err
 	return fs.err
 }
 }
-func (fs *errServer) Start() {}
-func (fs *errServer) Stop()  {}
 func (fs *errServer) AddMember(ctx context.Context, m etcdserver.Member) error {
 func (fs *errServer) AddMember(ctx context.Context, m etcdserver.Member) error {
 	return fs.err
 	return fs.err
 }
 }

+ 4 - 0
etcdserver/server.go

@@ -115,6 +115,8 @@ type Server interface {
 	// Stop terminates the Server and performs any necessary finalization.
 	// Stop terminates the Server and performs any necessary finalization.
 	// Do and Process cannot be called after Stop has been invoked.
 	// Do and Process cannot be called after Stop has been invoked.
 	Stop()
 	Stop()
+	// ID returns the ID of the Server.
+	ID() types.ID
 	// Do takes a request and attempts to fulfill it, returning a Response.
 	// Do takes a request and attempts to fulfill it, returning a Response.
 	Do(ctx context.Context, r pb.Request) (Response, error)
 	Do(ctx context.Context, r pb.Request) (Response, error)
 	// Process takes a raft message and applies it to the server's raft state
 	// Process takes a raft message and applies it to the server's raft state
@@ -306,6 +308,8 @@ func (s *EtcdServer) start() {
 	go s.run()
 	go s.run()
 }
 }
 
 
+func (s *EtcdServer) ID() types.ID { return s.id }
+
 func (s *EtcdServer) Process(ctx context.Context, m raftpb.Message) error {
 func (s *EtcdServer) Process(ctx context.Context, m raftpb.Message) error {
 	if s.Cluster.IsIDRemoved(types.ID(m.From)) {
 	if s.Cluster.IsIDRemoved(types.ID(m.From)) {
 		return ErrRemoved
 		return ErrRemoved