浏览代码

reset failover on disconnect

abhishek9686 3 周之前
父节点
当前提交
55f4c6a688
共有 3 个文件被更改,包括 4 次插入1 次删除
  1. 1 1
      controllers/hosts.go
  2. 2 0
      logic/hosts.go
  3. 1 0
      models/node.go

+ 1 - 1
controllers/hosts.go

@@ -210,7 +210,7 @@ func pull(w http.ResponseWriter, r *http.Request) {
 			slog.Error("failed to get node:", "id", node.ID, "error", err)
 			continue
 		}
-		if node.FailedOverBy != uuid.Nil && r.URL.Query().Get("reset_failovered") == "true" {
+		if r.URL.Query().Get("reset_failovered") == "true" {
 			logic.ResetFailedOverPeer(&node)
 			sendPeerUpdate = true
 		}

+ 2 - 0
logic/hosts.go

@@ -394,6 +394,8 @@ func UpdateHostNode(h *models.Host, newNode *models.Node) (publishDeletedNodeUpd
 			publishDeletedNodeUpdate = true
 		}
 		publishPeerUpdate = true
+		// reset failover data for this node
+		ResetFailedOverPeer(newNode)
 	}
 	return
 }

+ 1 - 0
models/node.go

@@ -481,6 +481,7 @@ func (newNode *Node) Fill(
 	if newNode.IsFailOver != currentNode.IsFailOver {
 		newNode.IsFailOver = currentNode.IsFailOver
 	}
+	newNode.FailOverPeers = currentNode.FailOverPeers
 	if newNode.Tags == nil {
 		if currentNode.Tags == nil {
 			currentNode.Tags = make(map[TagID]struct{})