mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
refactor corrections
This commit is contained in:
@@ -2,17 +2,19 @@ package commands
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"golang.org/x/net/idna"
|
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"golang.org/x/net/idna"
|
||||||
|
|
||||||
"github.com/StackExchange/dnscontrol/v3/models"
|
"github.com/StackExchange/dnscontrol/v3/models"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
|
"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
|
"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
|
"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
||||||
|
"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
|
||||||
"github.com/StackExchange/dnscontrol/v3/providers"
|
"github.com/StackExchange/dnscontrol/v3/providers"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
@@ -188,7 +190,7 @@ DomainLoop:
|
|||||||
|
|
||||||
/// This is where we should audit?
|
/// This is where we should audit?
|
||||||
|
|
||||||
corrections, err := provider.Driver.GetDomainCorrections(dc)
|
corrections, err := zonerecs.CorrectZoneRecords(provider.Driver, dc)
|
||||||
out.EndProvider(len(corrections), err)
|
out.EndProvider(len(corrections), err)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
anyErrors = true
|
anyErrors = true
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
|
"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
|
"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
|
||||||
|
"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
|
||||||
"github.com/StackExchange/dnscontrol/v3/providers"
|
"github.com/StackExchange/dnscontrol/v3/providers"
|
||||||
_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
|
_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
|
||||||
"github.com/StackExchange/dnscontrol/v3/providers/cloudflare"
|
"github.com/StackExchange/dnscontrol/v3/providers/cloudflare"
|
||||||
@@ -211,7 +212,7 @@ func makeChanges(t *testing.T, prv providers.DNSServiceProvider, dc *models.Doma
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get and run corrections for first time
|
// get and run corrections for first time
|
||||||
corrections, err := prv.GetDomainCorrections(dom)
|
corrections, err := zonerecs.CorrectZoneRecords(prv, dom)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(fmt.Errorf("runTests: %w", err))
|
t.Fatal(fmt.Errorf("runTests: %w", err))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ package models
|
|||||||
type DNSProvider interface {
|
type DNSProvider interface {
|
||||||
GetNameservers(domain string) ([]*Nameserver, error)
|
GetNameservers(domain string) ([]*Nameserver, error)
|
||||||
GetZoneRecords(domain string) (Records, error)
|
GetZoneRecords(domain string) (Records, error)
|
||||||
GetDomainCorrections(dc *DomainConfig) ([]*Correction, error)
|
GetDomainCorrections(dc *DomainConfig) ([]*Correction, error) // Legacy
|
||||||
|
GetZoneRecordsCorrections(dc *DomainConfig, existing Records) ([]*Correction, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Registrar is an interface for Registrar plug-ins.
|
// Registrar is an interface for Registrar plug-ins.
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/StackExchange/dnscontrol/v3/models"
|
"github.com/StackExchange/dnscontrol/v3/models"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
|
"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
|
||||||
|
"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
|
||||||
"github.com/go-acme/lego/certcrypto"
|
"github.com/go-acme/lego/certcrypto"
|
||||||
"github.com/go-acme/lego/certificate"
|
"github.com/go-acme/lego/certificate"
|
||||||
"github.com/go-acme/lego/challenge"
|
"github.com/go-acme/lego/challenge"
|
||||||
@@ -275,7 +276,7 @@ func (c *certManager) getCorrections(d *models.DomainConfig) ([]*models.Correcti
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
corrections, err := p.Driver.GetDomainCorrections(dc)
|
corrections, err := zonerecs.CorrectZoneRecords(p.Driver, dc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,6 +205,14 @@ func (g *gcloudProvider) GetDomainCorrections(dc *models.DomainConfig) ([]*model
|
|||||||
models.PostProcessRecords(existingRecords)
|
models.PostProcessRecords(existingRecords)
|
||||||
txtutil.SplitSingleLongTxt(dc.Records) // Autosplit long TXT records
|
txtutil.SplitSingleLongTxt(dc.Records) // Autosplit long TXT records
|
||||||
|
|
||||||
|
return GetZoneRecordsCorrections(dc, existingRecords)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *gcloudProvider) GetZoneRecordsCorrections(dc *models.DomainConfig, existingRecords models.Records) ([]*models.Correction, error) {
|
||||||
|
|
||||||
|
// oldRRs :=
|
||||||
|
// zoneName :=
|
||||||
|
|
||||||
// first collect keys that have changed
|
// first collect keys that have changed
|
||||||
var differ diff.Differ
|
var differ diff.Differ
|
||||||
if !diff2.EnableDiff2 {
|
if !diff2.EnableDiff2 {
|
||||||
|
|||||||
Reference in New Issue
Block a user