mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	节点因阈值切换到备用IP时保持在线状态
This commit is contained in:
		@@ -443,6 +443,7 @@ func (this *NodeIPAddressDAO) UpdateAddressBackupIP(tx *dbs.Tx, addressId int64,
 | 
			
		||||
		return errors.New("invalid addressId")
 | 
			
		||||
	}
 | 
			
		||||
	var op = NewNodeIPAddressOperator()
 | 
			
		||||
	op.IsUp = true // IP必须在线备用IP才会有用
 | 
			
		||||
	op.Id = addressId
 | 
			
		||||
	op.BackupThresholdId = thresholdId
 | 
			
		||||
	op.BackupIP = ip
 | 
			
		||||
 
 | 
			
		||||
@@ -146,6 +146,26 @@ func (this *HealthCheckExecutor) Run() ([]*HealthCheckResult, error) {
 | 
			
		||||
							}
 | 
			
		||||
 | 
			
		||||
							if isChanged {
 | 
			
		||||
								// 发送消息
 | 
			
		||||
								var message = ""
 | 
			
		||||
								var messageType string
 | 
			
		||||
								var messageLevel string
 | 
			
		||||
								if result.IsOk {
 | 
			
		||||
									message = "健康检查成功,节点\"" + result.Node.Name + "\",IP\"" + result.NodeAddr + "\"已恢复上线"
 | 
			
		||||
									messageType = models.MessageTypeHealthCheckNodeUp
 | 
			
		||||
									messageLevel = models.MessageLevelSuccess
 | 
			
		||||
								} else {
 | 
			
		||||
									message = "健康检查失败,节点\"" + result.Node.Name + "\",IP\"" + result.NodeAddr + "\"已自动下线"
 | 
			
		||||
									messageType = models.MessageTypeHealthCheckNodeDown
 | 
			
		||||
									messageLevel = models.MessageLevelError
 | 
			
		||||
								}
 | 
			
		||||
 | 
			
		||||
								err = models.NewMessageDAO().CreateNodeMessage(nil, nodeconfigs.NodeRoleNode, this.clusterId, int64(result.Node.Id), messageType, messageLevel, message, message, nil, false)
 | 
			
		||||
								if err != nil {
 | 
			
		||||
									remotelogs.Error("HEALTH_CHECK_EXECUTOR", err.Error())
 | 
			
		||||
									return
 | 
			
		||||
								}
 | 
			
		||||
 | 
			
		||||
								// 触发阈值
 | 
			
		||||
								err = models.SharedNodeIPAddressDAO.FireThresholds(nil, nodeconfigs.NodeRoleNode, int64(result.Node.Id))
 | 
			
		||||
								if err != nil {
 | 
			
		||||
@@ -153,6 +173,9 @@ func (this *HealthCheckExecutor) Run() ([]*HealthCheckResult, error) {
 | 
			
		||||
									return
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
 | 
			
		||||
							// 我们只处理IP的上下线,不修改节点的状态
 | 
			
		||||
							return
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						// 修改节点状态
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user