Browse Source

changed should peer update logic on metrics and fixed ee ref

0xdcarns 2 years ago
parent
commit
b6d18f86a3
2 changed files with 6 additions and 2 deletions
  1. 1 1
      ee/initialize.go
  2. 5 1
      mq/handlers.go

+ 1 - 1
ee/initialize.go

@@ -47,7 +47,7 @@ func resetFailover() {
 	nets, err := logic.GetNetworks()
 	nets, err := logic.GetNetworks()
 	if err == nil {
 	if err == nil {
 		for _, net := range nets {
 		for _, net := range nets {
-			err = ResetFailover(net.NetID)
+			err = eelogic.ResetFailover(net.NetID)
 			if err != nil {
 			if err != nil {
 				logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())
 				logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())
 			}
 			}

+ 5 - 1
mq/handlers.go

@@ -143,6 +143,7 @@ func UpdateMetrics(client mqtt.Client, msg mqtt.Message) {
 			}
 			}
 
 
 			if shouldUpdate {
 			if shouldUpdate {
+				logger.Log(2, "updating peers after node", currentNode.Name, currentNode.Network, "detected connectivity issues")
 				if err = PublishPeerUpdate(&currentNode, true); err != nil {
 				if err = PublishPeerUpdate(&currentNode, true); err != nil {
 					logger.Log(0, "failed to publish update after failover peer change for node", currentNode.Name, currentNode.Network)
 					logger.Log(0, "failed to publish update after failover peer change for node", currentNode.Name, currentNode.Network)
 				}
 				}
@@ -266,9 +267,12 @@ func updateNodeMetrics(currentNode *models.Node, newMetrics *models.Metrics) boo
 	}
 	}
 	shouldUpdate := false
 	shouldUpdate := false
 	for k, v := range oldMetrics.FailoverPeers {
 	for k, v := range oldMetrics.FailoverPeers {
+		if len(newMetrics.FailoverPeers[k]) > 0 && len(v) == 0 {
+			shouldUpdate = true
+		}
+
 		if len(v) > 0 && len(newMetrics.FailoverPeers[k]) == 0 {
 		if len(v) > 0 && len(newMetrics.FailoverPeers[k]) == 0 {
 			newMetrics.FailoverPeers[k] = v
 			newMetrics.FailoverPeers[k] = v
-			shouldUpdate = true
 		}
 		}
 	}
 	}