membership: save/update the whole member information into backend

This commit is contained in:
Xiang Li 2016-04-08 13:14:37 -07:00
parent fe810e7b43
commit a406c9fa3d
2 changed files with 5 additions and 2 deletions

View File

@ -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]

View File

@ -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 {