diff --git a/README.md b/README.md index d7c08254d..79c637bb7 100644 --- a/README.md +++ b/README.md @@ -147,9 +147,9 @@ DNSControl can be installed via packages for macOS, Linux and Windows, or from s See [dnscontrol-action](https://github.com/koenrh/dnscontrol-action) or [gacts/install-dnscontrol](https://github.com/gacts/install-dnscontrol). -## Deprecation warnings (updated 2022-06-04) +## Deprecation warnings (updated 2023-01-18) -- **Call for new volunteer maintainers for NAMEDOTCOM, and SOFTLAYER.** These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes. +- **Call for new volunteer maintainers for NAMECHEAP, NAMEDOTCOM, and SOFTLAYER.** These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes. - **ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022.** The `get-certs` command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in [issues/1400](https://github.com/StackExchange/dnscontrol/issues/1400) - **get-zones syntax changes in v3.16** Starting in v3.16, the command line arguments for `dnscontrol get-zones` changes. For backwards compatibility change `provider` to `-`. See documentation for details. diff --git a/providers/namecheap/namecheapProvider.go b/providers/namecheap/namecheapProvider.go index b7f7c7acf..895cb5b86 100644 --- a/providers/namecheap/namecheapProvider.go +++ b/providers/namecheap/namecheapProvider.go @@ -191,48 +191,46 @@ func (n *namecheapProvider) GetDomainCorrections(dc *models.DomainConfig) ([]*mo // Normalize models.PostProcessRecords(actual) - var corrections []*models.Correction - if !diff2.EnableDiff2 || true { // Remove "|| true" when diff2 version arrives - + var create, delete, modify diff.Changeset + if !diff2.EnableDiff2 { differ := diff.New(dc) - _, create, delete, modify, err := differ.IncrementalDiff(actual) - if err != nil { - return nil, err - } - - // // because namecheap doesn't have selective create, delete, modify, - // // we bundle them all up to send at once. We *do* want to see the - // // changes though - - var desc []string - for _, i := range create { - desc = append(desc, "\n"+i.String()) - } - for _, i := range delete { - desc = append(desc, "\n"+i.String()) - } - for _, i := range modify { - desc = append(desc, "\n"+i.String()) - } - - msg := fmt.Sprintf("GENERATE_ZONE: %s (%d records)%s", dc.Name, len(dc.Records), desc) - corrections := []*models.Correction{} - - // only create corrections if there are changes - if len(desc) > 0 { - corrections = append(corrections, - &models.Correction{ - Msg: msg, - F: func() error { - return n.generateRecords(dc) - }, - }) - } - - return corrections, nil + _, create, delete, modify, err = differ.IncrementalDiff(actual) + } else { + differ := diff.NewCompat(dc) + _, create, delete, modify, err = differ.IncrementalDiff(actual) + } + if err != nil { + return nil, err } - // Insert Future diff2 version here. + // // because namecheap doesn't have selective create, delete, modify, + // // we bundle them all up to send at once. We *do* want to see the + // // changes though + + var desc []string + for _, i := range create { + desc = append(desc, "\n"+i.String()) + } + for _, i := range delete { + desc = append(desc, "\n"+i.String()) + } + for _, i := range modify { + desc = append(desc, "\n"+i.String()) + } + + msg := fmt.Sprintf("GENERATE_ZONE: %s (%d records)%s", dc.Name, len(dc.Records), desc) + var corrections []*models.Correction + + // only create corrections if there are changes + if len(desc) > 0 { + corrections = append(corrections, + &models.Correction{ + Msg: msg, + F: func() error { + return n.generateRecords(dc) + }, + }) + } return corrections, nil }