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

View File

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

View File

@ -1238,7 +1238,7 @@ type fakeCluster struct {
members []etcdserver.Member 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 { func (c *fakeCluster) Get() etcdserver.Cluster {
cl := &etcdserver.Cluster{} cl := &etcdserver.Cluster{}
@ -1246,4 +1246,4 @@ func (c *fakeCluster) Get() etcdserver.Cluster {
return *cl 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 { func (s *EtcdServer) AddMember(ctx context.Context, memb Member) error {
// TODO: move Member to protobuf type
b, err := json.Marshal(memb) b, err := json.Marshal(memb)
if err != nil { if err != nil {
return err return err
@ -541,9 +542,9 @@ func (s *EtcdServer) applyConfChange(cc raftpb.ConfChange) {
if cc.NodeID != m.ID { if cc.NodeID != m.ID {
panic("unexpected nodeID mismatch") panic("unexpected nodeID mismatch")
} }
s.ClusterStore.Create(m) s.ClusterStore.Add(m)
case raftpb.ConfChangeRemoveNode: case raftpb.ConfChangeRemoveNode:
s.ClusterStore.Delete(cc.NodeID) s.ClusterStore.Remove(cc.NodeID)
default: default:
panic("unexpected ConfChange type") panic("unexpected ConfChange type")
} }

View File

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