Bladeren bron

exclude InetGW in failover

Max Ma 1 jaar geleden
bovenliggende
commit
58142fa84b
3 gewijzigde bestanden met toevoegingen van 11 en 2 verwijderingen
  1. 1 1
      mq/handlers.go
  2. 9 0
      pro/controllers/inet_gws.go
  3. 1 1
      pro/logic/failover.go

+ 1 - 1
mq/handlers.go

@@ -211,7 +211,7 @@ func signalPeer(signal models.Signal) {
 		slog.Error("failed to signal, peer node not found", "error", err)
 		return
 	}
-	if peerNode.IsIngressGateway || node.IsIngressGateway {
+	if peerNode.IsIngressGateway || node.IsIngressGateway || peerNode.IsInternetGateway || node.IsInternetGateway {
 		signal.Action = ""
 		return
 	}

+ 9 - 0
pro/controllers/inet_gws.go

@@ -11,6 +11,7 @@ import (
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/mq"
 	proLogic "github.com/gravitl/netmaker/pro/logic"
+	"github.com/gravitl/netmaker/servercfg"
 )
 
 // InetHandlers - handlers for internet gw
@@ -66,6 +67,14 @@ func createInternetGw(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 	proLogic.SetInternetGw(&node, request)
+	if servercfg.IsPro {
+		if _, exists := proLogic.FailOverExists(node.Network); exists {
+			go func() {
+				proLogic.ResetFailedOverPeer(&node)
+				mq.PublishPeerUpdate(false)
+			}()
+		}
+	}
 	err = logic.UpsertNode(&node)
 	if err != nil {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))

+ 1 - 1
pro/logic/failover.go

@@ -11,7 +11,7 @@ import (
 )
 
 func SetFailOverCtx(failOverNode, victimNode, peerNode models.Node) error {
-	if victimNode.IsIngressGateway || peerNode.IsIngressGateway {
+	if victimNode.IsIngressGateway || peerNode.IsIngressGateway || victimNode.IsInternetGateway || peerNode.IsInternetGateway {
 		return nil
 	}
 	if peerNode.FailOverPeers == nil {