diff --git a/go.mod b/go.mod index 3e968917..1bac4204 100644 --- a/go.mod +++ b/go.mod @@ -11,18 +11,18 @@ require ( github.com/hashicorp/terraform-plugin-log v0.9.0 github.com/hashicorp/terraform-plugin-testing v1.5.1 github.com/stackitcloud/stackit-sdk-go/core v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/argus v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/dns v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/logme v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/redis v0.3.0 - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.2.0 - github.com/stackitcloud/stackit-sdk-go/services/ske v0.2.0 + github.com/stackitcloud/stackit-sdk-go/services/argus v0.3.0 + github.com/stackitcloud/stackit-sdk-go/services/dns v0.3.0 + github.com/stackitcloud/stackit-sdk-go/services/logme v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.3.0 + github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.3.0 + github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/redis v0.4.0 + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.3.0 + github.com/stackitcloud/stackit-sdk-go/services/ske v0.3.0 golang.org/x/mod v0.12.0 ) diff --git a/go.sum b/go.sum index 304260f4..f0aa5d50 100644 --- a/go.sum +++ b/go.sum @@ -123,30 +123,30 @@ github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= github.com/stackitcloud/stackit-sdk-go/core v0.2.0 h1:dv9pMtGN6p5HbbpaB1PjncOdDPDyP4mXfXBxk7j9x0c= github.com/stackitcloud/stackit-sdk-go/core v0.2.0/go.mod h1:Bne56SlX8V2GbONcofEmZz5lVLuuZgsc015FPIUYXy4= -github.com/stackitcloud/stackit-sdk-go/services/argus v0.2.0 h1:mc+4CigniIjKoYjxDB86iNUS6qvrKfjjhLCmFZZ+tRw= -github.com/stackitcloud/stackit-sdk-go/services/argus v0.2.0/go.mod h1:1jD+OlbQjscg5ReF3I0kCgbQVR4YzfR6V0Lz5SiXja8= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.2.0 h1:T5GlA8cDdSxG4kuq+qyUDEAINT2gb2ZwvjLSaas33WQ= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.2.0/go.mod h1:dKJZ/WKs3Wt2syz9fz58ULupa1SoXA2VH/J4PpICR+s= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.3.0 h1:Lue+9txP1VshaWiGd33bOVds+UeLdGFa9gTiKGuINYw= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.3.0/go.mod h1:CG5G3FlJVksfnhcxb8nXYAFxn4lnUBWkDMGNW+6jq2w= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.3.0 h1:dipeN36UsV01UprhM3FJDW3maJICWpGN09GrBI3M0vY= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.3.0/go.mod h1:3dOLY0zIH/o2iP/DnkM2bnQIW/Dm79XNDw3gBY5se9s= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.2.0 h1:Nf7HFWSTrD/A1ZudSSu8LaaOYN+4607D1qWNRtZuo8Y= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.2.0/go.mod h1:H0B0VBzyW90ksuG+Bu9iqOan80paw+J6Ik9AZuiz9M0= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.3.0 h1:32mjinxJ7xfdlTKShmyvfMU7BXI11DiV+W4SdkRL63o= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.3.0/go.mod h1:syCy6+8GsJu9lHyhN0Qeg66AgTv5LjlgtppbOVFIaPc= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.2.0 h1:XPvayEXRID/2Zpw9JnkP9QsYsaOpIJMVTr9veydcoUU= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.2.0/go.mod h1:9VdEzSqdXwUFnVVONag1mX73X3lbrQi5b0OlA7bbkLs= -github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.3.0 h1:svBOTZ4yOG3LFqBQbUoSkY1v4GWH9fG3VqyO5hQqGVQ= -github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.3.0/go.mod h1:GDFywqshSR/XeTFxdUaeV2HlYqVyVD9dRWr3phw94ak= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.3.0 h1:wcuc7REdvO+InxExkfaZ5azu+FKstfOlSj3m9ZCs4XI= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.3.0/go.mod h1:9vkwymnk8LDeIUKgtNrE6K+w3Rh/x6USvA0Tw6l+r/k= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.3.0 h1:9HgICoHeq0XeT1GeaaUgEeYBDQGAbSa6TIAN86jO1v4= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.3.0/go.mod h1:OzuVC+kPkhAoGxdUkIRD+CbFGWG0Ye6kfZOv7octFN4= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.2.0 h1:0N50oBc5AG6T3r7kR6TofrCyhWk0ZKaktRzVSYys9KM= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.2.0/go.mod h1:P9ZpI/G/LG0+enyEdr7zpsaikD5J085Np6IWK6dzBEk= -github.com/stackitcloud/stackit-sdk-go/services/ske v0.2.0 h1:5jAVhaLHd4ayVOCJyn5Ebpmtk4ZEIr2fYXT+cOrqjLk= -github.com/stackitcloud/stackit-sdk-go/services/ske v0.2.0/go.mod h1:pVb/CaolkqaicGbHpXWUOXk5+s731TpXbx6RMyYjV1Q= +github.com/stackitcloud/stackit-sdk-go/services/argus v0.3.0 h1:hwoTnlrD363H7Ois+7UkqmGivBrmRukPtfhFZEJT1XA= +github.com/stackitcloud/stackit-sdk-go/services/argus v0.3.0/go.mod h1:1jD+OlbQjscg5ReF3I0kCgbQVR4YzfR6V0Lz5SiXja8= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.3.0 h1:XGVY9pV9qLSgoXHCjA7WpKG8zMvdPFjyeqqGmGqGVpw= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.3.0/go.mod h1:dKJZ/WKs3Wt2syz9fz58ULupa1SoXA2VH/J4PpICR+s= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.4.0 h1:ZySWV2ZpSWY0qlV1qHAoM5/wttkD7pmticMqab+g430= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.4.0/go.mod h1:CG5G3FlJVksfnhcxb8nXYAFxn4lnUBWkDMGNW+6jq2w= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.4.0 h1:0U8sJFEeYcp9sC9ybqOo0ZM4Rco56wFk+xD4+BltthM= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.4.0/go.mod h1:3dOLY0zIH/o2iP/DnkM2bnQIW/Dm79XNDw3gBY5se9s= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.3.0 h1:gV/8X4eU1M0r/s3On2Y/OyJw/CwYceMT0iIoOxEV9s8= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.3.0/go.mod h1:H0B0VBzyW90ksuG+Bu9iqOan80paw+J6Ik9AZuiz9M0= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.4.0 h1:6Q+ArGyOQDir05pJLc0TbJBGrYyNZ2tKzNY8AGVA0SA= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.4.0/go.mod h1:syCy6+8GsJu9lHyhN0Qeg66AgTv5LjlgtppbOVFIaPc= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.3.0 h1:ycLwGv3ILcnE3M9TYOXNtPWyxXqvpRHFeNhX8kJbB8g= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.3.0/go.mod h1:9VdEzSqdXwUFnVVONag1mX73X3lbrQi5b0OlA7bbkLs= +github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.4.0 h1:yAhgEbnokGH+3wUDFD06yz9qq1Lk/06dd5E3ZOG+zhg= +github.com/stackitcloud/stackit-sdk-go/services/postgresql v0.4.0/go.mod h1:GDFywqshSR/XeTFxdUaeV2HlYqVyVD9dRWr3phw94ak= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.4.0 h1:KqOMc6lPCproZEIIx2IwhVcvFdTSxHfRnVGUWC4zxTM= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.4.0/go.mod h1:9vkwymnk8LDeIUKgtNrE6K+w3Rh/x6USvA0Tw6l+r/k= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.4.0 h1:K+C+VBCNRH90aVklWUTn8sinrP6eOX9ZddolH2rerrs= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.4.0/go.mod h1:OzuVC+kPkhAoGxdUkIRD+CbFGWG0Ye6kfZOv7octFN4= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.3.0 h1:VcMBLwARKFiEnc28ZCiRx9v6RAhIzofxAUah03Vxg/g= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.3.0/go.mod h1:P9ZpI/G/LG0+enyEdr7zpsaikD5J085Np6IWK6dzBEk= +github.com/stackitcloud/stackit-sdk-go/services/ske v0.3.0 h1:umS4cjV2jhtBUEYr/7QWpe95tDgANng1Wma4rF9k/Hk= +github.com/stackitcloud/stackit-sdk-go/services/ske v0.3.0/go.mod h1:pVb/CaolkqaicGbHpXWUOXk5+s731TpXbx6RMyYjV1Q= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= diff --git a/stackit/internal/services/argus/argus_acc_test.go b/stackit/internal/services/argus/argus_acc_test.go index 2ecd7a47..c34c7b52 100644 --- a/stackit/internal/services/argus/argus_acc_test.go +++ b/stackit/internal/services/argus/argus_acc_test.go @@ -12,6 +12,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/argus" + "github.com/stackitcloud/stackit-sdk-go/services/argus/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -337,12 +338,12 @@ func testAccCheckArgusDestroy(s *terraform.State) error { instances := *instancesResp.Instances for i := range instances { if utils.Contains(instancesToDestroy, *instances[i].Id) { - if *instances[i].Status != argus.DeleteSuccess { + if *instances[i].Status != wait.DeleteSuccess { _, err := client.DeleteInstanceExecute(ctx, testutil.ProjectId, *instances[i].Id) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].Id, err) } - _, err = argus.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].Id).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].Id).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].Id, err) } diff --git a/stackit/internal/services/argus/instance/resource.go b/stackit/internal/services/argus/instance/resource.go index 95ebb9c3..852762ef 100644 --- a/stackit/internal/services/argus/instance/resource.go +++ b/stackit/internal/services/argus/instance/resource.go @@ -19,6 +19,7 @@ import ( "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/argus" + "github.com/stackitcloud/stackit-sdk-go/services/argus/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) @@ -286,7 +287,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := argus.CreateInstanceWaitHandler(ctx, r.client, *instanceId, projectId).SetTimeout(20 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, *instanceId, projectId).SetTimeout(20 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -376,7 +377,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := argus.UpdateInstanceWaitHandler(ctx, r.client, instanceId, projectId).SetTimeout(20 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, instanceId, projectId).SetTimeout(20 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -419,7 +420,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = argus.DeleteInstanceWaitHandler(ctx, r.client, instanceId, projectId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, instanceId, projectId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/argus/scrapeconfig/resource.go b/stackit/internal/services/argus/scrapeconfig/resource.go index 381e4092..985092ef 100644 --- a/stackit/internal/services/argus/scrapeconfig/resource.go +++ b/stackit/internal/services/argus/scrapeconfig/resource.go @@ -23,6 +23,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/argus" + "github.com/stackitcloud/stackit-sdk-go/services/argus/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" @@ -286,7 +287,7 @@ func (r *scrapeConfigResource) Create(ctx context.Context, req resource.CreateRe core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating scrape config", fmt.Sprintf("Calling API: %v", err)) return } - _, err = argus.CreateScrapeConfigWaitHandler(ctx, r.client, instanceId, scName, projectId).SetTimeout(3 * time.Minute).WaitWithContext(ctx) + _, err = wait.CreateScrapeConfigWaitHandler(ctx, r.client, instanceId, scName, projectId).SetTimeout(3 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating scrape config", fmt.Sprintf("Scrape config creation waiting: %v", err)) return @@ -409,7 +410,7 @@ func (r *scrapeConfigResource) Delete(ctx context.Context, req resource.DeleteRe core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting scrape config", fmt.Sprintf("Calling API: %v", err)) return } - _, err = argus.DeleteScrapeConfigWaitHandler(ctx, r.client, instanceId, scName, projectId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteScrapeConfigWaitHandler(ctx, r.client, instanceId, scName, projectId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting scrape config", fmt.Sprintf("Scrape config deletion waiting: %v", err)) return diff --git a/stackit/internal/services/dns/dns_acc_test.go b/stackit/internal/services/dns/dns_acc_test.go index a15bdaa0..d49580df 100644 --- a/stackit/internal/services/dns/dns_acc_test.go +++ b/stackit/internal/services/dns/dns_acc_test.go @@ -12,6 +12,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/dns" + "github.com/stackitcloud/stackit-sdk-go/services/dns/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -548,7 +549,7 @@ func testAccCheckDnsDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying zone %s during CheckDestroy: %w", *zones[i].Id, err) } - _, err = dns.DeleteZoneWaitHandler(ctx, client, testutil.ProjectId, id).WaitWithContext(ctx) + _, err = wait.DeleteZoneWaitHandler(ctx, client, testutil.ProjectId, id).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying zone %s during CheckDestroy: waiting for deletion %w", *zones[i].Id, err) } diff --git a/stackit/internal/services/dns/recordset/resource.go b/stackit/internal/services/dns/recordset/resource.go index 59d455ee..4feda472 100644 --- a/stackit/internal/services/dns/recordset/resource.go +++ b/stackit/internal/services/dns/recordset/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/dns" + "github.com/stackitcloud/stackit-sdk-go/services/dns/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" @@ -236,7 +237,7 @@ func (r *recordSetResource) Create(ctx context.Context, req resource.CreateReque } ctx = tflog.SetField(ctx, "record_set_id", *recordSetResp.Rrset.Id) - wr, err := dns.CreateRecordSetWaitHandler(ctx, r.client, projectId, zoneId, *recordSetResp.Rrset.Id).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateRecordSetWaitHandler(ctx, r.client, projectId, zoneId, *recordSetResp.Rrset.Id).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating record set", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -328,7 +329,7 @@ func (r *recordSetResource) Update(ctx context.Context, req resource.UpdateReque core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating record set", err.Error()) return } - wr, err := dns.UpdateRecordSetWaitHandler(ctx, r.client, projectId, zoneId, recordSetId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateRecordSetWaitHandler(ctx, r.client, projectId, zoneId, recordSetId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating record set", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -380,7 +381,7 @@ func (r *recordSetResource) Delete(ctx context.Context, req resource.DeleteReque if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting record set", fmt.Sprintf("Calling API: %v", err)) } - _, err = dns.DeleteRecordSetWaitHandler(ctx, r.client, projectId, zoneId, recordSetId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteRecordSetWaitHandler(ctx, r.client, projectId, zoneId, recordSetId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting record set", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/dns/zone/resource.go b/stackit/internal/services/dns/zone/resource.go index 753f35f4..20af5d92 100644 --- a/stackit/internal/services/dns/zone/resource.go +++ b/stackit/internal/services/dns/zone/resource.go @@ -24,6 +24,7 @@ import ( "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/dns" + "github.com/stackitcloud/stackit-sdk-go/services/dns/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" @@ -321,7 +322,7 @@ func (r *zoneResource) Create(ctx context.Context, req resource.CreateRequest, r zoneId := *createResp.Zone.Id ctx = tflog.SetField(ctx, "zone_id", zoneId) - wr, err := dns.CreateZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating zone", fmt.Sprintf("Zone creation waiting: %v", err)) return @@ -407,7 +408,7 @@ func (r *zoneResource) Update(ctx context.Context, req resource.UpdateRequest, r core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating zone", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := dns.UpdateZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating zone", fmt.Sprintf("Zone update waiting: %v", err)) return @@ -458,7 +459,7 @@ func (r *zoneResource) Delete(ctx context.Context, req resource.DeleteRequest, r core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting zone", fmt.Sprintf("Calling API: %v", err)) return } - _, err = dns.DeleteZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteZoneWaitHandler(ctx, r.client, projectId, zoneId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting zone", fmt.Sprintf("Zone deletion waiting: %v", err)) return diff --git a/stackit/internal/services/logme/credentials/resource.go b/stackit/internal/services/logme/credentials/resource.go index 8e901939..92fc0b48 100644 --- a/stackit/internal/services/logme/credentials/resource.go +++ b/stackit/internal/services/logme/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/logme" + "github.com/stackitcloud/stackit-sdk-go/services/logme/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *credentialsResource) Create(ctx context.Context, req resource.CreateReq credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := logme.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *credentialsResource) Delete(ctx context.Context, req resource.DeleteReq if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = logme.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/logme/instance/resource.go b/stackit/internal/services/logme/instance/resource.go index 793b5866..4e84ad0c 100644 --- a/stackit/internal/services/logme/instance/resource.go +++ b/stackit/internal/services/logme/instance/resource.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/logme" + "github.com/stackitcloud/stackit-sdk-go/services/logme/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -261,7 +262,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := logme.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -370,7 +371,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := logme.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -416,7 +417,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = logme.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/logme/logme_acc_test.go b/stackit/internal/services/logme/logme_acc_test.go index 4af7a89d..4cf56321 100644 --- a/stackit/internal/services/logme/logme_acc_test.go +++ b/stackit/internal/services/logme/logme_acc_test.go @@ -11,6 +11,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/logme" + "github.com/stackitcloud/stackit-sdk-go/services/logme/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -219,7 +220,7 @@ func testAccCheckLogMeDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = logme.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } @@ -230,12 +231,12 @@ func testAccCheckLogMeDestroy(s *terraform.State) error { } func checkInstanceDeleteSuccess(i *logme.Instance) bool { - if *i.LastOperation.Type != logme.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == logme.InstanceTypeDelete { - if *i.LastOperation.State != logme.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false diff --git a/stackit/internal/services/mariadb/credentials/resource.go b/stackit/internal/services/mariadb/credentials/resource.go index f6a4192c..73cd5e56 100644 --- a/stackit/internal/services/mariadb/credentials/resource.go +++ b/stackit/internal/services/mariadb/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/mariadb" + "github.com/stackitcloud/stackit-sdk-go/services/mariadb/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *credentialsResource) Create(ctx context.Context, req resource.CreateReq credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := mariadb.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *credentialsResource) Delete(ctx context.Context, req resource.DeleteReq if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = mariadb.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/mariadb/instance/resource.go b/stackit/internal/services/mariadb/instance/resource.go index 01abf254..ab92b782 100644 --- a/stackit/internal/services/mariadb/instance/resource.go +++ b/stackit/internal/services/mariadb/instance/resource.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/mariadb" + "github.com/stackitcloud/stackit-sdk-go/services/mariadb/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -261,7 +262,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := mariadb.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -370,7 +371,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := mariadb.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -416,7 +417,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = mariadb.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/mariadb/mariadb_acc_test.go b/stackit/internal/services/mariadb/mariadb_acc_test.go index 92c9b6b2..cc445cff 100644 --- a/stackit/internal/services/mariadb/mariadb_acc_test.go +++ b/stackit/internal/services/mariadb/mariadb_acc_test.go @@ -11,6 +11,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/mariadb" + "github.com/stackitcloud/stackit-sdk-go/services/mariadb/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -218,7 +219,7 @@ func testAccCheckMariaDBDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = mariadb.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } @@ -229,12 +230,12 @@ func testAccCheckMariaDBDestroy(s *terraform.State) error { } func checkInstanceDeleteSuccess(i *mariadb.Instance) bool { - if *i.LastOperation.Type != mariadb.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == mariadb.InstanceTypeDelete { - if *i.LastOperation.State != mariadb.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false diff --git a/stackit/internal/services/objectstorage/bucket/resource.go b/stackit/internal/services/objectstorage/bucket/resource.go index 71936658..1a851d5a 100644 --- a/stackit/internal/services/objectstorage/bucket/resource.go +++ b/stackit/internal/services/objectstorage/bucket/resource.go @@ -19,6 +19,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/objectstorage" + "github.com/stackitcloud/stackit-sdk-go/services/objectstorage/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -161,7 +162,7 @@ func (r *bucketResource) Create(ctx context.Context, req resource.CreateRequest, return } - wr, err := objectstorage.CreateBucketWaitHandler(ctx, r.client, projectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateBucketWaitHandler(ctx, r.client, projectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating bucket", fmt.Sprintf("Bucket creation waiting: %v", err)) return @@ -245,7 +246,7 @@ func (r *bucketResource) Delete(ctx context.Context, req resource.DeleteRequest, if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting bucket", fmt.Sprintf("Calling API: %v", err)) } - _, err = objectstorage.DeleteBucketWaitHandler(ctx, r.client, projectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteBucketWaitHandler(ctx, r.client, projectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting bucket", fmt.Sprintf("Bucket deletion waiting: %v", err)) return diff --git a/stackit/internal/services/objectstorage/objectstorage_acc_test.go b/stackit/internal/services/objectstorage/objectstorage_acc_test.go index ba2e013c..e0631648 100644 --- a/stackit/internal/services/objectstorage/objectstorage_acc_test.go +++ b/stackit/internal/services/objectstorage/objectstorage_acc_test.go @@ -13,6 +13,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/objectstorage" + "github.com/stackitcloud/stackit-sdk-go/services/objectstorage/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -149,7 +150,7 @@ func testAccCheckObjectStorageDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying bucket %s during CheckDestroy: %w", bucketName, err) } - _, err = objectstorage.DeleteBucketWaitHandler(ctx, client, testutil.ProjectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteBucketWaitHandler(ctx, client, testutil.ProjectId, bucketName).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", bucketName, err) } diff --git a/stackit/internal/services/opensearch/credentials/resource.go b/stackit/internal/services/opensearch/credentials/resource.go index 2fdeb703..beb9669f 100644 --- a/stackit/internal/services/opensearch/credentials/resource.go +++ b/stackit/internal/services/opensearch/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/opensearch" + "github.com/stackitcloud/stackit-sdk-go/services/opensearch/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *credentialsResource) Create(ctx context.Context, req resource.CreateReq credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := opensearch.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *credentialsResource) Delete(ctx context.Context, req resource.DeleteReq if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = opensearch.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/opensearch/instance/resource.go b/stackit/internal/services/opensearch/instance/resource.go index d6a17f76..be4fbe0a 100644 --- a/stackit/internal/services/opensearch/instance/resource.go +++ b/stackit/internal/services/opensearch/instance/resource.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/opensearch" + "github.com/stackitcloud/stackit-sdk-go/services/opensearch/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -261,7 +262,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := opensearch.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -370,7 +371,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := opensearch.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -416,7 +417,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = opensearch.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/opensearch/opensearch_acc_test.go b/stackit/internal/services/opensearch/opensearch_acc_test.go index b5718556..1562bf4e 100644 --- a/stackit/internal/services/opensearch/opensearch_acc_test.go +++ b/stackit/internal/services/opensearch/opensearch_acc_test.go @@ -11,6 +11,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/opensearch" + "github.com/stackitcloud/stackit-sdk-go/services/opensearch/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -243,7 +244,7 @@ func testAccCheckOpenSearchDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = opensearch.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } @@ -254,12 +255,12 @@ func testAccCheckOpenSearchDestroy(s *terraform.State) error { } func checkInstanceDeleteSuccess(i *opensearch.Instance) bool { - if *i.LastOperation.Type != opensearch.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == opensearch.InstanceTypeDelete { - if *i.LastOperation.State != opensearch.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false diff --git a/stackit/internal/services/postgresflex/instance/resource.go b/stackit/internal/services/postgresflex/instance/resource.go index ef1f9359..4ebdb70e 100644 --- a/stackit/internal/services/postgresflex/instance/resource.go +++ b/stackit/internal/services/postgresflex/instance/resource.go @@ -25,6 +25,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/postgresflex" + "github.com/stackitcloud/stackit-sdk-go/services/postgresflex/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -288,7 +289,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.Id ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := postgresflex.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -420,7 +421,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", err.Error()) return } - wr, err := postgresflex.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -465,7 +466,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = postgresflex.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/postgresflex/postgresflex_acc_test.go b/stackit/internal/services/postgresflex/postgresflex_acc_test.go index 0bd4267f..054bbee4 100644 --- a/stackit/internal/services/postgresflex/postgresflex_acc_test.go +++ b/stackit/internal/services/postgresflex/postgresflex_acc_test.go @@ -13,6 +13,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/postgresflex" + "github.com/stackitcloud/stackit-sdk-go/services/postgresflex/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -314,7 +315,7 @@ func testAccCheckPostgresFlexDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *items[i].Id, err) } - _, err = postgresflex.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *items[i].Id).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *items[i].Id).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *items[i].Id, err) } diff --git a/stackit/internal/services/postgresflex/user/resource.go b/stackit/internal/services/postgresflex/user/resource.go index a72eda55..c4296ea7 100644 --- a/stackit/internal/services/postgresflex/user/resource.go +++ b/stackit/internal/services/postgresflex/user/resource.go @@ -24,6 +24,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/postgresflex" + "github.com/stackitcloud/stackit-sdk-go/services/postgresflex/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -303,7 +304,7 @@ func (r *userResource) Delete(ctx context.Context, req resource.DeleteRequest, r if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting user", fmt.Sprintf("Calling API: %v", err)) } - _, err = postgresflex.DeleteUserWaitHandler(ctx, r.client, projectId, instanceId, userId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteUserWaitHandler(ctx, r.client, projectId, instanceId, userId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting user", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/postgresql/credentials/resource.go b/stackit/internal/services/postgresql/credentials/resource.go index af9a3533..8a58eaaf 100644 --- a/stackit/internal/services/postgresql/credentials/resource.go +++ b/stackit/internal/services/postgresql/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/postgresql" + "github.com/stackitcloud/stackit-sdk-go/services/postgresql/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *credentialsResource) Create(ctx context.Context, req resource.CreateReq credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := postgresql.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *credentialsResource) Delete(ctx context.Context, req resource.DeleteReq if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = postgresql.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/postgresql/instance/resource.go b/stackit/internal/services/postgresql/instance/resource.go index 1f33900e..7d71e9bb 100644 --- a/stackit/internal/services/postgresql/instance/resource.go +++ b/stackit/internal/services/postgresql/instance/resource.go @@ -23,6 +23,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/postgresql" + "github.com/stackitcloud/stackit-sdk-go/services/postgresql/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -302,7 +303,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := postgresql.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -447,7 +448,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := postgresql.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -516,7 +517,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = postgresql.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/postgresql/postgresql_acc_test.go b/stackit/internal/services/postgresql/postgresql_acc_test.go index 85071f2b..06a12ac7 100644 --- a/stackit/internal/services/postgresql/postgresql_acc_test.go +++ b/stackit/internal/services/postgresql/postgresql_acc_test.go @@ -11,6 +11,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/postgresql" + "github.com/stackitcloud/stackit-sdk-go/services/postgresql/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -228,7 +229,7 @@ func testAccCheckPostgreSQLDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = postgresql.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } @@ -239,12 +240,12 @@ func testAccCheckPostgreSQLDestroy(s *terraform.State) error { } func checkInstanceDeleteSuccess(i *postgresql.Instance) bool { - if *i.LastOperation.Type != postgresql.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == postgresql.InstanceTypeDelete { - if *i.LastOperation.State != postgresql.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false diff --git a/stackit/internal/services/rabbitmq/credentials/resource.go b/stackit/internal/services/rabbitmq/credentials/resource.go index 1f34e0e6..d9104a27 100644 --- a/stackit/internal/services/rabbitmq/credentials/resource.go +++ b/stackit/internal/services/rabbitmq/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq" + "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *credentialsResource) Create(ctx context.Context, req resource.CreateReq credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := rabbitmq.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *credentialsResource) Delete(ctx context.Context, req resource.DeleteReq if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = rabbitmq.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/rabbitmq/instance/resource.go b/stackit/internal/services/rabbitmq/instance/resource.go index 4a7ef4f4..a5384384 100644 --- a/stackit/internal/services/rabbitmq/instance/resource.go +++ b/stackit/internal/services/rabbitmq/instance/resource.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq" + "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -261,7 +262,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := rabbitmq.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -370,7 +371,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := rabbitmq.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -416,7 +417,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = rabbitmq.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go b/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go index 93fcf346..9f067332 100644 --- a/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go +++ b/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go @@ -12,6 +12,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq" + "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -264,7 +265,7 @@ func testAccCheckRabbitMQDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = rabbitmq.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } @@ -275,12 +276,12 @@ func testAccCheckRabbitMQDestroy(s *terraform.State) error { } func checkInstanceDeleteSuccess(i *rabbitmq.Instance) bool { - if *i.LastOperation.Type != rabbitmq.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == rabbitmq.InstanceTypeDelete { - if *i.LastOperation.State != rabbitmq.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false diff --git a/stackit/internal/services/redis/credentials/resource.go b/stackit/internal/services/redis/credentials/resource.go index 44acd619..0dff7b1b 100644 --- a/stackit/internal/services/redis/credentials/resource.go +++ b/stackit/internal/services/redis/credentials/resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/redis" + "github.com/stackitcloud/stackit-sdk-go/services/redis/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -207,7 +208,7 @@ func (r *redisCredentialsResource) Create(ctx context.Context, req resource.Crea credentialsId := *credentialsResp.Id ctx = tflog.SetField(ctx, "credentials_id", credentialsId) - wr, err := redis.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credentials", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -296,7 +297,7 @@ func (r *redisCredentialsResource) Delete(ctx context.Context, req resource.Dele if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Calling API: %v", err)) } - _, err = redis.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialsId).SetTimeout(1 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credentials", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/redis/instance/resource.go b/stackit/internal/services/redis/instance/resource.go index ec5342ed..6911c777 100644 --- a/stackit/internal/services/redis/instance/resource.go +++ b/stackit/internal/services/redis/instance/resource.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/redis" + "github.com/stackitcloud/stackit-sdk-go/services/redis/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -261,7 +262,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } instanceId := *createResp.InstanceId ctx = tflog.SetField(ctx, "instance_id", instanceId) - wr, err := redis.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -370,7 +371,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return } - wr, err := redis.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + wr, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -416,7 +417,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return } - _, err = redis.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/redis/redis_acc_test.go b/stackit/internal/services/redis/redis_acc_test.go index 470efcd9..fa654bd4 100644 --- a/stackit/internal/services/redis/redis_acc_test.go +++ b/stackit/internal/services/redis/redis_acc_test.go @@ -12,6 +12,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/redis" + "github.com/stackitcloud/stackit-sdk-go/services/redis/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -224,12 +225,12 @@ func TestAccRedisResource(t *testing.T) { } func checkInstanceDeleteSuccess(i *redis.Instance) bool { - if *i.LastOperation.Type != redis.InstanceTypeDelete { + if *i.LastOperation.Type != wait.InstanceTypeDelete { return false } - if *i.LastOperation.Type == redis.InstanceTypeDelete { - if *i.LastOperation.State != redis.InstanceStateSuccess { + if *i.LastOperation.Type == wait.InstanceTypeDelete { + if *i.LastOperation.State != wait.InstanceStateSuccess { return false } else if strings.Contains(*i.LastOperation.Description, "DeleteFailed") || strings.Contains(*i.LastOperation.Description, "failed") { return false @@ -279,7 +280,7 @@ func testAccCheckRedisDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *instances[i].InstanceId, err) } - _, err = redis.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *instances[i].InstanceId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *instances[i].InstanceId, err) } diff --git a/stackit/internal/services/resourcemanager/project/resource.go b/stackit/internal/services/resourcemanager/project/resource.go index 7681221c..dfbf59af 100644 --- a/stackit/internal/services/resourcemanager/project/resource.go +++ b/stackit/internal/services/resourcemanager/project/resource.go @@ -24,6 +24,7 @@ import ( "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager" + "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -206,7 +207,7 @@ func (r *projectResource) Create(ctx context.Context, req resource.CreateRequest // If the request has not been processed yet and the containerId doesnt exist, // the waiter will fail with authentication error, so wait some time before checking the creation - wr, err := resourcemanager.CreateProjectWaitHandler(ctx, r.client, respContainerId).SetSleepBeforeWait(1 * time.Minute).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateProjectWaitHandler(ctx, r.client, respContainerId).SetSleepBeforeWait(1 * time.Minute).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating project", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -328,7 +329,7 @@ func (r *projectResource) Delete(ctx context.Context, req resource.DeleteRequest return } - _, err = resourcemanager.DeleteProjectWaitHandler(ctx, r.client, containerId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteProjectWaitHandler(ctx, r.client, containerId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting project", fmt.Sprintf("Instance deletion waiting: %v", err)) return diff --git a/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go b/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go index cd32540a..76dda43e 100644 --- a/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go +++ b/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go @@ -11,6 +11,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager" + "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -160,7 +161,7 @@ func testAccCheckResourceManagerDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying project %s during CheckDestroy: %w", *items[i].ContainerId, err) } - _, err = resourcemanager.DeleteProjectWaitHandler(ctx, client, *items[i].ContainerId).WaitWithContext(ctx) + _, err = wait.DeleteProjectWaitHandler(ctx, client, *items[i].ContainerId).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying project %s during CheckDestroy: waiting for deletion %w", *items[i].ContainerId, err) } diff --git a/stackit/internal/services/ske/cluster/resource.go b/stackit/internal/services/ske/cluster/resource.go index b053f910..b4e406fb 100644 --- a/stackit/internal/services/ske/cluster/resource.go +++ b/stackit/internal/services/ske/cluster/resource.go @@ -29,6 +29,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/ske" + "github.com/stackitcloud/stackit-sdk-go/services/ske/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" @@ -574,7 +575,7 @@ func (r *clusterResource) createOrUpdateCluster(ctx context.Context, diags *diag return } - wr, err := ske.CreateOrUpdateClusterWaitHandler(ctx, r.client, projectId, name).SetTimeout(30 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateOrUpdateClusterWaitHandler(ctx, r.client, projectId, name).SetTimeout(30 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, diags, "Error creating/updating cluster", fmt.Sprintf("Cluster creation waiting: %v", err)) return @@ -584,7 +585,7 @@ func (r *clusterResource) createOrUpdateCluster(ctx context.Context, diags *diag core.LogAndAddError(ctx, diags, "Error creating/updating cluster", fmt.Sprintf("Wait result conversion, got %+v", wr)) return } - if got.Status.Error != nil && got.Status.Error.Message != nil && *got.Status.Error.Code == ske.InvalidArgusInstanceErrorCode { + if got.Status.Error != nil && got.Status.Error.Message != nil && *got.Status.Error.Code == wait.InvalidArgusInstanceErrorCode { core.LogAndAddWarning(ctx, diags, "Warning during creating/updating cluster", fmt.Sprintf("Cluster is in Impaired state due to an invalid argus instance id, the cluster is usable but metrics won't be forwarded: %s", *got.Status.Error.Message)) } @@ -1148,7 +1149,7 @@ func (r *clusterResource) Delete(ctx context.Context, req resource.DeleteRequest core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting cluster", fmt.Sprintf("Calling API: %v", err)) return } - _, err = ske.DeleteClusterWaitHandler(ctx, r.client, projectId, name).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteClusterWaitHandler(ctx, r.client, projectId, name).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting cluster", fmt.Sprintf("Cluster deletion waiting: %v", err)) return diff --git a/stackit/internal/services/ske/project/resource.go b/stackit/internal/services/ske/project/resource.go index 21c18ce9..71367278 100644 --- a/stackit/internal/services/ske/project/resource.go +++ b/stackit/internal/services/ske/project/resource.go @@ -16,6 +16,7 @@ import ( "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/ske" + "github.com/stackitcloud/stackit-sdk-go/services/ske/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) @@ -124,7 +125,7 @@ func (r *projectResource) Create(ctx context.Context, req resource.CreateRequest } model.Id = types.StringValue(projectId) - wr, err := ske.CreateProjectWaitHandler(ctx, r.client, projectId).SetTimeout(5 * time.Minute).WaitWithContext(ctx) + wr, err := wait.CreateProjectWaitHandler(ctx, r.client, projectId).SetTimeout(5 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating cluster", fmt.Sprintf("Project creation waiting: %v", err)) return @@ -188,7 +189,7 @@ func (r *projectResource) Delete(ctx context.Context, req resource.DeleteRequest core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credential", fmt.Sprintf("Calling API: %v", err)) return } - _, err = ske.DeleteProjectWaitHandler(ctx, r.client, projectId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteProjectWaitHandler(ctx, r.client, projectId).SetTimeout(10 * time.Minute).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credential", fmt.Sprintf("Project deletion waiting: %v", err)) return diff --git a/stackit/internal/services/ske/ske_acc_test.go b/stackit/internal/services/ske/ske_acc_test.go index c8532f1a..cdf6aeec 100644 --- a/stackit/internal/services/ske/ske_acc_test.go +++ b/stackit/internal/services/ske/ske_acc_test.go @@ -14,6 +14,7 @@ import ( oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/ske" + "github.com/stackitcloud/stackit-sdk-go/services/ske/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -533,7 +534,7 @@ func testAccCheckSKEDestroy(s *terraform.State) error { if err != nil { return fmt.Errorf("destroying project %s during CheckDestroy: %w", projectId, err) } - _, err = ske.DeleteProjectWaitHandler(ctx, client, projectId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) + _, err = wait.DeleteProjectWaitHandler(ctx, client, projectId).SetTimeout(15 * time.Minute).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying project %s during CheckDestroy: waiting for deletion %w", projectId, err) }