mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-10 05:45:52 +08:00
add peers if no failover present
This commit is contained in:
parent
40f7036093
commit
4f7583e2ec
3 changed files with 21 additions and 3 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue