mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 01:20:25 +08:00
修复删除节点时不能自动同步DNS的问题
This commit is contained in:
@@ -78,8 +78,8 @@ func (this *DNSTaskDAO) CreateClusterRemoveTask(tx *dbs.Tx, clusterId int64, dom
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateNodeTask 生成节点任务
|
// CreateNodeTask 生成节点任务
|
||||||
func (this *DNSTaskDAO) CreateNodeTask(tx *dbs.Tx, nodeId int64, taskType DNSTaskType) error {
|
func (this *DNSTaskDAO) CreateNodeTask(tx *dbs.Tx, clusterId int64, nodeId int64, taskType DNSTaskType) error {
|
||||||
return this.CreateDNSTask(tx, 0, 0, nodeId, 0, "", taskType)
|
return this.CreateDNSTask(tx, clusterId, 0, nodeId, 0, "", taskType)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateServerTask 生成服务任务
|
// CreateServerTask 生成服务任务
|
||||||
|
|||||||
@@ -1839,6 +1839,12 @@ func (this *NodeDAO) DeleteNodeFromCluster(tx *dbs.Tx, nodeId int64, clusterId i
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 提前通知DNS更新,因为后面集群会有变化
|
||||||
|
err = this.NotifyDNSUpdate(tx, nodeId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
var node = one.(*Node)
|
var node = one.(*Node)
|
||||||
|
|
||||||
var secondaryClusterIds = []int64{}
|
var secondaryClusterIds = []int64{}
|
||||||
@@ -2127,7 +2133,7 @@ func (this *NodeDAO) NotifyDNSUpdate(tx *dbs.Tx, nodeId int64) error {
|
|||||||
if len(dnsInfo.DnsName) == 0 || dnsInfo.DnsDomainId <= 0 {
|
if len(dnsInfo.DnsName) == 0 || dnsInfo.DnsDomainId <= 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
err = dns.SharedDNSTaskDAO.CreateNodeTask(tx, nodeId, dns.DNSTaskTypeNodeChange)
|
err = dns.SharedDNSTaskDAO.CreateNodeTask(tx, clusterId, nodeId, dns.DNSTaskTypeNodeChange)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -604,7 +604,7 @@ func (this *NodeIPAddressDAO) NotifyUpdate(tx *dbs.Tx, addressId int64) error {
|
|||||||
var role = address.(*NodeIPAddress).Role
|
var role = address.(*NodeIPAddress).Role
|
||||||
switch role {
|
switch role {
|
||||||
case nodeconfigs.NodeRoleNode:
|
case nodeconfigs.NodeRoleNode:
|
||||||
err = dns.SharedDNSTaskDAO.CreateNodeTask(tx, nodeId, dns.DNSTaskTypeNodeChange)
|
err = dns.SharedDNSTaskDAO.CreateNodeTask(tx, 0, nodeId, dns.DNSTaskTypeNodeChange)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ func (this *DNSTaskExecutor) loop() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
case dnsmodels.DNSTaskTypeNodeChange:
|
case dnsmodels.DNSTaskTypeNodeChange:
|
||||||
err = this.doNode(taskId, int64(task.NodeId))
|
err = this.doNode(taskId, int64(task.ClusterId), int64(task.NodeId))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = dnsmodels.SharedDNSTaskDAO.UpdateDNSTaskError(nil, taskId, err.Error())
|
err = dnsmodels.SharedDNSTaskDAO.UpdateDNSTaskError(nil, taskId, err.Error())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -269,8 +269,8 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改节点相关记录
|
// 修改节点相关记录
|
||||||
func (this *DNSTaskExecutor) doNode(taskId int64, nodeId int64) error {
|
func (this *DNSTaskExecutor) doNode(taskId int64, nodeClusterId int64, nodeId int64) error {
|
||||||
isOk := false
|
var isOk = false
|
||||||
defer func() {
|
defer func() {
|
||||||
if isOk {
|
if isOk {
|
||||||
err := dnsmodels.SharedDNSTaskDAO.UpdateDNSTaskDone(nil, taskId)
|
err := dnsmodels.SharedDNSTaskDAO.UpdateDNSTaskDone(nil, taskId)
|
||||||
@@ -291,6 +291,12 @@ func (this *DNSTaskExecutor) doNode(taskId int64, nodeId int64) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 转交给cluster统一处理
|
// 转交给cluster统一处理
|
||||||
|
if nodeClusterId > 0 {
|
||||||
|
err = dnsmodels.SharedDNSTaskDAO.CreateClusterTask(tx, nodeClusterId, dnsmodels.DNSTaskTypeClusterChange)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
clusterIds, err := models.SharedNodeDAO.FindEnabledAndOnNodeClusterIds(tx, nodeId)
|
clusterIds, err := models.SharedNodeDAO.FindEnabledAndOnNodeClusterIds(tx, nodeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -301,6 +307,7 @@ func (this *DNSTaskExecutor) doNode(taskId int64, nodeId int64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
isOk = true
|
isOk = true
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user