etcdserver: Create, Delete -> Add, Remove

This commit is contained in:
Yicheng Qin 2014-10-07 16:19:51 -07:00
parent cdea98d434
commit 8e8719f6ac
5 changed files with 21 additions and 20 deletions

View File

@ -16,9 +16,9 @@ const (
)
type ClusterStore interface {
Create(m Member)
Add(m Member)
Get() Cluster
Delete(id int64)
Remove(id int64)
}
type clusterStore struct {
@ -28,14 +28,14 @@ type clusterStore struct {
func NewClusterStore(st store.Store, c Cluster) ClusterStore {
cls := &clusterStore{Store: st}
for _, m := range c {
cls.Create(*m)
cls.Add(*m)
}
return cls
}
// Create puts a new Member into the store.
// Add puts a new Member into the store.
// A Member with a matching id must not exist.
func (s *clusterStore) Create(m Member) {
func (s *clusterStore) Add(m Member) {
b, err := json.Marshal(m)
if err != nil {
log.Panicf("marshal peer info error: %v", err)
@ -67,9 +67,9 @@ func (s *clusterStore) Get() Cluster {
return *c
}
// Delete removes a member from the store.
// Remove removes a member from the store.
// The given id MUST exist.
func (s *clusterStore) Delete(id int64) {
func (s *clusterStore) Remove(id int64) {
p := s.Get().FindID(id).storeKey()
if _, err := s.Store.Delete(p, false, false); err != nil {
log.Panicf("delete peer should never fail: %v", err)

View File

@ -9,10 +9,10 @@ import (
"github.com/coreos/etcd/store"
)
func TestClusterStoreCreate(t *testing.T) {
func TestClusterStoreAdd(t *testing.T) {
st := &storeRecorder{}
ps := &clusterStore{Store: st}
ps.Create(Member{Name: "node", ID: 1})
ps.Add(Member{Name: "node", ID: 1})
wactions := []action{
{
@ -73,7 +73,7 @@ func TestClusterStoreDelete(t *testing.T) {
c := Cluster{}
c.Add(Member{Name: "node", ID: 1})
cs := NewClusterStore(st, c)
cs.Delete(1)
cs.Remove(1)
wdeletes := []string{machineKVPrefix + "1"}
if !reflect.DeepEqual(st.deletes, wdeletes) {

View File

@ -1238,7 +1238,7 @@ type fakeCluster struct {
members []etcdserver.Member
}
func (c *fakeCluster) Create(m etcdserver.Member) { return }
func (c *fakeCluster) Add(m etcdserver.Member) { return }
func (c *fakeCluster) Get() etcdserver.Cluster {
cl := &etcdserver.Cluster{}
@ -1246,4 +1246,4 @@ func (c *fakeCluster) Get() etcdserver.Cluster {
return *cl
}
func (c *fakeCluster) Delete(id int64) { return }
func (c *fakeCluster) Remove(id int64) { return }

View File

@ -361,6 +361,7 @@ func (s *EtcdServer) Do(ctx context.Context, r pb.Request) (Response, error) {
}
func (s *EtcdServer) AddMember(ctx context.Context, memb Member) error {
// TODO: move Member to protobuf type
b, err := json.Marshal(memb)
if err != nil {
return err
@ -541,9 +542,9 @@ func (s *EtcdServer) applyConfChange(cc raftpb.ConfChange) {
if cc.NodeID != m.ID {
panic("unexpected nodeID mismatch")
}
s.ClusterStore.Create(m)
s.ClusterStore.Add(m)
case raftpb.ConfChangeRemoveNode:
s.ClusterStore.Delete(cc.NodeID)
s.ClusterStore.Remove(cc.NodeID)
default:
panic("unexpected ConfChange type")
}

View File

@ -807,7 +807,7 @@ func TestAddMember(t *testing.T) {
if !reflect.DeepEqual(gaction, wactions) {
t.Errorf("action = %v, want %v", gaction, wactions)
}
wcsactions := []action{{name: "Create", params: []interface{}{m}}}
wcsactions := []action{{name: "Add", params: []interface{}{m}}}
if g := cs.Action(); !reflect.DeepEqual(g, wcsactions) {
t.Errorf("csaction = %v, want %v", g, wcsactions)
}
@ -834,7 +834,7 @@ func TestRemoveMember(t *testing.T) {
if !reflect.DeepEqual(gaction, wactions) {
t.Errorf("action = %v, want %v", gaction, wactions)
}
wcsactions := []action{{name: "Delete", params: []interface{}{id}}}
wcsactions := []action{{name: "Remove", params: []interface{}{id}}}
if g := cs.Action(); !reflect.DeepEqual(g, wcsactions) {
t.Errorf("csaction = %v, want %v", g, wcsactions)
}
@ -1248,15 +1248,15 @@ type clusterStoreRecorder struct {
recorder
}
func (cs *clusterStoreRecorder) Create(m Member) {
cs.record(action{name: "Create", params: []interface{}{m}})
func (cs *clusterStoreRecorder) Add(m Member) {
cs.record(action{name: "Add", params: []interface{}{m}})
}
func (cs *clusterStoreRecorder) Get() Cluster {
cs.record(action{name: "Get"})
return nil
}
func (cs *clusterStoreRecorder) Delete(id int64) {
cs.record(action{name: "Delete", params: []interface{}{id}})
func (cs *clusterStoreRecorder) Remove(id int64) {
cs.record(action{name: "Remove", params: []interface{}{id}})
}
func mustClusterStore(t *testing.T, membs []Member) ClusterStore {