mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #12328 from ioito/hotfix/qx-dns-zone-sync-records
fix(region): optimized dns zone sync
This commit is contained in:
@@ -2786,6 +2786,13 @@ func (self *SCloudaccount) SyncDnsZones(ctx context.Context, userCred mcclient.T
|
||||
result.UpdateError(errors.Wrapf(err, "SyncWithCloudDnsZone"))
|
||||
continue
|
||||
}
|
||||
zone, err := commondb[i].GetDnsZone()
|
||||
if err != nil {
|
||||
result.UpdateError(errors.Wrapf(err, "GetDnsZone"))
|
||||
continue
|
||||
}
|
||||
localZones = append(localZones, *zone)
|
||||
remoteZones = append(remoteZones, commonext[i])
|
||||
|
||||
result.Update()
|
||||
}
|
||||
@@ -2797,10 +2804,10 @@ func (self *SCloudaccount) SyncDnsZones(ctx context.Context, userCred mcclient.T
|
||||
continue
|
||||
}
|
||||
if isNew {
|
||||
localZones = append(localZones, *dnsZone)
|
||||
remoteZones = append(remoteZones, added[i])
|
||||
result.Add()
|
||||
}
|
||||
result.Add()
|
||||
localZones = append(localZones, *dnsZone)
|
||||
remoteZones = append(remoteZones, added[i])
|
||||
}
|
||||
|
||||
return localZones, remoteZones, result
|
||||
|
||||
@@ -654,14 +654,19 @@ func (self *SDnsZone) SyncDnsRecordSets(ctx context.Context, userCred mcclient.T
|
||||
result.Delete()
|
||||
}
|
||||
|
||||
if self.ZoneType == string(cloudprovider.PrivateZone) {
|
||||
for i := range update {
|
||||
_record, err := DnsRecordSetManager.FetchById(update[i].Id)
|
||||
if err != nil {
|
||||
result.UpdateError(errors.Wrapf(err, "DnsRecordSetManager.FetchById(%s)", del[i].Id))
|
||||
continue
|
||||
}
|
||||
record := _record.(*SDnsRecordSet)
|
||||
for i := range update {
|
||||
_record, err := DnsRecordSetManager.FetchById(update[i].Id)
|
||||
if err != nil {
|
||||
result.UpdateError(errors.Wrapf(err, "DnsRecordSetManager.FetchById(%s)", del[i].Id))
|
||||
continue
|
||||
}
|
||||
record := _record.(*SDnsRecordSet)
|
||||
caches, err := self.GetDnsZoneCaches()
|
||||
if err != nil {
|
||||
result.UpdateError(errors.Wrapf(err, "GetDnsZoneCaches"))
|
||||
continue
|
||||
}
|
||||
if self.ZoneType == string(cloudprovider.PrivateZone) || len(caches) < 2 {
|
||||
err = record.syncWithCloudDnsRecord(ctx, userCred, provider, update[i])
|
||||
if err != nil {
|
||||
result.UpdateError(errors.Wrapf(err, "syncWithCloudDnsRecord"))
|
||||
|
||||
Reference in New Issue
Block a user