Skip to content

Commit f6d1413

Browse files
authored
exoscale: simplify record creation (#2179)
1 parent acd3382 commit f6d1413

File tree

1 file changed

+5
-28
lines changed

1 file changed

+5
-28
lines changed

providers/dns/exoscale/exoscale.go

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -127,38 +127,16 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
127127
return fmt.Errorf("exoscale: zone %q not found", zoneName)
128128
}
129129

130-
recordID, err := d.findExistingRecordID(deref(zone.ID), recordName)
131-
if err != nil {
132-
return fmt.Errorf("exoscale: %w", err)
133-
}
134-
135-
if recordID == "" {
136-
record := egoscale.DNSDomainRecord{
137-
Name: pointer(recordName),
138-
TTL: pointer(d.config.TTL),
139-
Content: pointer(info.Value),
140-
Type: pointer("TXT"),
141-
}
142-
143-
_, err = d.client.CreateDNSDomainRecord(ctx, d.apiZone, deref(zone.ID), &record)
144-
if err != nil {
145-
return fmt.Errorf("exoscale: error while creating DNS record: %w", err)
146-
}
147-
148-
return nil
149-
}
150-
151130
record := egoscale.DNSDomainRecord{
152-
ID: pointer(recordID),
153131
Name: pointer(recordName),
154132
TTL: pointer(d.config.TTL),
155133
Content: pointer(info.Value),
156134
Type: pointer("TXT"),
157135
}
158136

159-
err = d.client.UpdateDNSDomainRecord(ctx, d.apiZone, deref(zone.ID), &record)
137+
_, err = d.client.CreateDNSDomainRecord(ctx, d.apiZone, deref(zone.ID), &record)
160138
if err != nil {
161-
return fmt.Errorf("exoscale: error while updating DNS record: %w", err)
139+
return fmt.Errorf("exoscale: error while creating DNS record: %w", err)
162140
}
163141

164142
return nil
@@ -182,7 +160,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
182160
return fmt.Errorf("exoscale: zone %q not found", zoneName)
183161
}
184162

185-
recordID, err := d.findExistingRecordID(deref(zone.ID), recordName)
163+
recordID, err := d.findExistingRecordID(deref(zone.ID), recordName, info.Value)
186164
if err != nil {
187165
return err
188166
}
@@ -224,7 +202,7 @@ func (d *DNSProvider) findExistingZone(zoneName string) (*egoscale.DNSDomain, er
224202

225203
// findExistingRecordID Query Exoscale to find an existing record for this name.
226204
// Returns empty result if no record could be found.
227-
func (d *DNSProvider) findExistingRecordID(zoneID, recordName string) (string, error) {
205+
func (d *DNSProvider) findExistingRecordID(zoneID, recordName, value string) (string, error) {
228206
ctx := context.Background()
229207

230208
records, err := d.client.ListDNSDomainRecords(ctx, d.apiZone, zoneID)
@@ -233,8 +211,7 @@ func (d *DNSProvider) findExistingRecordID(zoneID, recordName string) (string, e
233211
}
234212

235213
for _, record := range records {
236-
if deref(record.Name) == recordName &&
237-
deref(record.Type) == "TXT" {
214+
if deref(record.Name) == recordName && deref(record.Type) == "TXT" && deref(record.Content) == value {
238215
return deref(record.ID), nil
239216
}
240217
}

0 commit comments

Comments
 (0)