add peers if no failover present

This commit is contained in:
0xdcarns 2022-09-28 15:49:02 -04:00
parent 40f7036093
commit 4f7583e2ec
3 changed files with 21 additions and 3 deletions

View file

@ -80,11 +80,15 @@ func setFailoverNode(failoverNode, node *models.Node) error {
return logic.UpdateNode(&nodeToUpdate, node) return logic.UpdateNode(&nodeToUpdate, node)
} }
// WipeFailover - removes the failover peers of given node (ID)
func WipeFailover(nodeid string) error { func WipeFailover(nodeid string) error {
metrics, err := logic.GetMetrics(nodeid) metrics, err := logic.GetMetrics(nodeid)
if err != nil { if err != nil {
return err return err
} }
if metrics != nil {
metrics.FailoverPeers = make(map[string]string) metrics.FailoverPeers = make(map[string]string)
return logic.UpdateMetrics(nodeid, metrics) return logic.UpdateMetrics(nodeid, metrics)
}
return nil
} }

View file

@ -250,6 +250,20 @@ func ValidateNode(node *models.Node, isUpdate bool) error {
return err return err
} }
// IsFailoverPresent - checks if a node is marked as a failover in given network
func IsFailoverPresent(network string) bool {
netNodes, err := GetNetworkNodes(network)
if err != nil {
return false
}
for i := range netNodes {
if netNodes[i].Failover == "yes" {
return true
}
}
return false
}
// CreateNode - creates a node in database // CreateNode - creates a node in database
func CreateNode(node *models.Node) error { func CreateNode(node *models.Node) error {

View file

@ -95,7 +95,7 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
if isP2S && peer.IsHub != "yes" { if isP2S && peer.IsHub != "yes" {
continue continue
} }
if len(metrics.FailoverPeers[peer.ID]) > 0 { if len(metrics.FailoverPeers[peer.ID]) > 0 && IsFailoverPresent(node.Network) {
logger.Log(2, "peer", peer.Name, peer.PrimaryAddress(), "was found to be in failover peers list for node", node.Name, node.PrimaryAddress()) logger.Log(2, "peer", peer.Name, peer.PrimaryAddress(), "was found to be in failover peers list for node", node.Name, node.PrimaryAddress())
continue continue
} }