diff --git a/providers/packetframe/api.go b/providers/packetframe/api.go index 65a272cda..069d33c87 100644 --- a/providers/packetframe/api.go +++ b/providers/packetframe/api.go @@ -14,6 +14,11 @@ const ( defaultBaseURL = "https://packetframe.com/api/" ) +var defaultNameServerNames = []string{ + "ns1.packetframe.com", + "ns2.packetframe.com", +} + type zone struct { ID string `json:"id"` Zone string `json:"zone"` @@ -75,6 +80,16 @@ func (c *packetframeProvider) getRecords(zoneID string) ([]domainRecord, error) } records = append(records, dr.Data.Records...) + for i := range defaultNameServerNames { + records = append(records, domainRecord{ + Type: "NS", + TTL: 86400, + Value: defaultNameServerNames[i] + ".", + Zone: zoneID, + ID: "0", + }) + } + return records, nil } diff --git a/providers/packetframe/packetframeProvider.go b/providers/packetframe/packetframeProvider.go index 61f6712bf..1735a97c7 100644 --- a/providers/packetframe/packetframeProvider.go +++ b/providers/packetframe/packetframeProvider.go @@ -21,11 +21,6 @@ type packetframeProvider struct { domainIndex map[string]zone } -var defaultNameServerNames = []string{ - "ns1.packetframe.com", - "ns2.packetframe.com", -} - // newPacketframe creates the provider. func newPacketframe(m map[string]string, metadata json.RawMessage) (providers.DNSServiceProvider, error) { if m["token"] == "" { @@ -153,8 +148,12 @@ func (api *packetframeProvider) GetDomainCorrections(dc *models.DomainConfig) ([ for _, m := range delete { original := m.Existing.Original.(*domainRecord) + if original.ID == "0" { // Skip the default nameservers + continue + } + corr := &models.Correction{ - Msg: fmt.Sprintf("Deleting record %q from %q", original.ID, zone.Zone), + Msg: m.String(), F: func() error { err := api.deleteRecord(zone.ID, original.ID) return err @@ -165,10 +164,14 @@ func (api *packetframeProvider) GetDomainCorrections(dc *models.DomainConfig) ([ for _, m := range modify { original := m.Existing.Original.(*domainRecord) + if original.ID == "0" { // Skip the default nameservers + continue + } + req, _ := toReq(zone.ID, dc, m.Desired) req.ID = original.ID corr := &models.Correction{ - Msg: fmt.Sprintf("Modifying record %q from %q", original.ID, zone.Zone), + Msg: m.String(), F: func() error { err := api.modifyRecord(req) return err