Add event-based debugging output.

This commit is contained in:
Ben Johnson 2013-12-23 16:01:05 -07:00
parent 3bd2d0da88
commit 4acfc26c5e
2 changed files with 36 additions and 2 deletions

View File

@ -94,6 +94,11 @@ func NewPeerServer(name string, path string, url string, bindAddr string, tlsCon
}
s.raftServer = raftServer
s.raftServer.AddEventListener(raft.StateChangeEventType, s.raftEventLogger)
s.raftServer.AddEventListener(raft.LeaderChangeEventType, s.raftEventLogger)
s.raftServer.AddEventListener(raft.TermChangeEventType, s.raftEventLogger)
s.raftServer.AddEventListener(raft.AddPeerEventType, s.raftEventLogger)
s.raftServer.AddEventListener(raft.RemovePeerEventType, s.raftEventLogger)
return s
}
@ -422,6 +427,31 @@ func (s *PeerServer) PeerStats() []byte {
return nil
}
// raftEventLogger converts events from the Raft server into log messages.
func (s *PeerServer) raftEventLogger(event raft.Event) {
value := event.Value()
prevValue := event.PrevValue()
if value == nil {
value = "<nil>"
}
if prevValue == nil {
prevValue = "<nil>"
}
switch event.Type() {
case raft.StateChangeEventType:
fmt.Printf("[%s] State changed from '%v' to '%v'.\n", s.name, prevValue, value)
case raft.TermChangeEventType:
fmt.Printf("[%s] Term #%v started.\n", s.name, value)
case raft.LeaderChangeEventType:
fmt.Printf("[%s] Leader changed from '%v' to '%v'.\n", s.name, prevValue, value)
case raft.AddPeerEventType:
fmt.Printf("[%s] Peer added: '%v'\n", s.name, value)
case raft.RemovePeerEventType:
fmt.Printf("[%s] Peer removed: '%v'\n", s.name, value)
}
}
func (s *PeerServer) monitorSnapshot() {
for {
time.Sleep(s.snapConf.checkingInterval)

View File

@ -5,6 +5,10 @@ if [ -z "$PKG" ]; then
PKG="./store ./server ./server/v2/tests ./mod/lock/v2/tests"
fi
if [ -z "$RUN" ]; then
RUN="."
fi
# Get GOPATH, etc from build
. ./build
@ -15,9 +19,9 @@ export GOPATH="${PWD}"
for i in $PKG
do
go test -i $i
go test -v $i
go test -v -test.run=$RUN $i
done
# Functional tests
go test -i ./tests/functional
ETCD_BIN_PATH=$(pwd)/etcd go test -v ./tests/functional
ETCD_BIN_PATH=$(pwd)/etcd go test -v -test.run=$RUN ./tests/functional