From 627e6e2c3535da3c6e4ea5c923e3028958aca474 Mon Sep 17 00:00:00 2001 From: Sebastian Lohff Date: Wed, 26 Mar 2025 18:14:15 +0100 Subject: [PATCH] designate: speed up API requests by using filters (#2498) --- providers/dns/designate/designate.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/providers/dns/designate/designate.go b/providers/dns/designate/designate.go index e2a5721c0..c58baaace 100644 --- a/providers/dns/designate/designate.go +++ b/providers/dns/designate/designate.go @@ -245,10 +245,15 @@ func (d *DNSProvider) updateRecord(record *recordsets.RecordSet, value string) e } func (d *DNSProvider) getZoneID(wanted string) (string, error) { - allPages, err := zones.List(d.client, nil).AllPages() + listOpts := zones.ListOpts{ + Name: wanted, + } + + allPages, err := zones.List(d.client, listOpts).AllPages() if err != nil { return "", err } + allZones, err := zones.ExtractZones(allPages) if err != nil { return "", err @@ -259,14 +264,21 @@ func (d *DNSProvider) getZoneID(wanted string) (string, error) { return zone.ID, nil } } + return "", fmt.Errorf("zone id not found for %s", wanted) } func (d *DNSProvider) getRecord(zoneID, wanted string) (*recordsets.RecordSet, error) { - allPages, err := recordsets.ListByZone(d.client, zoneID, nil).AllPages() + listOpts := recordsets.ListOpts{ + Name: wanted, + Type: "TXT", + } + + allPages, err := recordsets.ListByZone(d.client, zoneID, listOpts).AllPages() if err != nil { return nil, err } + allRecords, err := recordsets.ExtractRecordSets(allPages) if err != nil { return nil, err