浏览代码

membership: save/update the whole member information into backend

Xiang Li 9 年之前
父节点
当前提交
a406c9fa3d
共有 2 个文件被更改,包括 5 次插入2 次删除
  1. 3 0
      etcdserver/membership/cluster.go
  2. 2 2
      etcdserver/membership/store.go

+ 3 - 0
etcdserver/membership/cluster.go

@@ -311,6 +311,9 @@ func (c *RaftCluster) UpdateAttributes(id types.ID, attr Attributes) {
 		if c.store != nil {
 			mustUpdateMemberAttrInStore(c.store, m)
 		}
+		if c.be != nil {
+			mustSaveMemberToBackend(c.be, m)
+		}
 		return
 	}
 	_, ok := c.removed[id]

+ 2 - 2
etcdserver/membership/store.go

@@ -42,7 +42,7 @@ var (
 
 func mustSaveMemberToBackend(be backend.Backend, m *Member) {
 	mkey := backendMemberKey(m.ID)
-	mvalue, err := json.Marshal(m.RaftAttributes)
+	mvalue, err := json.Marshal(m)
 	if err != nil {
 		plog.Panicf("marshal raftAttributes should never fail: %v", err)
 	}
@@ -134,7 +134,7 @@ func nodeToMember(n *store.NodeExtern) (*Member, error) {
 }
 
 func backendMemberKey(id types.ID) []byte {
-	return []byte(path.Join(id.String(), raftAttributesSuffix))
+	return []byte(id.String())
 }
 
 func MemberStoreKey(id types.ID) string {