Merge pull request #12328 from ioito/hotfix/qx-dns-zone-sync-records

fix(region): optimized dns zone sync
This commit is contained in:
Zexi Li
2021-09-28 19:56:05 +08:00
committed by GitHub
2 changed files with 23 additions and 11 deletions
+10 -3
View File
@@ -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
+13 -8
View File
@@ -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"))