pdns: fix usage of notify only when zone kind is Master or Slave (#1781)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
This commit is contained in:
parent
091e03f071
commit
7f8305e8d8
2 changed files with 12 additions and 27 deletions
|
@ -28,6 +28,7 @@ type hostedZone struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
|
Kind string `json:"kind"`
|
||||||
RRSets []rrSet `json:"rrsets"`
|
RRSets []rrSet `json:"rrsets"`
|
||||||
|
|
||||||
// pre-v1 API
|
// pre-v1 API
|
||||||
|
@ -137,14 +138,16 @@ func (d *DNSProvider) getAPIVersion() (int, error) {
|
||||||
return latestVersion, err
|
return latestVersion, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DNSProvider) notify(zoneURL string) error {
|
func (d *DNSProvider) notify(zone *hostedZone) error {
|
||||||
if d.apiVersion >= 1 {
|
if d.apiVersion < 1 || zone.Kind != "Master" && zone.Kind != "Slave" {
|
||||||
p := path.Join(zoneURL, "/notify")
|
return nil
|
||||||
_, err := d.sendRequest(http.MethodPut, p, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err := d.sendRequest(http.MethodPut, path.Join(zone.URL, "/notify"), nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,16 +173,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||||
return fmt.Errorf("pdns: %w", err)
|
return fmt.Errorf("pdns: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.apiVersion < 1 {
|
return d.notify(zone)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err = d.notify(zone.URL)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("pdns: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CleanUp removes the TXT record matching the specified parameters.
|
// CleanUp removes the TXT record matching the specified parameters.
|
||||||
|
@ -221,14 +212,5 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||||
return fmt.Errorf("pdns: %w", err)
|
return fmt.Errorf("pdns: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.apiVersion < 1 {
|
return d.notify(zone)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err = d.notify(zone.URL)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("pdns: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue