Skip to content

Commit c97d5a1

Browse files
authored
Merge pull request #86 from pan-net/revert-74-addNSUpdateSupport
Revert "Add ns update support"
2 parents b26c0eb + d398ecd commit c97d5a1

File tree

1 file changed

+6
-52
lines changed

1 file changed

+6
-52
lines changed

powerdns/resource_powerdns_zone.go

Lines changed: 6 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func resourcePDNSZone() *schema.Resource {
4949
Type: schema.TypeSet,
5050
Elem: &schema.Schema{Type: schema.TypeString},
5151
Optional: true,
52+
ForceNew: true,
5253
},
5354

5455
"masters": {
@@ -140,7 +141,7 @@ func resourcePDNSZoneRead(d *schema.ResourceData, meta interface{}) error {
140141
d.Set("account", zoneInfo.Account)
141142
d.Set("soa_edit_api", zoneInfo.SoaEditAPI)
142143

143-
if zoneInfo.Kind != "Slave" && len(d.Get("nameservers").(*schema.Set).List()) > 0 {
144+
if zoneInfo.Kind != "Slave" {
144145
nameservers, err := client.ListRecordsInRRSet(zoneInfo.Name, zoneInfo.Name, "NS")
145146
if err != nil {
146147
return fmt.Errorf("couldn't fetch zone %s nameservers from PowerDNS: %v", zoneInfo.Name, err)
@@ -167,62 +168,15 @@ func resourcePDNSZoneUpdate(d *schema.ResourceData, meta interface{}) error {
167168
client := meta.(*Client)
168169

169170
zoneInfo := ZoneInfo{}
171+
shouldUpdate := false
170172
if d.HasChange("kind") {
171173
zoneInfo.Kind = d.Get("kind").(string)
172-
c := client.UpdateZone(d.Id(), zoneInfo)
173-
174-
if c != nil {
175-
return c
176-
}
174+
shouldUpdate = true
177175
}
178176

179-
if d.HasChange("nameservers") {
180-
nameservers := d.Get("nameservers").(*schema.Set).List()
181-
zone := d.Get("name").(string)
182-
183-
if len(nameservers) > 0 {
184-
nsTTL := 0
185-
nsRecords, _ := client.ListRecordsInRRSet(zone, zone, "NS")
186-
187-
if len(nsRecords) > 0 {
188-
nsTTL = nsRecords[0].TTL
189-
} else {
190-
soaRecord, _ := client.ListRecordsInRRSet(zone, zone, "SOA")
191-
nsTTL = soaRecord[0].TTL
192-
}
193-
194-
rrSet := ResourceRecordSet{
195-
Name: d.Get("name").(string),
196-
Type: "NS",
197-
TTL: nsTTL,
198-
}
199-
200-
records := make([]Record, 0, len(nameservers))
201-
for _, recContent := range nameservers {
202-
records = append(records,
203-
Record{Name: rrSet.Name,
204-
Type: rrSet.Type,
205-
TTL: nsTTL,
206-
Content: recContent.(string),
207-
SetPtr: false})
208-
}
209-
210-
rrSet.Records = records
211-
212-
log.Printf("[DEBUG] Updating PowerDNS NS Record: %#v", rrSet)
213-
214-
_, err := client.ReplaceRecordSet(d.Get("name").(string), rrSet)
215-
if err != nil {
216-
return fmt.Errorf("Failed to update PowerDNS NS Record: %s", err)
217-
}
218-
} else {
219-
err := client.DeleteRecordSet(zone, zone, "NS")
220-
if err != nil {
221-
return fmt.Errorf("Failed to remove PowerDNS NS Record: %s", err)
222-
}
223-
}
177+
if shouldUpdate {
178+
return client.UpdateZone(d.Id(), zoneInfo)
224179
}
225-
resourcePDNSZoneRead(d, meta)
226180
return nil
227181
}
228182

0 commit comments

Comments
 (0)