コード例 #1
0
ファイル: node_test.go プロジェクト: saurabhjambhule/cs733
func (myRaft Raft) makeMockRafts() (Raft, *mock.MockCluster) {
	//create mock cluster.
	clconfig := cluster.Config{Peers: nil}
	cl, err := mock.NewCluster(clconfig)
	if err != nil {
		panic(err)
	}

	for id := 1; id <= PEERS; id++ {
		//Ojects to store statemachine, config and server node.
		myNode := new(RaftMachine)
		SM := new(sm.State_Machine)
		myConf := new(Config)

		//initialize config and server object.
		server := createMockNode(id, myConf, SM, cl)
		SM.Id = int32(id)
		myNode.Node = server
		myNode.SM = SM
		myNode.Conf = myConf
		//append object related to node into raft array.
		myRaft.Cluster = append(myRaft.Cluster, myNode)
		//start all the processing threads.
		go startNode(myRaft.Cluster[id-1].Conf, myRaft.Cluster[id-1].Node, myRaft.Cluster[id-1].SM)
	}
	return myRaft, cl
}
コード例 #2
0
ファイル: node_test.go プロジェクト: saurabhjambhule/cs733
func (myRaft Raft) makeRafts() Raft {
	for id := 1; id <= PEERS; id++ {
		myNode := new(RaftMachine)
		SM := new(sm.State_Machine)
		myConf := new(Config)

		server := createNode(id, myConf, SM)
		SM.Id = int32(id)

		myNode.Node = server
		myNode.SM = SM
		myNode.Conf = myConf
		myRaft.Cluster = append(myRaft.Cluster, myNode)
		go startNode(myRaft.Cluster[id-1].Conf, myRaft.Cluster[id-1].Node, myRaft.Cluster[id-1].SM)
	}
	return myRaft
}
コード例 #3
0
ファイル: node.go プロジェクト: saurabhjambhule/cs733
func StartRaft(myId int) *RaftMachine {
	myNode := new(RaftMachine)
	SM := new(sm.State_Machine)
	myConf := new(Config)

	//Start Node.
	server := createNode(myId, myConf, SM)
	SM.Id = int32(myId)

	//Restore previous test.
	restoreData(SM, myConf)

	myNode.SM = SM
	myNode.Conf = myConf
	myNode.Node = server
	go startNode(myConf, server, SM)
	return myNode
}