1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

CLOUDFLARE: Fix domain list cache error (#1662)

* Fix broken test

* CLOUDFLARE: Fix missing nameserver bug

* CSCGLOBAL: Catch more status states

* wip!

* remove extra print
This commit is contained in:
Tom Limoncelli
2022-08-08 13:00:58 -04:00
committed by GitHub
parent 0a6fa677f3
commit dd3416674f
3 changed files with 9 additions and 4 deletions

View File

@@ -61,7 +61,7 @@ When you do a `dnscontrol preview`, you should see changes for t1 and t2.
```
If you don't see those changes, that's a bug. For example, we found that
Cloudflare leave t2 alone but would try to add double-quotes to t3! This was
Cloudflare left t2 alone but would try to add double-quotes to t3! This was
fixed in https://github.com/StackExchange/dnscontrol/pull/1543.
Step 3: Push

View File

@@ -63,7 +63,7 @@ func init() {
// cloudflareProvider is the handle for API calls.
type cloudflareProvider struct {
domainIndex map[string]string
domainIndex map[string]string // Call c.fetchDomainList() to populate before use.
nameservers map[string][]string
ipConversions []transform.IPConversion
ignoredLabels []string
@@ -708,6 +708,11 @@ func getProxyMetadata(r *models.RecordConfig) map[string]string {
// EnsureDomainExists returns an error of domain does not exist.
func (c *cloudflareProvider) EnsureDomainExists(domain string) error {
if c.domainIndex == nil {
if err := c.fetchDomainList(); err != nil {
return err
}
}
if _, ok := c.domainIndex[domain]; ok {
return nil
}

View File

@@ -326,7 +326,7 @@ func (client *providerClient) getDomains() ([]string, error) {
json.Unmarshal(bodyString, &dr)
if dr.Meta.Pages > 1 {
return nil, fmt.Errorf("cscglobal getDomains: unimplemented paganation")
return nil, fmt.Errorf("cscglobal getDomains: unimplemented paganation")
}
var r []string
@@ -483,7 +483,7 @@ func (client *providerClient) clearRequests(domain string) error {
}
}
switch ze.Status {
case "PROPAGATING":
case "NEW", "SUBMITTED", "PROCESSING", "PROPAGATING":
printer.Printf("INFO: Waiting for id=%s status=%s\n", ze.ID, ze.Status)
client.waitRequest(ze.ID)
case "FAILED":