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