From 6e06fbd42e700aee7c68e9c3994d56b1a108db77 Mon Sep 17 00:00:00 2001 From: Alexandre Oliveira Date: Tue, 24 Nov 2020 21:00:18 +0100 Subject: [PATCH] Get list of DNS records before deleting to retrieve ID of recently added record --- client.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index 6dc3d41..d326f87 100644 --- a/client.go +++ b/client.go @@ -64,12 +64,26 @@ func (p *Provider) addDNSRecord(ctx context.Context, domain string, record libdn } func (p *Provider) removeDNSRecord(ctx context.Context, domain string, record libdns.Record) (libdns.Record, error) { + records, err := p.getDNSEntries(ctx, domain) + if err != nil { + return record, err + } + p.client.mutex.Lock() defer p.client.mutex.Unlock() p.getClient() - err := p.client.vultr.DNSRecord.Delete(ctx, domain, record.ID) + var recordId string + + for _, rec := range records { + if rec.Name == record.Name && rec.Value == strconv.Quote(record.Value) { + recordId = rec.ID + break + } + } + + err = p.client.vultr.DNSRecord.Delete(ctx, domain, recordId) if err != nil { return record, err }