From a406c9fa3d4ab60bb829423f3a76ce2b6958cd34 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Fri, 8 Apr 2016 13:14:37 -0700 Subject: [PATCH] membership: save/update the whole member information into backend --- etcdserver/membership/cluster.go | 3 +++ etcdserver/membership/store.go | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/etcdserver/membership/cluster.go b/etcdserver/membership/cluster.go index eb970566f..bf29c7360 100644 --- a/etcdserver/membership/cluster.go +++ b/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] diff --git a/etcdserver/membership/store.go b/etcdserver/membership/store.go index c2c940607..b153c2024 100644 --- a/etcdserver/membership/store.go +++ b/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 {