1
0
Fork 0

Fix some DNS providers issues

This commit is contained in:
Ludovic Fernandez 2018-09-21 18:38:02 +02:00 committed by Traefiker Bot
parent 9ab5cbf235
commit 38d655636d
8 changed files with 62 additions and 30 deletions

View file

@ -131,26 +131,33 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
return fmt.Errorf("googlecloud: %v", err)
}
// Look for existing records.
existing, err := d.findTxtRecords(zone, fqdn)
if err != nil {
return fmt.Errorf("googlecloud: %v", err)
}
rec := &dns.ResourceRecordSet{
Name: fqdn,
Rrdatas: []string{value},
Ttl: int64(d.config.TTL),
Type: "TXT",
}
change := &dns.Change{
Additions: []*dns.ResourceRecordSet{rec},
}
// Look for existing records.
existing, err := d.findTxtRecords(zone, fqdn)
if err != nil {
return fmt.Errorf("googlecloud: %v", err)
}
change := &dns.Change{}
if len(existing) > 0 {
// Attempt to delete the existing records when adding our new one.
change.Deletions = existing
// Append existing TXT record data to the new TXT record data
for _, value := range existing {
rec.Rrdatas = append(rec.Rrdatas, value.Rrdatas...)
}
}
change.Additions = []*dns.ResourceRecordSet{rec}
chg, err := d.client.Changes.Create(d.config.Project, zone, change).Do()
if err != nil {
return fmt.Errorf("googlecloud: %v", err)
@ -188,7 +195,10 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
}
_, err = d.client.Changes.Create(d.config.Project, zone, &dns.Change{Deletions: records}).Do()
return fmt.Errorf("googlecloud: %v", err)
if err != nil {
return fmt.Errorf("googlecloud: %v", err)
}
return nil
}
// Timeout customizes the timeout values used by the ACME package for checking