consensus/impl/raftv2/cluster.go
File cluster.go
has 830 lines of code (exceeds 500 allowed). Consider refactoring. Open
Open
package raftv2
import (
"bytes"
"context"
Cluster
has 41 methods (exceeds 20 allowed). Consider refactoring. Open
Open
type Cluster struct {
component.ICompSyncRequester
sync.Mutex
cdb consensus.ChainDB
Method Cluster.isEnableChangeMembership
has 57 lines of code (exceeds 50 allowed). Consider refactoring. Open
Open
func (cl *Cluster) isEnableChangeMembership(cc *raftpb.ConfChange) error {
status := cl.rs.Status()
if status.ID == 0 {
logger.Debug().Msg("raft node is not initialized")
return ErrRaftStatusEmpty
Method Cluster.isEnableChangeMembership
has 11 return statements (exceeds 4 allowed). Open
Open
func (cl *Cluster) isEnableChangeMembership(cc *raftpb.ConfChange) error {
status := cl.rs.Status()
if status.ID == 0 {
logger.Debug().Msg("raft node is not initialized")
return ErrRaftStatusEmpty
Method Cluster.validateChangeMembership
has 8 return statements (exceeds 4 allowed). Open
Open
func (cl *Cluster) validateChangeMembership(cc *raftpb.ConfChange, member *consensus.Member, needlock bool) error {
if member == nil {
return ErrCCMemberIsNil
}
Method Cluster.ChangeMembership
has 7 return statements (exceeds 4 allowed). Open
Open
func (cl *Cluster) ChangeMembership(req *types.MembershipChange, nowait bool) (*consensus.Member, error) {
var (
proposal *consensus.ConfChangePropose
err error
)
Method Cluster.isAllMembersEqual
has 6 return statements (exceeds 4 allowed). Open
Open
func (cl *Cluster) isAllMembersEqual(members []*consensus.Member, RemovedMembers []*consensus.Member) bool {
membersEqual := func(x []*consensus.Member, y []*consensus.Member) bool {
if len(x) != len(y) {
return false
}
Method Cluster.makeProposal
has 5 return statements (exceeds 4 allowed). Open
Open
func (cl *Cluster) makeProposal(req *types.MembershipChange, nowait bool) (*consensus.ConfChangePropose, error) {
if cl.savedChange != nil {
logger.Error().Str("cc", types.RaftConfChangeToString(cl.savedChange.Cc)).Msg("already exist pending conf change")
return nil, ErrPendingConfChange
}