From 78b51d3f2f75ba18e452a650b0f06d1414b91bb7 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 25 Dec 2014 20:56:30 -0800 Subject: [PATCH] etcdserver: cleanup cluster.go --- etcdserver/cluster.go | 11 ++++++----- etcdserver/server.go | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/etcdserver/cluster.go b/etcdserver/cluster.go index 14059849a..acae7e801 100644 --- a/etcdserver/cluster.go +++ b/etcdserver/cluster.go @@ -328,24 +328,25 @@ func (c *Cluster) RemoveMember(id types.ID) { c.removed[id] = true } -func (c *Cluster) UpdateMemberAttributes(id types.ID, attr Attributes) { +func (c *Cluster) UpdateAttributes(id types.ID, attr Attributes) { c.Lock() defer c.Unlock() c.members[id].Attributes = attr + // TODO: update store in this function } -func (c *Cluster) UpdateMember(nm *Member) { +func (c *Cluster) UpdateRaftAttributes(id types.ID, raftAttr RaftAttributes) { c.Lock() defer c.Unlock() - b, err := json.Marshal(nm.RaftAttributes) + b, err := json.Marshal(raftAttr) if err != nil { log.Panicf("marshal raftAttributes should never fail: %v", err) } - p := path.Join(memberStoreKey(nm.ID), raftAttributesSuffix) + p := path.Join(memberStoreKey(id), raftAttributesSuffix) if _, err := c.store.Update(p, string(b), store.Permanent); err != nil { log.Panicf("update raftAttributes should never fail: %v", err) } - c.members[nm.ID].RaftAttributes = nm.RaftAttributes + c.members[id].RaftAttributes = raftAttr } func membersFromStore(st store.Store) (map[types.ID]*Member, map[types.ID]bool) { diff --git a/etcdserver/server.go b/etcdserver/server.go index 96b334932..7fcc58dc1 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -717,7 +717,7 @@ func (s *EtcdServer) applyRequest(r pb.Request) Response { if err := json.Unmarshal([]byte(r.Val), &attr); err != nil { log.Panicf("unmarshal %s should never fail: %v", r.Val, err) } - s.Cluster.UpdateMemberAttributes(id, attr) + s.Cluster.UpdateAttributes(id, attr) } return f(s.store.Set(r.Path, r.Dir, r.Val, expr)) } @@ -783,7 +783,7 @@ func (s *EtcdServer) applyConfChange(cc raftpb.ConfChange, confState *raftpb.Con if cc.NodeID != uint64(m.ID) { log.Panicf("nodeID should always be equal to member ID") } - s.Cluster.UpdateMember(m) + s.Cluster.UpdateRaftAttributes(m.ID, m.RaftAttributes) if m.ID == s.id { log.Printf("etcdserver: update local member %s %v in cluster %s", m.ID, m.PeerURLs, s.Cluster.ID()) } else {