mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 15:00:27 +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