mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
Refactoring diff package interface (#22)
* initial refactoring of diffing * making cloudflare and others compile * gandi and gcloud. no idea if gandi works anymore. * r53 * namedotcom wasn't working.
This commit is contained in:
@@ -104,7 +104,7 @@ func (g *gcloud) GetDomainCorrections(dc *models.DomainConfig) ([]*models.Correc
|
||||
return nil, err
|
||||
}
|
||||
//convert to dnscontrol RecordConfig format
|
||||
existingRecords := []diff.Record{}
|
||||
existingRecords := []*models.RecordConfig{}
|
||||
oldRRs := map[key]*dns.ResourceRecordSet{}
|
||||
for _, set := range rrs {
|
||||
nameWithoutDot := set.Name
|
||||
@@ -123,11 +123,7 @@ func (g *gcloud) GetDomainCorrections(dc *models.DomainConfig) ([]*models.Correc
|
||||
}
|
||||
}
|
||||
|
||||
w := []diff.Record{}
|
||||
for _, want := range dc.Records {
|
||||
if want.TTL == 0 {
|
||||
want.TTL = 300
|
||||
}
|
||||
if want.Type == "MX" {
|
||||
want.Target = fmt.Sprintf("%d %s", want.Priority, want.Target)
|
||||
want.Priority = 0
|
||||
@@ -135,24 +131,24 @@ func (g *gcloud) GetDomainCorrections(dc *models.DomainConfig) ([]*models.Correc
|
||||
//add quotes to txts
|
||||
want.Target = fmt.Sprintf(`"%s"`, want.Target)
|
||||
}
|
||||
w = append(w, want)
|
||||
}
|
||||
|
||||
// first collect keys that have changed
|
||||
_, create, delete, modify := diff.IncrementalDiff(existingRecords, w)
|
||||
differ := diff.New(dc)
|
||||
_, create, delete, modify := differ.IncrementalDiff(existingRecords)
|
||||
changedKeys := map[key]bool{}
|
||||
desc := ""
|
||||
for _, c := range create {
|
||||
desc += fmt.Sprintln(c)
|
||||
changedKeys[keyForRec(c.Desired.(*models.RecordConfig))] = true
|
||||
changedKeys[keyForRec(c.Desired)] = true
|
||||
}
|
||||
for _, d := range delete {
|
||||
desc += fmt.Sprintln(d)
|
||||
changedKeys[keyForRec(d.Existing.(*models.RecordConfig))] = true
|
||||
changedKeys[keyForRec(d.Existing)] = true
|
||||
}
|
||||
for _, m := range modify {
|
||||
desc += fmt.Sprintln(m)
|
||||
changedKeys[keyForRec(m.Existing.(*models.RecordConfig))] = true
|
||||
changedKeys[keyForRec(m.Existing)] = true
|
||||
}
|
||||
if len(changedKeys) == 0 {
|
||||
return nil, nil
|
||||
|
Reference in New Issue
Block a user