Browse Source

raft: StartCluster -> Dictate

Blake Mizerany 11 years ago
parent
commit
7cdd148e24
3 changed files with 9 additions and 12 deletions
  1. 1 1
      raft/cluster_test.go
  2. 2 5
      raft/node.go
  3. 6 6
      raft/node_test.go

+ 1 - 1
raft/cluster_test.go

@@ -92,7 +92,7 @@ func buildCluster(size int) (nt *network, nodes []*Node) {
 	}
 	nt = newNetwork(nis...)
 
-	nodes[0].StartCluster()
+	Dictate(nodes[0]).Next()
 	for i := 1; i < size; i++ {
 		nt.send(nodes[0].newConfMessage(configAdd, &Config{NodeId: i}))
 		nodes[i].Start()

+ 2 - 5
raft/node.go

@@ -50,14 +50,11 @@ func (n *Node) Propose(data []byte) {
 	n.Step(m)
 }
 
-func (n *Node) StartCluster() {
-	if n.sm != nil {
-		panic("node is started")
-	}
+func Dictate(n *Node) *Node {
 	n.sm = newStateMachine(n.addr, []int{n.addr})
 	n.Step(Message{Type: msgHup})
 	n.Step(n.newConfMessage(configAdd, &Config{NodeId: n.addr}))
-	n.Next()
+	return n
 }
 
 func (n *Node) Start() {

+ 6 - 6
raft/node_test.go

@@ -89,8 +89,8 @@ func TestResetElapse(t *testing.T) {
 }
 
 func TestStartCluster(t *testing.T) {
-	n := New(0, defaultHeartbeat, defaultElection)
-	n.StartCluster()
+	n := Dictate(New(0, defaultHeartbeat, defaultElection))
+	n.Next()
 
 	if len(n.sm.ins) != 1 {
 		t.Errorf("k = %d, want 1", len(n.sm.ins))
@@ -104,8 +104,8 @@ func TestStartCluster(t *testing.T) {
 }
 
 func TestAdd(t *testing.T) {
-	n := New(0, defaultHeartbeat, defaultElection)
-	n.StartCluster()
+	n := Dictate(New(0, defaultHeartbeat, defaultElection))
+	n.Next()
 	n.Add(1)
 	n.Next()
 
@@ -118,8 +118,8 @@ func TestAdd(t *testing.T) {
 }
 
 func TestRemove(t *testing.T) {
-	n := New(0, defaultHeartbeat, defaultElection)
-	n.StartCluster()
+	n := Dictate(New(0, defaultHeartbeat, defaultElection))
+	n.Next()
 	n.Add(1)
 	n.Next()
 	n.Remove(0)