mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	如果服务变更集群前后域名ID一致,则不执行删除操作
This commit is contained in:
		@@ -132,29 +132,39 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
	var recordName = serverDNS.DnsName
 | 
						var recordName = serverDNS.DnsName
 | 
				
			||||||
	var recordType = dnstypes.RecordTypeCNAME
 | 
						var recordType = dnstypes.RecordTypeCNAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 新的DNS设置
 | 
				
			||||||
 | 
						manager, newDomainId, domain, clusterDNSName, dnsConfig, err := this.findDNSManager(tx, int64(serverDNS.ClusterId))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 如果集群发生了变化,则从老的集群中删除
 | 
						// 如果集群发生了变化,则从老的集群中删除
 | 
				
			||||||
	if oldClusterId > 0 && int64(serverDNS.ClusterId) != oldClusterId {
 | 
						if oldClusterId > 0 && int64(serverDNS.ClusterId) != oldClusterId {
 | 
				
			||||||
		oldManager, oldDomainId, oldDomain, _, _, err := this.findDNSManager(tx, oldClusterId)
 | 
							oldManager, oldDomainId, oldDomain, _, _, err := this.findDNSManager(tx, oldClusterId)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if oldManager != nil {
 | 
					
 | 
				
			||||||
			oldRecord, err := oldManager.QueryRecord(oldDomain, recordName, recordType)
 | 
							// 如果域名发生了变化
 | 
				
			||||||
			if err != nil {
 | 
							if oldDomainId != newDomainId {
 | 
				
			||||||
				return err
 | 
								if oldManager != nil {
 | 
				
			||||||
			}
 | 
									oldRecord, err := oldManager.QueryRecord(oldDomain, recordName, recordType)
 | 
				
			||||||
			if oldRecord != nil {
 | 
					 | 
				
			||||||
				// 删除记录
 | 
					 | 
				
			||||||
				err = oldManager.DeleteRecord(oldDomain, oldRecord)
 | 
					 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return err
 | 
										return err
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
									if oldRecord != nil {
 | 
				
			||||||
 | 
										// 删除记录
 | 
				
			||||||
 | 
										err = oldManager.DeleteRecord(oldDomain, oldRecord)
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											return err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				// 更新域名中记录缓存
 | 
										// 更新域名中记录缓存
 | 
				
			||||||
				// 这里不创建域名更新任务,而是直接更新,避免影响其他任务的执行
 | 
										// 这里不创建域名更新任务,而是直接更新,避免影响其他任务的执行
 | 
				
			||||||
				err = this.doDomain(oldDomainId)
 | 
										err = this.doDomain(oldDomainId)
 | 
				
			||||||
				if err != nil {
 | 
										if err != nil {
 | 
				
			||||||
					return err
 | 
											return err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -164,10 +174,6 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 处理新的集群
 | 
						// 处理新的集群
 | 
				
			||||||
	manager, domainId, domain, clusterDNSName, dnsConfig, err := this.findDNSManager(tx, int64(serverDNS.ClusterId))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if manager == nil {
 | 
						if manager == nil {
 | 
				
			||||||
		isOk = true
 | 
							isOk = true
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
@@ -191,7 +197,7 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, domainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
								err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, newDomainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -200,7 +206,7 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
		isOk = true
 | 
							isOk = true
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		// 是否已存在
 | 
							// 是否已存在
 | 
				
			||||||
		exist, err := dnsmodels.SharedDNSDomainDAO.ExistDomainRecord(tx, domainId, recordName, recordType, recordRoute, recordValue)
 | 
							exist, err := dnsmodels.SharedDNSDomainDAO.ExistDomainRecord(tx, newDomainId, recordName, recordType, recordRoute, recordValue)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -225,7 +231,7 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, domainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
								err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, newDomainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -243,7 +249,7 @@ func (this *DNSTaskExecutor) doServer(taskId int64, oldClusterId int64, serverId
 | 
				
			|||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, domainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
							err = dnsmodels.SharedDNSTaskDAO.CreateDomainTask(tx, newDomainId, dnsmodels.DNSTaskTypeDomainChange)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user