diff --git a/castai/resource_node_template_test.go b/castai/resource_node_template_test.go index bed4208f..bc9da11a 100644 --- a/castai/resource_node_template_test.go +++ b/castai/resource_node_template_test.go @@ -11,6 +11,7 @@ import ( "github.com/samber/lo" + "github.com/cenkalti/backoff/v4" "github.com/golang/mock/gomock" "github.com/hashicorp/go-cty/cty" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" @@ -581,19 +582,24 @@ func testAccCheckNodeTemplateDestroy(s *terraform.State) error { id := rs.Primary.ID clusterID := rs.Primary.Attributes["cluster_id"] - response, err := client.NodeTemplatesAPIListNodeTemplatesWithResponse(ctx, clusterID, &sdk.NodeTemplatesAPIListNodeTemplatesParams{IncludeDefault: lo.ToPtr(false)}) - if err != nil { + + if err := backoff.Retry(func() error { + response, err := client.NodeTemplatesAPIListNodeTemplatesWithResponse(ctx, clusterID, &sdk.NodeTemplatesAPIListNodeTemplatesParams{IncludeDefault: lo.ToPtr(false)}) + if err != nil { + return err + } + if response.StatusCode() == http.StatusNotFound { + return nil + } + if len(*response.JSON200.Items) == 0 { + // Should be no templates + return nil + } + + return fmt.Errorf("node template %q still exists; %v", id, string(response.GetBody())) + }, backoff.NewExponentialBackOff()); err != nil { return err } - if response.StatusCode() == http.StatusNotFound { - return nil - } - if len(*response.JSON200.Items) == 0 { - // Should be no templates - return nil - } - - return fmt.Errorf("node template %q still exists; %v", id, string(response.GetBody())) } return nil