Explorar o código

Merge pull request #5017 from xiang90/member

membership: save/update the whole member information into backend
Xiang Li %!s(int64=9) %!d(string=hai) anos
pai
achega
345bdc3db6
Modificáronse 2 ficheiros con 5 adicións e 2 borrados
  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 {
 		if c.store != nil {
 			mustUpdateMemberAttrInStore(c.store, m)
 			mustUpdateMemberAttrInStore(c.store, m)
 		}
 		}
+		if c.be != nil {
+			mustSaveMemberToBackend(c.be, m)
+		}
 		return
 		return
 	}
 	}
 	_, ok := c.removed[id]
 	_, ok := c.removed[id]

+ 2 - 2
etcdserver/membership/store.go

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