2
0
Эх сурвалжийг харах

only proceed furtuer if failover exists in the network

Abhishek Kondur 1 жил өмнө
parent
commit
3e00ea255d

+ 7 - 12
pro/controllers/failover.go

@@ -140,6 +140,12 @@ func failOverME(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 		return
 	}
+
+	failOverNode, exists := proLogic.FailOverExists(node.Network)
+	if !exists {
+		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failover node doesn't exist in the network"), "badrequest"))
+		return
+	}
 	var failOverReq models.FailOverMeReq
 	err = json.NewDecoder(r.Body).Decode(&failOverReq)
 	if err != nil {
@@ -148,11 +154,6 @@ func failOverME(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 	var sendPeerUpdate bool
-	allNodes, err := logic.GetAllNodes()
-	if err != nil {
-		slog.Error("failed to get all nodes", "error", err)
-		return
-	}
 	peerNode, err := logic.GetNodeByID(failOverReq.NodeID)
 	if err != nil {
 		slog.Error("peer not found: ", "nodeid", failOverReq.NodeID, "error", err)
@@ -167,13 +168,7 @@ func failOverME(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("peer node is relayed or acting as failover"), "badrequest"))
 		return
 	}
-	// get failOver node in this network
-	failOverNode, err := proLogic.GetFailOverNode(node.Network, allNodes)
-	if err != nil {
-		slog.Error("auto relay not found", "network", node.Network)
-		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("auto relay not found"), "internal"))
-		return
-	}
+
 	err = proLogic.SetFailOverCtx(failOverNode, node, peerNode)
 	if err != nil {
 		slog.Error("failed to create failover", "id", node.ID.String(),