diff --git a/pkg/compute/tasks/dns_record_set_enabled_task.go b/pkg/compute/tasks/dns_record_set_enabled_task.go index 6952886a20..857d28faf8 100644 --- a/pkg/compute/tasks/dns_record_set_enabled_task.go +++ b/pkg/compute/tasks/dns_record_set_enabled_task.go @@ -16,6 +16,7 @@ package tasks import ( "context" + "fmt" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/jsonutils" @@ -43,17 +44,21 @@ func (self *DnsRecordSetEnabledTask) taskFailed(ctx context.Context, record *mod func (self *DnsRecordSetEnabledTask) OnInit(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { record := obj.(*models.SDnsRecord) - if len(record.ExternalId) == 0 { - self.taskComplete(ctx, record) - return - } - zone, err := record.GetDnsZone() if err != nil { self.taskFailed(ctx, record, errors.Wrapf(err, "GetDnsZone")) return } + if len(record.ExternalId) == 0 { + if len(zone.ManagerId) == 0 { // 本地dns记录 + self.taskComplete(ctx, record) + return + } + self.taskFailed(ctx, record, fmt.Errorf("empty external id")) + return + } + iZone, err := zone.GetICloudDnsZone(ctx) if err != nil { self.taskFailed(ctx, record, errors.Wrapf(err, "GetICloudDnsZone"))