mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver: Create, Delete -> Add, Remove
This commit is contained in:
parent
cdea98d434
commit
8e8719f6ac
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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 }
|
||||
|
@ -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")
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user