Skip to content

Commit 035efbd

Browse files
authored
Fix replacement of mongoDB instances, make storage class require replace (#350)
* hotfix replacement of mongodb instances by adding delay to delete * improve explaining comment * increase delay time * improve comments regarding the wait timer
1 parent e48deaf commit 035efbd

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

  • stackit/internal/services/mongodbflex/instance

stackit/internal/services/mongodbflex/instance/resource.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/http"
77
"regexp"
88
"strings"
9+
"time"
910

1011
"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
1112
"github.com/hashicorp/terraform-plugin-framework/attr"
@@ -235,6 +236,9 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r
235236
Attributes: map[string]schema.Attribute{
236237
"class": schema.StringAttribute{
237238
Required: true,
239+
PlanModifiers: []planmodifier.String{
240+
stringplanmodifier.RequiresReplace(),
241+
},
238242
},
239243
"size": schema.Int64Attribute{
240244
Required: true,
@@ -520,6 +524,11 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques
520524
core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err))
521525
return
522526
}
527+
528+
// This is needed because the waiter is currently not working properly
529+
// After the get request returns 404 (instance is deleted), creating a new instance with the same name still fails for a short period of time
530+
time.Sleep(30 * time.Second)
531+
523532
tflog.Info(ctx, "MongoDB Flex instance deleted")
524533
}
525534

0 commit comments

Comments
 (0)