Przeglądaj źródła

etcdserver: minimize input info

Yicheng Qin 11 lat temu
rodzic
commit
cbc84bc70e
3 zmienionych plików z 15 dodań i 10 usunięć
  1. 3 3
      etcdserver/etcdhttp/http_test.go
  2. 7 2
      etcdserver/server.go
  3. 5 5
      main.go

+ 3 - 3
etcdserver/etcdhttp/http_test.go

@@ -712,8 +712,8 @@ func (fs *errServer) Do(ctx context.Context, r etcdserverpb.Request) (etcdserver
 func (fs *errServer) Process(ctx context.Context, m raftpb.Message) error {
 	return fs.err
 }
-func (fs *errServer) Start(m etcdserver.Member) {}
-func (fs *errServer) Stop()                     {}
+func (fs *errServer) Start() {}
+func (fs *errServer) Stop()  {}
 
 // errReader implements io.Reader to facilitate a broken request.
 type errReader struct{}
@@ -838,7 +838,7 @@ func (rs *resServer) Do(_ context.Context, _ etcdserverpb.Request) (etcdserver.R
 	return rs.res, nil
 }
 func (rs *resServer) Process(_ context.Context, _ raftpb.Message) error { return nil }
-func (rs *resServer) Start(m etcdserver.Member)                         {}
+func (rs *resServer) Start()                                            {}
 func (rs *resServer) Stop()                                             {}
 
 func mustMarshalEvent(t *testing.T, ev *store.Event) string {

+ 7 - 2
etcdserver/server.go

@@ -59,7 +59,7 @@ type Server interface {
 	// begin serving requests. It must be called before Do or Process.
 	// Start must be non-blocking; any long-running server functionality
 	// should be implemented in goroutines.
-	Start(m Member)
+	Start()
 	// Stop terminates the Server and performs any necessary finalization.
 	// Do and Process cannot be called after Stop has been invoked.
 	Stop()
@@ -80,6 +80,9 @@ type EtcdServer struct {
 	w    wait.Wait
 	done chan struct{}
 
+	Name       string
+	ClientURLs []string
+
 	Node  raft.Node
 	Store store.Store
 
@@ -105,8 +108,10 @@ type EtcdServer struct {
 // Start prepares and starts server in a new goroutine. It is no longer safe to
 // modify a server's fields after it has been sent to Start.
 // It also starts a goroutine to publish its server information.
-func (s *EtcdServer) Start(m Member) {
+func (s *EtcdServer) Start() {
 	s.start()
+	m := *s.ClusterStore.Get().FindName(s.Name)
+	m.ClientURLs = s.ClientURLs
 	go s.publish(m, defaultPublishRetryInterval)
 }
 

+ 5 - 5
main.go

@@ -193,8 +193,10 @@ func startEtcd() {
 	cls := etcdserver.NewClusterStore(st, *cluster)
 
 	s := &etcdserver.EtcdServer{
-		Store: st,
-		Node:  n,
+		Name:       *name,
+		ClientURLs: *addrs,
+		Store:      st,
+		Node:       n,
 		Storage: struct {
 			*wal.WAL
 			*snap.Snapshotter
@@ -205,9 +207,7 @@ func startEtcd() {
 		SnapCount:    *snapCount,
 		ClusterStore: cls,
 	}
-	member := *self
-	member.ClientURLs = *addrs
-	s.Start(member)
+	s.Start()
 
 	ch := &pkg.CORSHandler{
 		Handler: etcdhttp.NewClientHandler(s, cls, *timeout),