Skip to content

Commit

Permalink
Unify logic of building raft-loggers for etcd.
Browse files Browse the repository at this point in the history
1. We had the same code copied 3 times.
2. For no good reason the code was not reusing existing logger if this one is given.
  • Loading branch information
ptabor committed Mar 14, 2021
1 parent 44bd223 commit 1e7c180
Showing 1 changed file with 22 additions and 31 deletions.
53 changes: 22 additions & 31 deletions server/etcdserver/raft.go
Original file line number Diff line number Diff line change
Expand Up @@ -461,17 +461,7 @@ func startNode(cfg config.ServerConfig, cl *membership.RaftCluster, ids []types.
CheckQuorum: true,
PreVote: cfg.PreVote,
}
if cfg.Logger != nil {
// called after capnslog setting in "init" function
if cfg.LoggerConfig != nil {
c.Logger, err = NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
}
}
c.Logger, err = getRaftLogger(cfg)

if len(peers) == 0 {
n = raft.RestartNode(c)
Expand Down Expand Up @@ -515,17 +505,10 @@ func restartNode(cfg config.ServerConfig, snapshot *raftpb.Snapshot) (types.ID,
CheckQuorum: true,
PreVote: cfg.PreVote,
}
if cfg.Logger != nil {
// called after capnslog setting in "init" function
var err error
if cfg.LoggerConfig != nil {
c.Logger, err = NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
}
var err error
c.Logger, err = getRaftLogger(cfg)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}

n := raft.RestartNode(c)
Expand Down Expand Up @@ -600,21 +583,29 @@ func restartAsStandaloneNode(cfg config.ServerConfig, snapshot *raftpb.Snapshot)
CheckQuorum: true,
PreVote: cfg.PreVote,
}

c.Logger, err = getRaftLogger(cfg)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}

n := raft.RestartNode(c)
raftStatus = n.Status
return id, cl, n, s, w
}

func getRaftLogger(cfg config.ServerConfig) (raft.Logger, error) {
if cfg.Logger != nil {
// called after capnslog setting in "init" function
if cfg.LoggerConfig != nil {
c.Logger, err = NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
return NewRaftLogger(cfg.LoggerConfig)
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
return NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer), nil
} else {
return NewRaftLoggerZap(cfg.Logger), nil
}
}

n := raft.RestartNode(c)
raftStatus = n.Status
return id, cl, n, s, w
return nil, nil
}

// getIDs returns an ordered set of IDs included in the given snapshot and
Expand Down

0 comments on commit 1e7c180

Please sign in to comment.