From 7cc9ca4fd46c4885dcfbf839b489898e80e1790a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ruben=20H=C3=B6nle?= Date: Mon, 7 Apr 2025 09:17:35 +0200 Subject: [PATCH] fix(beta): remove caching of beta checks (#757) beta checks caused issues when debugging relates to STACKITTPR-206 --- .../services/serverbackup/schedule/resource.go | 14 +++----------- .../services/serverupdate/schedule/resource.go | 14 +++----------- .../services/serviceaccount/account/datasource.go | 14 +++----------- .../services/serviceaccount/account/resource.go | 14 +++----------- .../services/serviceaccount/key/resource.go | 14 +++----------- .../services/serviceaccount/token/resource.go | 14 +++----------- 6 files changed, 18 insertions(+), 66 deletions(-) diff --git a/stackit/internal/services/serverbackup/schedule/resource.go b/stackit/internal/services/serverbackup/schedule/resource.go index 3ca9bb6a..66d70ae3 100644 --- a/stackit/internal/services/serverbackup/schedule/resource.go +++ b/stackit/internal/services/serverbackup/schedule/resource.go @@ -30,11 +30,6 @@ import ( "github.com/stackitcloud/stackit-sdk-go/services/serverbackup" ) -// resourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var resourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ resource.Resource = &scheduleResource{} @@ -122,12 +117,9 @@ func (r *scheduleResource) Configure(ctx context.Context, req resource.Configure return } - if !resourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &r.providerData, &resp.Diagnostics, "stackit_server_backup_schedule", "resource") - if resp.Diagnostics.HasError() { - return - } - resourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &r.providerData, &resp.Diagnostics, "stackit_server_backup_schedule", "resource") + if resp.Diagnostics.HasError() { + return } var ( diff --git a/stackit/internal/services/serverupdate/schedule/resource.go b/stackit/internal/services/serverupdate/schedule/resource.go index 43bec451..22ce7284 100644 --- a/stackit/internal/services/serverupdate/schedule/resource.go +++ b/stackit/internal/services/serverupdate/schedule/resource.go @@ -30,11 +30,6 @@ import ( "github.com/stackitcloud/stackit-sdk-go/services/serverupdate" ) -// resourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var resourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ resource.Resource = &scheduleResource{} @@ -115,12 +110,9 @@ func (r *scheduleResource) Configure(ctx context.Context, req resource.Configure return } - if !resourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &r.providerData, &resp.Diagnostics, "stackit_server_update_schedule", "resource") - if resp.Diagnostics.HasError() { - return - } - resourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &r.providerData, &resp.Diagnostics, "stackit_server_update_schedule", "resource") + if resp.Diagnostics.HasError() { + return } var apiClient *serverupdate.APIClient diff --git a/stackit/internal/services/serviceaccount/account/datasource.go b/stackit/internal/services/serviceaccount/account/datasource.go index 9d00fdfb..07868d0c 100644 --- a/stackit/internal/services/serviceaccount/account/datasource.go +++ b/stackit/internal/services/serviceaccount/account/datasource.go @@ -17,11 +17,6 @@ import ( "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) -// dataSourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var dataSourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ datasource.DataSource = &serviceAccountDataSource{} @@ -50,12 +45,9 @@ func (r *serviceAccountDataSource) Configure(ctx context.Context, req datasource return } - if !dataSourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account", "datasource") - if resp.Diagnostics.HasError() { - return - } - dataSourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account", "datasource") + if resp.Diagnostics.HasError() { + return } var apiClient *serviceaccount.APIClient diff --git a/stackit/internal/services/serviceaccount/account/resource.go b/stackit/internal/services/serviceaccount/account/resource.go index 68d51854..522360de 100644 --- a/stackit/internal/services/serviceaccount/account/resource.go +++ b/stackit/internal/services/serviceaccount/account/resource.go @@ -24,11 +24,6 @@ import ( "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) -// resourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var resourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ resource.Resource = &serviceAccountResource{} @@ -68,12 +63,9 @@ func (r *serviceAccountResource) Configure(ctx context.Context, req resource.Con return } - if !resourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account", "resource") - if resp.Diagnostics.HasError() { - return - } - resourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account", "resource") + if resp.Diagnostics.HasError() { + return } // Initialize the API client with the appropriate authentication and endpoint settings. diff --git a/stackit/internal/services/serviceaccount/key/resource.go b/stackit/internal/services/serviceaccount/key/resource.go index 5c02c158..0ee9a36d 100644 --- a/stackit/internal/services/serviceaccount/key/resource.go +++ b/stackit/internal/services/serviceaccount/key/resource.go @@ -29,11 +29,6 @@ import ( "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) -// resourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var resourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ resource.Resource = &serviceAccountKeyResource{} @@ -76,12 +71,9 @@ func (r *serviceAccountKeyResource) Configure(ctx context.Context, req resource. return } - if !resourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account_key", "resource") - if resp.Diagnostics.HasError() { - return - } - resourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account_key", "resource") + if resp.Diagnostics.HasError() { + return } // Initialize the API client with the appropriate authentication and endpoint settings. diff --git a/stackit/internal/services/serviceaccount/token/resource.go b/stackit/internal/services/serviceaccount/token/resource.go index e4f977d7..37ea8bea 100644 --- a/stackit/internal/services/serviceaccount/token/resource.go +++ b/stackit/internal/services/serviceaccount/token/resource.go @@ -29,11 +29,6 @@ import ( "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) -// resourceBetaCheckDone is used to prevent multiple checks for beta resources. -// This is a workaround for the lack of a global state in the provider and -// needs to exist because the Configure method is called twice. -var resourceBetaCheckDone bool - // Ensure the implementation satisfies the expected interfaces. var ( _ resource.Resource = &serviceAccountTokenResource{} @@ -78,12 +73,9 @@ func (r *serviceAccountTokenResource) Configure(ctx context.Context, req resourc return } - if !resourceBetaCheckDone { - features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account_access_token", "resource") - if resp.Diagnostics.HasError() { - return - } - resourceBetaCheckDone = true + features.CheckBetaResourcesEnabled(ctx, &providerData, &resp.Diagnostics, "stackit_service_account_access_token", "resource") + if resp.Diagnostics.HasError() { + return } // Initialize the API client with the appropriate authentication and endpoint settings.