forked from TrueCloudLab/lego
gcloud: update findTxtRecords to use Name=fqdn and Type=TXT, use in Present and Cleanup (#594)
This commit is contained in:
parent
04e2d74406
commit
255296ec82
1 changed files with 10 additions and 21 deletions
|
@ -115,13 +115,13 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Look for existing records.
|
// Look for existing records.
|
||||||
list, err := d.client.ResourceRecordSets.List(d.project, zone).Name(fqdn).Type("TXT").Do()
|
existing, err := d.findTxtRecords(zone, fqdn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if len(list.Rrsets) > 0 {
|
if len(existing) > 0 {
|
||||||
// Attempt to delete the existing records when adding our new one.
|
// Attempt to delete the existing records when adding our new one.
|
||||||
change.Deletions = list.Rrsets
|
change.Deletions = existing
|
||||||
}
|
}
|
||||||
|
|
||||||
chg, err := d.client.Changes.Create(d.project, zone, change).Do()
|
chg, err := d.client.Changes.Create(d.project, zone, change).Do()
|
||||||
|
@ -156,16 +156,12 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, rec := range records {
|
if len(records) == 0 {
|
||||||
change := &dns.Change{
|
return nil
|
||||||
Deletions: []*dns.ResourceRecordSet{rec},
|
|
||||||
}
|
|
||||||
_, err = d.client.Changes.Create(d.project, zone, change).Do()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
|
_, err = d.client.Changes.Create(d.project, zone, &dns.Change{Deletions: records}).Do()
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Timeout customizes the timeout values used by the ACME package for checking
|
// Timeout customizes the timeout values used by the ACME package for checking
|
||||||
|
@ -198,17 +194,10 @@ func (d *DNSProvider) getHostedZone(domain string) (string, error) {
|
||||||
|
|
||||||
func (d *DNSProvider) findTxtRecords(zone, fqdn string) ([]*dns.ResourceRecordSet, error) {
|
func (d *DNSProvider) findTxtRecords(zone, fqdn string) ([]*dns.ResourceRecordSet, error) {
|
||||||
|
|
||||||
recs, err := d.client.ResourceRecordSets.List(d.project, zone).Do()
|
recs, err := d.client.ResourceRecordSets.List(d.project, zone).Name(fqdn).Type("TXT").Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var found []*dns.ResourceRecordSet
|
return recs.Rrsets, nil
|
||||||
for _, r := range recs.Rrsets {
|
|
||||||
if r.Type == "TXT" && r.Name == fqdn {
|
|
||||||
found = append(found, r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return found, nil
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue