diff --git a/pkg/apis/compute/dnsrecordsets.go b/pkg/apis/compute/dnsrecordsets.go index 4aa1f61358..345daae4b4 100644 --- a/pkg/apis/compute/dnsrecordsets.go +++ b/pkg/apis/compute/dnsrecordsets.go @@ -66,6 +66,8 @@ type DnsRecordSetDetails struct { SDnsRecordSet TrafficPolicies []DnsRecordPolicy + + DnsZone string `json:"dns_zone"` } type DnsRecordSetListInput struct { diff --git a/pkg/compute/models/dns_recordsets.go b/pkg/compute/models/dns_recordsets.go index 2630be35c6..5359bb68ae 100644 --- a/pkg/compute/models/dns_recordsets.go +++ b/pkg/compute/models/dns_recordsets.go @@ -289,12 +289,14 @@ func (manager *SDnsRecordSetManager) FetchCustomizeColumns( rows := make([]api.DnsRecordSetDetails, len(objs)) enRows := manager.SEnabledStatusStandaloneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) recordIds := make([]string, len(objs)) + zoneIds := make([]string, len(objs)) for i := range rows { rows[i] = api.DnsRecordSetDetails{ EnabledStatusStandaloneResourceDetails: enRows[i], } record := objs[i].(*SDnsRecordSet) recordIds[i] = record.Id + zoneIds[i] = record.DnsZoneId } q := DnsRecordSetTrafficPolicyManager.Query().In("dns_recordset_id", recordIds) @@ -330,6 +332,8 @@ func (manager *SDnsRecordSetManager) FetchCustomizeColumns( PolicyOptions: policies[i].Options, } } + zoneMap := map[string]SDnsZone{} + db.FetchModelObjectsByIds(DnsZoneManager, "id", zoneIds, &zoneMap) for i := range rows { rows[i].TrafficPolicies = []api.DnsRecordPolicy{} policyIds, ok := recordMaps[recordIds[i]] @@ -341,6 +345,9 @@ func (manager *SDnsRecordSetManager) FetchCustomizeColumns( } } } + if zone, ok := zoneMap[zoneIds[i]]; ok { + rows[i].DnsZone = zone.Name + } } return rows