From e9cb510ef5769c1ae4eb45d01acef7e075a29333 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 19 Jun 2014 14:54:02 -0700 Subject: [PATCH] raft: node.Add needs the pubAddr field --- raft/cluster_test.go | 4 ++-- raft/node.go | 12 +++--------- raft/node_test.go | 16 +++++++++++----- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/raft/cluster_test.go b/raft/cluster_test.go index de63c63b0..601d9b0b9 100644 --- a/raft/cluster_test.go +++ b/raft/cluster_test.go @@ -92,10 +92,10 @@ func buildCluster(size int) (nt *network, nodes []*Node) { } nt = newNetwork(nis...) - lead := Dictate(nodes[0]) + lead := dictate(nodes[0]) lead.Next() for i := 1; i < size; i++ { - lead.Add(i) + lead.Add(i, "") nt.send(lead.Msgs()...) for j := 0; j < i; j++ { nodes[j].Next() diff --git a/raft/node.go b/raft/node.go index 33c1d58ba..09a70cbc9 100644 --- a/raft/node.go +++ b/raft/node.go @@ -13,8 +13,8 @@ type Interface interface { type tick int type config struct { - NodeId int - Address string + NodeId int + Addr string } type Node struct { @@ -39,12 +39,6 @@ func New(id int, heartbeat, election tick) *Node { return n } -func Dictate(n *Node) *Node { - n.Step(Message{Type: msgHup}) - n.Add(n.Id()) - return n -} - func (n *Node) Id() int { return n.sm.id } func (n *Node) HasLeader() bool { return n.sm.lead != none } @@ -56,7 +50,7 @@ func (n *Node) propose(t int, data []byte) { n.Step(Message{Type: msgProp, Entries: []Entry{{Type: t, Data: data}}}) } -func (n *Node) Add(id int) { n.updateConf(AddNode, &config{NodeId: id}) } +func (n *Node) Add(id int, addr string) { n.updateConf(AddNode, &config{NodeId: id, Addr: addr}) } func (n *Node) Remove(id int) { n.updateConf(RemoveNode, &config{NodeId: id}) } diff --git a/raft/node_test.go b/raft/node_test.go index 907603092..8aa951d9b 100644 --- a/raft/node_test.go +++ b/raft/node_test.go @@ -89,7 +89,7 @@ func TestResetElapse(t *testing.T) { } func TestStartCluster(t *testing.T) { - n := Dictate(New(0, defaultHeartbeat, defaultElection)) + n := dictate(New(0, defaultHeartbeat, defaultElection)) n.Next() if len(n.sm.ins) != 1 { @@ -104,9 +104,9 @@ func TestStartCluster(t *testing.T) { } func TestAdd(t *testing.T) { - n := Dictate(New(0, defaultHeartbeat, defaultElection)) + n := dictate(New(0, defaultHeartbeat, defaultElection)) n.Next() - n.Add(1) + n.Add(1, "") n.Next() if len(n.sm.ins) != 2 { @@ -118,9 +118,9 @@ func TestAdd(t *testing.T) { } func TestRemove(t *testing.T) { - n := Dictate(New(0, defaultHeartbeat, defaultElection)) + n := dictate(New(0, defaultHeartbeat, defaultElection)) n.Next() - n.Add(1) + n.Add(1, "") n.Next() n.Remove(0) n.Step(Message{Type: msgAppResp, From: 1, Term: 1, Index: 3}) @@ -133,3 +133,9 @@ func TestRemove(t *testing.T) { t.Errorf("id = %d, want 0", n.sm.id) } } + +func dictate(n *Node) *Node { + n.Step(Message{Type: msgHup}) + n.Add(n.Id(), "") + return n +}