Archived
Fix Dynu DNS record updates to use POST endpoint
This commit is contained in:
@@ -216,7 +216,7 @@ func (c *Client) CreateDNSRecord(ctx context.Context, domainID int64, req Create
|
||||
|
||||
func (c *Client) UpdateDNSRecord(ctx context.Context, domainID int64, recordID int64, req UpdateDNSRecordRequest) (*DNSRecord, error) {
|
||||
var resp getDNSRecordResponse
|
||||
if err := c.doRequest(ctx, http.MethodPut, fmt.Sprintf("/dns/%d/record/%d", domainID, recordID), buildDNSRecordUpsertPayload(req.RecordType, req.NodeName, req.Content, req.TTL, req.State, req.Group, req.Host), &resp); err != nil {
|
||||
if err := c.doRequest(ctx, http.MethodPost, fmt.Sprintf("/dns/%d/record/%d", domainID, recordID), buildDNSRecordUpsertPayload(req.RecordType, req.NodeName, req.Content, req.TTL, req.State, req.Group, req.Host), &resp); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
normalizeDNSRecord(&resp.DNSRecord)
|
||||
|
||||
@@ -200,7 +200,7 @@ func TestClientCreateDNSRecordSendsIPv4AddressForARecord(t *testing.T) {
|
||||
func TestClientUpdateDNSRecordSendsIPv6AddressForAAAARecord(t *testing.T) {
|
||||
var captured map[string]any
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPut || r.URL.Path != "/dns/1001/record/2002" {
|
||||
if r.Method != http.MethodPost || r.URL.Path != "/dns/1001/record/2002" {
|
||||
t.Fatalf("unexpected request %s %s", r.Method, r.URL.Path)
|
||||
}
|
||||
if err := json.NewDecoder(r.Body).Decode(&captured); err != nil {
|
||||
|
||||
@@ -195,7 +195,7 @@ func TestIntegrationResourceDNSRecordDynamicAStateStableAndTransitionToStatic(t
|
||||
}
|
||||
|
||||
updatePlan := state
|
||||
updatePlan.Content = types.StringValue("192.0.2.42")
|
||||
updatePlan.Content = types.StringValue("1.1.1.1")
|
||||
updatePlan.Dynamic = types.BoolValue(false)
|
||||
|
||||
plan = tfsdk.Plan{Schema: schemaResp.Schema}
|
||||
@@ -214,7 +214,7 @@ func TestIntegrationResourceDNSRecordDynamicAStateStableAndTransitionToStatic(t
|
||||
if state.Dynamic.ValueBool() {
|
||||
t.Fatalf("expected static A after setting content")
|
||||
}
|
||||
if state.Content.ValueString() != "192.0.2.42" {
|
||||
if state.Content.ValueString() != "1.1.1.1" {
|
||||
t.Fatalf("expected static content after update, got %q", state.Content.ValueString())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@ func TestParseDNSRecordIDInvalid(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestValidateDNSRecordContentForType(t *testing.T) {
|
||||
ipv4 := "192.0.2.123"
|
||||
ipv6 := "2001:db8::123"
|
||||
ipv4 := "8.8.8.8"
|
||||
ipv6 := "2606:4700:4700::1111"
|
||||
nonEmpty := "hello"
|
||||
blank := ""
|
||||
|
||||
@@ -75,7 +75,7 @@ func TestResolveDynamicIntent(t *testing.T) {
|
||||
}
|
||||
|
||||
diags = diag.Diagnostics{}
|
||||
dynamic, ok = resolveDynamicIntent("A", types.StringValue("192.0.2.10"), types.BoolNull(), &diags)
|
||||
dynamic, ok = resolveDynamicIntent("A", types.StringValue("8.8.4.4"), types.BoolNull(), &diags)
|
||||
if !ok || dynamic || diags.HasError() {
|
||||
t.Fatalf("expected static A content to resolve to dynamic=false, got dynamic=%v ok=%v diags=%v", dynamic, ok, diags)
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ func (s *Server) serveRecordRoutes(w http.ResponseWriter, r *http.Request, segme
|
||||
case http.MethodGet:
|
||||
s.handleGetRecord(w, domainID, recordID)
|
||||
return
|
||||
case http.MethodPut:
|
||||
case http.MethodPut, http.MethodPost:
|
||||
s.handleUpdateRecord(w, r, domainID, recordID)
|
||||
return
|
||||
case http.MethodDelete:
|
||||
|
||||
Reference in New Issue
Block a user