diff --git a/stackit/internal/services/alb/alb_acc_test.go b/stackit/internal/services/alb/alb_acc_test.go index 27a04c41e..361e9ad79 100644 --- a/stackit/internal/services/alb/alb_acc_test.go +++ b/stackit/internal/services/alb/alb_acc_test.go @@ -15,7 +15,6 @@ import ( "github.com/stackitcloud/stackit-sdk-go/services/alb/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/alb" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" @@ -149,7 +148,7 @@ func TestAccALBResourceMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.ALBProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance resource resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -187,7 +186,7 @@ func TestAccALBResourceMin(t *testing.T) { name = stackit_application_load_balancer.loadbalancer.name } `, - testutil.ALBProviderConfig()+resourceMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance @@ -284,7 +283,7 @@ func TestAccALBResourceMin(t *testing.T) { // Update { ConfigVariables: configVarsMinUpdated(), - Config: testutil.ALBProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "name", testutil.ConvertConfigVariable(testConfigVarsMin["loadbalancer_name"])), @@ -325,7 +324,7 @@ func TestAccALBResourceMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.ALBProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance resource resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -420,7 +419,7 @@ func TestAccALBResourceMax(t *testing.T) { name = stackit_application_load_balancer.loadbalancer.name } `, - testutil.ALBProviderConfig()+resourceMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance @@ -529,7 +528,7 @@ func TestAccALBResourceMax(t *testing.T) { // Update { ConfigVariables: configVarsMaxUpdated(), - Config: testutil.ALBProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_application_load_balancer.loadbalancer", "region", testutil.ConvertConfigVariable(testConfigVarsMax["region"])), @@ -621,15 +620,7 @@ func TestAccALBResourceMax(t *testing.T) { func testAccCheckALBDestroy(s *terraform.State) error { ctx := context.Background() - var client *alb.APIClient - var err error - if testutil.ALBCustomEndpoint == "" { - client, err = alb.NewAPIClient() - } else { - client, err = alb.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ALBCustomEndpoint), - ) - } + client, err := alb.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ALBCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/authorization/authorization_acc_test.go b/stackit/internal/services/authorization/authorization_acc_test.go index 274d7f0d6..66eda5ddd 100644 --- a/stackit/internal/services/authorization/authorization_acc_test.go +++ b/stackit/internal/services/authorization/authorization_acc_test.go @@ -16,7 +16,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/authorization" "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager" @@ -147,7 +146,7 @@ func TestAccProjectRoleAssignmentResource(t *testing.T) { // Creation { ConfigVariables: testConfigVarsProjectRoleAssignment, - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceProjectRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceProjectRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.project", "name", testutil.ConvertConfigVariable(testConfigVarsProjectRoleAssignment["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.project", "owner_email", testutil.ConvertConfigVariable(testConfigVarsProjectRoleAssignment["owner_email"])), @@ -194,7 +193,7 @@ func TestAccProjectRoleAssignmentResource(t *testing.T) { // Update { ConfigVariables: testConfigVarsProjectRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceProjectRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceProjectRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.project", "name", testutil.ConvertConfigVariable(testConfigVarsProjectRoleAssignmentUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.project", "owner_email", testutil.ConvertConfigVariable(testConfigVarsProjectRoleAssignmentUpdated()["owner_email"])), @@ -214,7 +213,7 @@ func TestAccProjectRoleAssignmentResource(t *testing.T) { // Duplicate assignment should fail { ConfigVariables: testConfigVarsProjectRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceProjectRoleAssignmentDuplicate, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceProjectRoleAssignmentDuplicate, ExpectError: regexp.MustCompile(`Error while checking for duplicate role assignments`), }, @@ -233,7 +232,7 @@ func TestAccFolderRoleAssignmentResource(t *testing.T) { // Creation { ConfigVariables: testConfigVarsFolderRoleAssignment, - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceFolderRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceFolderRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.folder", "name", testutil.ConvertConfigVariable(testConfigVarsFolderRoleAssignment["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.folder", "owner_email", testutil.ConvertConfigVariable(testConfigVarsFolderRoleAssignment["owner_email"])), @@ -280,7 +279,7 @@ func TestAccFolderRoleAssignmentResource(t *testing.T) { // Update { ConfigVariables: testConfigVarsFolderRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceFolderRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceFolderRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.folder", "name", testutil.ConvertConfigVariable(testConfigVarsFolderRoleAssignmentUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.folder", "owner_email", testutil.ConvertConfigVariable(testConfigVarsFolderRoleAssignmentUpdated()["owner_email"])), @@ -300,7 +299,7 @@ func TestAccFolderRoleAssignmentResource(t *testing.T) { // Duplicate assignment should fail { ConfigVariables: testConfigVarsFolderRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceFolderRoleAssignmentDuplicate, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceFolderRoleAssignmentDuplicate, ExpectError: regexp.MustCompile(`Error while checking for duplicate role assignments`), }, // Deletion is done by the framework implicitly @@ -318,7 +317,7 @@ func TestAccOrgRoleAssignmentResource(t *testing.T) { // Creation { ConfigVariables: testConfigVarsOrgRoleAssignment, - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceOrgRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceOrgRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_authorization_organization_role_assignment.ora", "resource_id"), resource.TestCheckResourceAttrSet("stackit_authorization_organization_role_assignment.ora", "id"), @@ -356,7 +355,7 @@ func TestAccOrgRoleAssignmentResource(t *testing.T) { // Update { ConfigVariables: testConfigVarsOrgRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceOrgRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceOrgRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_authorization_organization_role_assignment.ora", "resource_id"), resource.TestCheckResourceAttrSet("stackit_authorization_organization_role_assignment.ora", "id"), @@ -367,7 +366,7 @@ func TestAccOrgRoleAssignmentResource(t *testing.T) { // Duplicate assignment should fail { ConfigVariables: testConfigVarsOrgRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceOrgRoleAssignmentDuplicate, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceOrgRoleAssignmentDuplicate, ExpectError: regexp.MustCompile(`Error while checking for duplicate role assignments`), }, // Deletion is done by the framework implicitly @@ -384,7 +383,7 @@ func TestAccServiceAccountRoleAssignmentResource(t *testing.T) { // Creation { ConfigVariables: testConfigVarsServiceAccountRoleAssignment, - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceServiceAccountRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceServiceAccountRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_authorization_service_account_role_assignment.sa", "resource_id"), resource.TestCheckResourceAttrSet("stackit_authorization_service_account_role_assignment.sa", "id"), @@ -412,7 +411,7 @@ func TestAccServiceAccountRoleAssignmentResource(t *testing.T) { // Update { ConfigVariables: testConfigVarsServiceAccountRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceServiceAccountRoleAssignment, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceServiceAccountRoleAssignment, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_authorization_service_account_role_assignment.sa", "resource_id"), resource.TestCheckResourceAttrSet("stackit_authorization_service_account_role_assignment.sa", "id"), @@ -426,7 +425,7 @@ func TestAccServiceAccountRoleAssignmentResource(t *testing.T) { // Duplicate assignment should fail { ConfigVariables: testConfigVarsServiceAccountRoleAssignmentUpdated(), - Config: testutil.AuthorizationProviderConfig() + "\n" + resourceServiceAccountRoleAssignmentDuplicate, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + "\n" + resourceServiceAccountRoleAssignmentDuplicate, ExpectError: regexp.MustCompile(`Error while checking for duplicate role assignments`), }, // Deletion is done by the framework implicitly @@ -441,7 +440,7 @@ func TestAccProjectCustomRoleResource(t *testing.T) { Steps: []resource.TestStep{ { ConfigVariables: testConfigVarsCustomRole, - Config: testutil.AuthorizationProviderConfig() + resourceCustomRole, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + resourceCustomRole, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_authorization_project_custom_role.custom_role", "resource_id", testutil.ConvertConfigVariable(testConfigVarsCustomRole["project_id"])), resource.TestCheckResourceAttr("stackit_authorization_project_custom_role.custom_role", "name", testutil.ConvertConfigVariable(testConfigVarsCustomRole["role_name"])), @@ -462,7 +461,7 @@ func TestAccProjectCustomRoleResource(t *testing.T) { role_id = stackit_authorization_project_custom_role.custom_role.role_id } `, - testutil.AuthorizationProviderConfig()+resourceCustomRole, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig()+resourceCustomRole, ), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_authorization_project_custom_role.custom_role", "resource_id", testutil.ConvertConfigVariable(testConfigVarsCustomRole["project_id"])), @@ -510,7 +509,7 @@ func TestAccProjectCustomRoleResource(t *testing.T) { // Update { ConfigVariables: testConfigVarsCustomRoleUpdated, - Config: testutil.AuthorizationProviderConfig() + resourceCustomRole, + Config: testutil.NewConfigBuilder().Experiments(testutil.ExperimentIAM).BuildProviderConfig() + resourceCustomRole, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_authorization_project_custom_role.custom_role", "resource_id", testutil.ConvertConfigVariable(testConfigVarsCustomRoleUpdated["project_id"])), resource.TestCheckResourceAttr("stackit_authorization_project_custom_role.custom_role", "name", testutil.ConvertConfigVariable(testConfigVarsCustomRoleUpdated["role_name"])), @@ -553,15 +552,7 @@ func testAccCheckDestroy(s *terraform.State) error { func testAccCheckResourceManagerProjectsDestroy(s *terraform.State) error { ctx := context.Background() - var client *resourcemanager.APIClient - var err error - if testutil.ResourceManagerCustomEndpoint == "" { - client, err = resourcemanager.NewAPIClient() - } else { - client, err = resourcemanager.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ResourceManagerCustomEndpoint), - ) - } + client, err := resourcemanager.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ResourceManagerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -609,15 +600,7 @@ func testAccCheckResourceManagerProjectsDestroy(s *terraform.State) error { func testAccCheckResourceManagerFoldersDestroy(s *terraform.State) error { ctx := context.Background() - var client *resourcemanager.APIClient - var err error - if testutil.ResourceManagerCustomEndpoint == "" { - client, err = resourcemanager.NewAPIClient() - } else { - client, err = resourcemanager.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ResourceManagerCustomEndpoint), - ) - } + client, err := resourcemanager.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ResourceManagerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -658,15 +641,7 @@ func testAccCheckResourceManagerFoldersDestroy(s *terraform.State) error { func testAccCheckOrganizationRoleAssignmentDestroy(s *terraform.State) error { ctx := context.Background() - var client *authorization.APIClient - var err error - if testutil.AuthorizationCustomEndpoint == "" { - client, err = authorization.NewAPIClient() - } else { - client, err = authorization.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.AuthorizationCustomEndpoint), - ) - } + client, err := authorization.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.AuthorizationCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -705,15 +680,7 @@ func testAccCheckOrganizationRoleAssignmentDestroy(s *terraform.State) error { func testAccCheckServiceAccountRoleAssignmentDestroy(s *terraform.State) error { ctx := context.Background() - var client *authorization.APIClient - var err error - if testutil.AuthorizationCustomEndpoint == "" { - client, err = authorization.NewAPIClient() - } else { - client, err = authorization.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.AuthorizationCustomEndpoint), - ) - } + client, err := authorization.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.AuthorizationCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/cdn/cdn_acc_test.go b/stackit/internal/services/cdn/cdn_acc_test.go index 9cc560a4c..ecf4cf4ac 100644 --- a/stackit/internal/services/cdn/cdn_acc_test.go +++ b/stackit/internal/services/cdn/cdn_acc_test.go @@ -18,7 +18,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/cdn" "github.com/stackitcloud/stackit-sdk-go/services/cdn/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -86,7 +85,7 @@ func configResources(regions string, geofencingCountries []string, blockedCountr type = "CNAME" records = ["${stackit_cdn_distribution.distribution.domains[0].name}."] } - `, testutil.CdnProviderConfig(), testutil.ProjectId, instanceResource["config_backend_origin_url"], instanceResource["config_backend_origin_url"], geofencingList, + `, testutil.NewConfigBuilder().BuildProviderConfig(), testutil.ProjectId, instanceResource["config_backend_origin_url"], instanceResource["config_backend_origin_url"], geofencingList, regions, blockedCountriesConfig, testutil.ProjectId, instanceResource["dns_name"], testutil.ProjectId, instanceResource["custom_domain_prefix"]) } @@ -401,7 +400,7 @@ func configBucketResources(bucketName, credentialsGroupName string) string { } } } - `, testutil.CdnProviderConfig(), + `, testutil.NewConfigBuilder().BuildProviderConfig(), testutil.ProjectId, bucketName, testutil.ProjectId, credentialsGroupName, testutil.ProjectId, @@ -536,15 +535,7 @@ func TestAccCDNDistributionBucketResource(t *testing.T) { } func testAccCheckCDNDistributionDestroy(s *terraform.State) error { ctx := context.Background() - var client *cdn.APIClient - var err error - if testutil.MongoDBFlexCustomEndpoint == "" { - client, err = cdn.NewAPIClient() - } else { - client, err = cdn.NewAPIClient( - config.WithEndpoint(testutil.MongoDBFlexCustomEndpoint), - ) - } + client, err := cdn.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.CdnCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -614,7 +605,7 @@ func blockUntilDomainResolves(domain string) (net.IP, error) { func retry[T any](attempts int, sleep time.Duration, f func() (T, error)) (T, error) { var zero T var errOuter error - for i := 0; i < attempts; i++ { + for range attempts { dist, err := f() if err == nil { return dist, nil diff --git a/stackit/internal/services/dns/dns_acc_test.go b/stackit/internal/services/dns/dns_acc_test.go index 849cf320c..a039c282e 100644 --- a/stackit/internal/services/dns/dns_acc_test.go +++ b/stackit/internal/services/dns/dns_acc_test.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" dns "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api" @@ -510,15 +509,7 @@ func TestAccDnsMaxResource(t *testing.T) { func testAccCheckDnsDestroy(s *terraform.State) error { ctx := context.Background() - var client *dns.APIClient - var err error - if testutil.DnsCustomEndpoint == "" { - client, err = dns.NewAPIClient() - } else { - client, err = dns.NewAPIClient( - core_config.WithEndpoint(testutil.DnsCustomEndpoint), - ) - } + client, err := dns.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.DnsCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/edgecloud/edge_acc_test.go b/stackit/internal/services/edgecloud/edge_acc_test.go index ac5f54ebd..282a106b3 100644 --- a/stackit/internal/services/edgecloud/edge_acc_test.go +++ b/stackit/internal/services/edgecloud/edge_acc_test.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - coreConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" "github.com/stackitcloud/stackit-sdk-go/services/edge" "github.com/stackitcloud/stackit-sdk-go/services/edge/wait" @@ -70,12 +69,12 @@ func TestAccEdgeCloudInstanceMin(t *testing.T) { Steps: []resource.TestStep{ // resources { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // instance resource.TestCheckResourceAttr("stackit_edgecloud_instance.test_instance", "project_id", testutil.ProjectId), - // testutil.Region is also used in testutils.EdgeCloudProviderConfig to define a default_region + // testutil.region is also used in testutils.EdgeCloudProviderConfig to define a default_region // this checks that this is successfully used for the resource, even if no region is specifically set resource.TestCheckResourceAttr("stackit_edgecloud_instance.test_instance", "region", testutil.Region), resource.TestCheckResourceAttr("stackit_edgecloud_instance.test_instance", "display_name", minTestName), @@ -97,7 +96,7 @@ func TestAccEdgeCloudInstanceMin(t *testing.T) { // data sources { ConfigVariables: testConfigVarsMin, - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_edgecloud_instances.this", "id", fmt.Sprintf("%s,%s", testutil.ProjectId, @@ -140,7 +139,7 @@ func TestAccEdgeCloudMax(t *testing.T) { Steps: []resource.TestStep{ // Creation { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: initialVars, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_edgecloud_instance.test_instance", "project_id", testutil.ProjectId), @@ -156,7 +155,7 @@ func TestAccEdgeCloudMax(t *testing.T) { // Data sources { ConfigVariables: initialVars, - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_edgecloud_instances.this", "id", fmt.Sprintf("%s,%s", testutil.ProjectId, @@ -178,7 +177,7 @@ func TestAccEdgeCloudMax(t *testing.T) { }, // Kubeconfig { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: initialVars, Check: resource.ComposeAggregateTestCheckFunc( // Kubeconfig by name @@ -204,7 +203,7 @@ func TestAccEdgeCloudMax(t *testing.T) { }, // Token { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: initialVars, Check: resource.ComposeAggregateTestCheckFunc( // Token by name @@ -230,7 +229,7 @@ func TestAccEdgeCloudMax(t *testing.T) { }, // Update { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: updatedVars, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_edgecloud_instance.test_instance", "plan_id", testPlanIdUpdated), @@ -269,19 +268,19 @@ func TestAccEdgeCloudInstance_validation(t *testing.T) { Steps: []resource.TestStep{ // Display Name Too Short { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: configVarsMax(tooShortDisplayName, testPlanId, testDescription, testExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(fmt.Sprintf(`string length must be between 4 and 8, got: %d`, len(tooShortDisplayName))), }, // Display Name Too Long { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: configVarsMax(tooLongDisplayName, testPlanId, testDescription, testExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(fmt.Sprintf(`string length must be between 4 and 8, got: %d`, len(tooLongDisplayName))), }, // Invalid Project ID { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: config.Variables{ "project_id": config.StringVariable(invalidUUID), "region": config.StringVariable(testutil.Region), @@ -292,13 +291,13 @@ func TestAccEdgeCloudInstance_validation(t *testing.T) { }, // Invalid Plan ID { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: configVarsMax(validDisplayName, invalidUUID, testDescription, testExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(fmt.Sprintf(`Attribute plan_id value must be an UUID, got: %s`, invalidUUID)), }, // Description Too Long { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: configVarsMax(validDisplayName, testPlanId, acctest.RandString(257), testExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(`Attribute description string length must be at most 256`), }, @@ -316,13 +315,13 @@ func TestAccEdgeCloudKubeconfigToken_validation(t *testing.T) { Steps: []resource.TestStep{ // Expiration too short { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: configVarsMax(displayName, testPlanId, testDescription, tooShortExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(fmt.Sprintf(`Attribute expiration value must be between 600 and 15552000, got: %d`, tooShortExpiration)), }, // Expiration Too Long { - Config: testutil.EdgeCloudProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: configVarsMax(displayName, testPlanId, testDescription, tooLongExpiration, testRecreateBefore), ExpectError: regexp.MustCompile(fmt.Sprintf(`Attribute expiration value must be between 600 and 15552000, got: %d`, tooLongExpiration)), }, @@ -333,14 +332,7 @@ func TestAccEdgeCloudKubeconfigToken_validation(t *testing.T) { // testAccCheckEdgeCloudInstanceDestroy verifies that test resources are properly destroyed func testAccCheckEdgeCloudInstanceDestroy(s *terraform.State) error { ctx := context.Background() - var client *edge.APIClient - var err error - - if testutil.EdgeCloudCustomEndpoint != "" { - client, err = edge.NewAPIClient(coreConfig.WithEndpoint(testutil.EdgeCloudCustomEndpoint)) - } else { - client, err = edge.NewAPIClient() - } + client, err := edge.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.EdgeCloudCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/git/git_acc_test.go b/stackit/internal/services/git/git_acc_test.go index a4a87d00d..d34ca745a 100644 --- a/stackit/internal/services/git/git_acc_test.go +++ b/stackit/internal/services/git/git_acc_test.go @@ -12,7 +12,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/git" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -71,7 +70,7 @@ func TestAccGitMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.GitProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_git.git", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), resource.TestCheckResourceAttr("stackit_git.git", "name", testutil.ConvertConfigVariable(testConfigVarsMin["name"])), @@ -94,7 +93,7 @@ func TestAccGitMin(t *testing.T) { project_id = stackit_git.git.project_id instance_id = stackit_git.git.instance_id } - `, testutil.GitProviderConfig()+resourceMin, + `, testutil.NewConfigBuilder().BuildProviderConfig()+resourceMin, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -158,7 +157,7 @@ func TestAccGitMin(t *testing.T) { // Update { ConfigVariables: testConfigVarsMinUpdated(), - Config: testutil.GitProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_git.git", "project_id", testutil.ConvertConfigVariable(testConfigVarsMinUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_git.git", "name", testutil.ConvertConfigVariable(testConfigVarsMinUpdated()["name"])), @@ -184,7 +183,7 @@ func TestAccGitMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.GitProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_git.git", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_git.git", "name", testutil.ConvertConfigVariable(testConfigVarsMax["name"])), @@ -208,7 +207,7 @@ func TestAccGitMax(t *testing.T) { project_id = stackit_git.git.project_id instance_id = stackit_git.git.instance_id } - `, testutil.GitProviderConfig()+resourceMax, + `, testutil.NewConfigBuilder().BuildProviderConfig()+resourceMax, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -276,7 +275,7 @@ func TestAccGitMax(t *testing.T) { // Update { ConfigVariables: testConfigVarsMaxUpdated(), - Config: testutil.GitProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_git.git", "project_id", testutil.ConvertConfigVariable(testConfigVarsMaxUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_git.git", "name", testutil.ConvertConfigVariable(testConfigVarsMaxUpdated()["name"])), @@ -297,16 +296,7 @@ func TestAccGitMax(t *testing.T) { func testAccCheckGitInstanceDestroy(s *terraform.State) error { ctx := context.Background() - var client *git.APIClient - var err error - - if testutil.GitCustomEndpoint == "" { - client, err = git.NewAPIClient() - } else { - client, err = git.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.GitCustomEndpoint), - ) - } + client, err := git.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.GitCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) diff --git a/stackit/internal/services/iaas/iaas_acc_test.go b/stackit/internal/services/iaas/iaas_acc_test.go index 8290ac5d1..a92aa9757 100644 --- a/stackit/internal/services/iaas/iaas_acc_test.go +++ b/stackit/internal/services/iaas/iaas_acc_test.go @@ -20,7 +20,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/iaas" @@ -648,7 +647,7 @@ func TestAccNetworkMin(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMinConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_network.network", "network_id"), resource.TestCheckResourceAttr("stackit_network.network", "project_id", testutil.ConvertConfigVariable(testConfigNetworkVarsMin["project_id"])), @@ -674,7 +673,7 @@ func TestAccNetworkMin(t *testing.T) { network_id = stackit_network.network.network_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMinConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("data.stackit_network.network", "network_id"), @@ -721,7 +720,7 @@ func TestAccNetworkMin(t *testing.T) { // Update { ConfigVariables: testConfigNetworkVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMinConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_network.network", "network_id"), resource.TestCheckResourceAttr("stackit_network.network", "project_id", testutil.ConvertConfigVariable(testConfigNetworkVarsMinUpdated["project_id"])), @@ -748,7 +747,7 @@ func TestAccNetworkMax(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network with prefix resource.TestCheckResourceAttrSet("stackit_network.network_prefix", "network_id"), @@ -836,7 +835,7 @@ func TestAccNetworkMax(t *testing.T) { routing_table_id = stackit_routing_table.routing_table.routing_table_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMaxConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Network with prefix @@ -988,7 +987,7 @@ func TestAccNetworkMax(t *testing.T) { // Update { ConfigVariables: testConfigNetworkVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceNetworkMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceNetworkMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("stackit_network.network_prefix", "network_id"), resource.TestCheckResourceAttrPair( @@ -1065,7 +1064,7 @@ func TestAccNetworkAreaMin(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkAreaVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area.network_area", "organization_id", testutil.ConvertConfigVariable(testConfigNetworkAreaVarsMin["organization_id"])), @@ -1086,7 +1085,7 @@ func TestAccNetworkAreaMin(t *testing.T) { network_area_id = stackit_network_area.network_area.network_area_id } `, - testutil.IaaSProviderConfig(), resourceNetworkAreaMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Network Area @@ -1121,7 +1120,7 @@ func TestAccNetworkAreaMin(t *testing.T) { // Update { ConfigVariables: testConfigNetworkAreaVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area.network_area", "organization_id", testutil.ConvertConfigVariable(testConfigNetworkAreaVarsMinUpdated["organization_id"])), @@ -1144,7 +1143,7 @@ func TestAccNetworkAreaMax(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkAreaVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area.network_area", "organization_id", testutil.ConvertConfigVariable(testConfigNetworkAreaVarsMax["organization_id"])), @@ -1195,7 +1194,7 @@ func TestAccNetworkAreaMax(t *testing.T) { network_area_route_id = stackit_network_area_route.network_area_route.network_area_route_id } `, - testutil.IaaSProviderConfig(), resourceNetworkAreaMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Network Area @@ -1291,7 +1290,7 @@ func TestAccNetworkAreaMax(t *testing.T) { // Update { ConfigVariables: testConfigNetworkAreaVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area.network_area", "organization_id", testutil.ConvertConfigVariable(testConfigNetworkAreaVarsMaxUpdated["organization_id"])), @@ -1338,7 +1337,7 @@ func TestAccNetworkAreaRegionMin(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkAreaRegionVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_network_area.network_area", plancheck.ResourceActionCreate), @@ -1374,7 +1373,7 @@ func TestAccNetworkAreaRegionMin(t *testing.T) { network_area_id = stackit_network_area_region.network_area_region.network_area_id } `, - testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMinConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -1419,7 +1418,7 @@ func TestAccNetworkAreaRegionMin(t *testing.T) { // Update { ConfigVariables: testConfigNetworkAreaRegionVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_network_area.network_area", plancheck.ResourceActionNoop), @@ -1456,7 +1455,7 @@ func TestAccNetworkAreaRegionMax(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkAreaRegionVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_network_area.network_area", plancheck.ResourceActionCreate), @@ -1493,7 +1492,7 @@ func TestAccNetworkAreaRegionMax(t *testing.T) { network_area_id = stackit_network_area_region.network_area_region.network_area_id } `, - testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMaxConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -1540,7 +1539,7 @@ func TestAccNetworkAreaRegionMax(t *testing.T) { // Update { ConfigVariables: testConfigNetworkAreaRegionVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkAreaRegionMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkAreaRegionMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_network_area.network_area", plancheck.ResourceActionNoop), @@ -1579,7 +1578,7 @@ func TestAccVolumeMin(t *testing.T) { // Creation { ConfigVariables: testConfigVolumeVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceVolumeMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Volume size resource.TestCheckResourceAttr("stackit_volume.volume_size", "project_id", testutil.ConvertConfigVariable(testConfigVolumeVarsMin["project_id"])), @@ -1626,7 +1625,7 @@ func TestAccVolumeMin(t *testing.T) { volume_id = stackit_volume.volume_source.volume_id } `, - testutil.IaaSProviderConfig(), resourceVolumeMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Volume size @@ -1698,7 +1697,7 @@ func TestAccVolumeMin(t *testing.T) { // Update { ConfigVariables: testConfigVolumeVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceVolumeMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Volume size resource.TestCheckResourceAttr("stackit_volume.volume_size", "project_id", testutil.ConvertConfigVariable(testConfigVolumeVarsMinUpdated["project_id"])), @@ -1743,7 +1742,7 @@ func TestAccVolumeMax(t *testing.T) { // Creation { ConfigVariables: testConfigVolumeVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceVolumeMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Volume size resource.TestCheckResourceAttr("stackit_volume.volume_size", "project_id", testutil.ConvertConfigVariable(testConfigVolumeVarsMax["project_id"])), @@ -1894,7 +1893,7 @@ func TestAccVolumeMax(t *testing.T) { volume_id = stackit_volume.volume_encrypted_with_write_only_key_payload.volume_id } `, - testutil.IaaSProviderConfig(), resourceVolumeMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Volume size @@ -2095,7 +2094,7 @@ func TestAccVolumeMax(t *testing.T) { // Update { ConfigVariables: testConfigVolumeVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceVolumeMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceVolumeMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Volume size resource.TestCheckResourceAttr("stackit_volume.volume_size", "project_id", testutil.ConvertConfigVariable(testConfigVolumeVarsMaxUpdated["project_id"])), @@ -2226,7 +2225,7 @@ func TestAccServerMin(t *testing.T) { // Creation { ConfigVariables: testConfigServerVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceServerMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Server resource.TestCheckResourceAttr("stackit_server.server", "project_id", testutil.ConvertConfigVariable(testConfigServerVarsMin["project_id"])), @@ -2269,7 +2268,7 @@ func TestAccServerMin(t *testing.T) { server_id = stackit_server.server.server_id } `, - testutil.IaaSProviderConfig(), resourceServerMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Server @@ -2331,7 +2330,7 @@ func TestAccServerMin(t *testing.T) { // Update { ConfigVariables: testConfigServerVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceServerMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Server resource.TestCheckResourceAttr("stackit_server.server", "project_id", testutil.ConvertConfigVariable(testConfigServerVarsMinUpdated["project_id"])), @@ -2376,7 +2375,7 @@ func TestAccServerMax(t *testing.T) { // Creation { ConfigVariables: testConfigServerVarsMax, - Config: fmt.Sprintf("%s\n%s\n%s", testutil.IaaSProviderConfig(), resourceServerMaxConfig, resourceServerMaxAttachmentConfig), + Config: fmt.Sprintf("%s\n%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMaxConfig, resourceServerMaxAttachmentConfig), Check: resource.ComposeAggregateTestCheckFunc( // Affinity group resource.TestCheckResourceAttr("stackit_affinity_group.affinity_group", "project_id", testutil.ConvertConfigVariable(testConfigServerVarsMax["project_id"])), @@ -2515,7 +2514,7 @@ func TestAccServerMax(t *testing.T) { server_id = stackit_server.server.server_id } `, - testutil.IaaSProviderConfig(), resourceServerMaxConfig, resourceServerMaxAttachmentConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMaxConfig, resourceServerMaxAttachmentConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Server @@ -2762,7 +2761,7 @@ func TestAccServerMax(t *testing.T) { // Update { ConfigVariables: testConfigServerVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceServerMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Affinity group resource.TestCheckResourceAttr("stackit_affinity_group.affinity_group", "project_id", testutil.ConvertConfigVariable(testConfigServerVarsMaxUpdated["project_id"])), @@ -2867,7 +2866,7 @@ func TestAccServerMax(t *testing.T) { // Updated desired status { ConfigVariables: testConfigServerVarsMaxUpdatedDesiredStatus, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceServerMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceServerMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Affinity group resource.TestCheckResourceAttr("stackit_affinity_group.affinity_group", "project_id", testutil.ConvertConfigVariable(testConfigServerVarsMaxUpdatedDesiredStatus["project_id"])), @@ -2983,7 +2982,7 @@ func TestAccAffinityGroupMin(t *testing.T) { // Creation { ConfigVariables: testConfigAffinityGroupVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceAffinityGroupMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceAffinityGroupMinConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_affinity_group.affinity_group", "project_id", testutil.ConvertConfigVariable(testConfigAffinityGroupVarsMin["project_id"])), resource.TestCheckResourceAttrSet("stackit_affinity_group.affinity_group", "affinity_group_id"), @@ -3004,7 +3003,7 @@ func TestAccAffinityGroupMin(t *testing.T) { affinity_group_id = stackit_affinity_group.affinity_group.affinity_group_id } `, - testutil.IaaSProviderConfig(), resourceAffinityGroupMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceAffinityGroupMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_affinity_group.affinity_group", "project_id", testutil.ConvertConfigVariable(testConfigAffinityGroupVarsMin["project_id"])), @@ -3049,7 +3048,7 @@ func TestAccIaaSSecurityGroupMin(t *testing.T) { // Creation { ConfigVariables: testConfigSecurityGroupsVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceSecurityGroupMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Security Group resource.TestCheckResourceAttr("stackit_security_group.security_group", "project_id", testutil.ConvertConfigVariable(testConfigSecurityGroupsVarsMin["project_id"])), @@ -3088,7 +3087,7 @@ func TestAccIaaSSecurityGroupMin(t *testing.T) { security_group_rule_id = stackit_security_group_rule.security_group_rule.security_group_rule_id } `, - testutil.IaaSProviderConfig(), resourceSecurityGroupMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -3154,7 +3153,7 @@ func TestAccIaaSSecurityGroupMin(t *testing.T) { // Update { ConfigVariables: testConfigSecurityGroupsVarsMinUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceSecurityGroupMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Security Group resource.TestCheckResourceAttr("stackit_security_group.security_group", "project_id", testutil.ConvertConfigVariable(testConfigSecurityGroupsVarsMinUpdated()["project_id"])), @@ -3190,7 +3189,7 @@ func TestAccIaaSSecurityGroupMax(t *testing.T) { // Creation { ConfigVariables: testConfigSecurityGroupsVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceSecurityGroupMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Security Group (default) resource.TestCheckResourceAttr("stackit_security_group.security_group", "project_id", testutil.ConvertConfigVariable(testConfigSecurityGroupsVarsMax["project_id"])), @@ -3294,7 +3293,7 @@ func TestAccIaaSSecurityGroupMax(t *testing.T) { security_group_rule_id = stackit_security_group_rule.security_group_rule_remote_security_group.security_group_rule_id } `, - testutil.IaaSProviderConfig(), resourceSecurityGroupMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Security Group (default) @@ -3462,7 +3461,7 @@ func TestAccIaaSSecurityGroupMax(t *testing.T) { // Update { ConfigVariables: testConfigSecurityGroupsVarsMaxUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceSecurityGroupMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceSecurityGroupMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Security Group (default) resource.TestCheckResourceAttr("stackit_security_group.security_group", "project_id", testutil.ConvertConfigVariable(testConfigSecurityGroupsVarsMaxUpdated()["project_id"])), @@ -3545,7 +3544,7 @@ func TestAccNetworkInterfaceMin(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkInterfaceVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkInterfaceMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkInterfaceMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network interface instance resource.TestCheckNoResourceAttr("stackit_network_interface.network_interface", "name"), @@ -3602,7 +3601,7 @@ func TestAccNetworkInterfaceMin(t *testing.T) { public_ip_id = stackit_public_ip.public_ip.public_ip_id } `, - testutil.IaaSProviderConfig(), resourceNetworkInterfaceMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkInterfaceMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Network interface instance @@ -3710,7 +3709,7 @@ func TestAccNetworkInterfaceMax(t *testing.T) { // Creation { ConfigVariables: testConfigNetworkInterfaceVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkInterfaceMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkInterfaceMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network interface instance resource.TestCheckResourceAttr("stackit_network_interface.network_interface", "project_id", testutil.ConvertConfigVariable(testConfigNetworkInterfaceVarsMax["project_id"])), @@ -3814,7 +3813,7 @@ func TestAccNetworkInterfaceMax(t *testing.T) { public_ip_id = stackit_public_ip.public_ip_simple.public_ip_id } `, - testutil.IaaSProviderConfig(), resourceNetworkInterfaceMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkInterfaceMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Network interface instance @@ -4024,7 +4023,7 @@ func TestAccNetworkInterfaceMax(t *testing.T) { // Update { ConfigVariables: testConfigNetworkInterfaceVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceNetworkInterfaceMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceNetworkInterfaceMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network interface instance resource.TestCheckResourceAttr("stackit_network_interface.network_interface", "project_id", testutil.ConvertConfigVariable(testConfigNetworkInterfaceVarsMaxUpdated["project_id"])), @@ -4102,7 +4101,7 @@ func TestAccKeyPairMin(t *testing.T) { // Creation { ConfigVariables: testConfigKeyPairMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceKeyPairMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyPairMinConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "name", testutil.ConvertConfigVariable(testConfigKeyPairMin["name"])), resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "public_key", testutil.ConvertConfigVariable(testConfigKeyPairMin["public_key"])), @@ -4120,7 +4119,7 @@ func TestAccKeyPairMin(t *testing.T) { name = stackit_key_pair.key_pair.name } `, - testutil.IaaSProviderConfig(), resourceKeyPairMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyPairMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -4166,7 +4165,7 @@ func TestAccKeyPairMax(t *testing.T) { // Creation { ConfigVariables: testConfigKeyPairMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceKeyPairMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyPairMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "name", testutil.ConvertConfigVariable(testConfigKeyPairMax["name"])), resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "public_key", testutil.ConvertConfigVariable(testConfigKeyPairMax["public_key"])), @@ -4185,7 +4184,7 @@ func TestAccKeyPairMax(t *testing.T) { name = stackit_key_pair.key_pair.name } `, - testutil.IaaSProviderConfig(), resourceKeyPairMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyPairMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -4219,7 +4218,7 @@ func TestAccKeyPairMax(t *testing.T) { }, { ConfigVariables: testConfigKeyPairMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfig(), resourceKeyPairMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyPairMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "name", testutil.ConvertConfigVariable(testConfigKeyPairMaxUpdated["name"])), resource.TestCheckResourceAttr("stackit_key_pair.key_pair", "public_key", testutil.ConvertConfigVariable(testConfigKeyPairMaxUpdated["public_key"])), @@ -4242,7 +4241,7 @@ func TestAccImageMin(t *testing.T) { // Creation { ConfigVariables: testConfigImageVarsMin, - Config: fmt.Sprintf("%s\n%s", resourceImageMinConfig, testutil.IaaSProviderConfig()), + Config: fmt.Sprintf("%s\n%s", resourceImageMinConfig, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_image.image", "project_id", testutil.ConvertConfigVariable(testConfigImageVarsMin["project_id"])), resource.TestCheckResourceAttrSet("stackit_image.image", "image_id"), @@ -4269,7 +4268,7 @@ func TestAccImageMin(t *testing.T) { image_id = stackit_image.image.image_id } `, - resourceImageMinConfig, testutil.IaaSProviderConfig(), + resourceImageMinConfig, testutil.NewConfigBuilder().BuildProviderConfig(), ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -4310,7 +4309,7 @@ func TestAccImageMin(t *testing.T) { // Update { ConfigVariables: testConfigImageVarsMinUpdated, - Config: fmt.Sprintf("%s\n%s", resourceImageMinConfig, testutil.IaaSProviderConfig()), + Config: fmt.Sprintf("%s\n%s", resourceImageMinConfig, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_image.image", "project_id", testutil.ConvertConfigVariable(testConfigImageVarsMinUpdated["project_id"])), resource.TestCheckResourceAttrSet("stackit_image.image", "image_id"), @@ -4340,7 +4339,7 @@ func TestAccImageMax(t *testing.T) { // Creation { ConfigVariables: testConfigImageVarsMax, - Config: fmt.Sprintf("%s\n%s", resourceImageMaxConfig, testutil.IaaSProviderConfig()), + Config: fmt.Sprintf("%s\n%s", resourceImageMaxConfig, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_image.image", "project_id", testutil.ConvertConfigVariable(testConfigImageVarsMax["project_id"])), resource.TestCheckResourceAttrSet("stackit_image.image", "image_id"), @@ -4383,7 +4382,7 @@ func TestAccImageMax(t *testing.T) { image_id = stackit_image.image.image_id } `, - resourceImageMaxConfig, testutil.IaaSProviderConfig(), + resourceImageMaxConfig, testutil.NewConfigBuilder().BuildProviderConfig(), ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -4440,7 +4439,7 @@ func TestAccImageMax(t *testing.T) { // Update { ConfigVariables: testConfigImageVarsMaxUpdated, - Config: fmt.Sprintf("%s\n%s", resourceImageMaxConfig, testutil.IaaSProviderConfig()), + Config: fmt.Sprintf("%s\n%s", resourceImageMaxConfig, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_image.image", "project_id", testutil.ConvertConfigVariable(testConfigImageVarsMaxUpdated["project_id"])), resource.TestCheckResourceAttrSet("stackit_image.image", "image_id"), @@ -4484,7 +4483,7 @@ func TestAccImageDatasourceSearchVariants(t *testing.T) { // Creation { ConfigVariables: config.Variables{"project_id": config.StringVariable(testutil.ProjectId)}, - Config: fmt.Sprintf("%s\n%s", dataSourceImageVariants, testutil.IaaSProviderConfigWithBetaResourcesEnabled()), + Config: fmt.Sprintf("%s\n%s", dataSourceImageVariants, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_image_v2.name_match_ubuntu_22_04", "project_id", testutil.ConvertConfigVariable(testConfigImageVarsMax["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_image_v2.name_match_ubuntu_22_04", "image_id"), @@ -4611,7 +4610,7 @@ func TestAccDatasourcePublicIpRanges(t *testing.T) { // Read { ConfigVariables: config.Variables{}, - Config: fmt.Sprintf("%s\n%s", datasourcePublicIpRanges, testutil.IaaSProviderConfig()), + Config: fmt.Sprintf("%s\n%s", datasourcePublicIpRanges, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("data.stackit_public_ip_ranges.example", "id"), resource.TestCheckResourceAttrSet("data.stackit_public_ip_ranges.example", "public_ip_ranges.0.cidr"), @@ -4637,7 +4636,7 @@ func TestAccProject(t *testing.T) { project_id = %q } `, - testutil.IaaSProviderConfig(), testutil.ProjectId, + testutil.NewConfigBuilder().BuildProviderConfig(), testutil.ProjectId, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -4662,7 +4661,7 @@ func TestAccMachineType(t *testing.T) { Steps: []resource.TestStep{ { ConfigVariables: testConfigMachineTypeVars, - Config: fmt.Sprintf("%s\n%s", dataSourceMachineTypeConfig, testutil.IaaSProviderConfigWithBetaResourcesEnabled()), + Config: fmt.Sprintf("%s\n%s", dataSourceMachineTypeConfig, testutil.NewConfigBuilder().BuildProviderConfig()), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_machine_type.two_vcpus_filter", "project_id", testutil.ConvertConfigVariable(testConfigMachineTypeVars["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_machine_type.two_vcpus_filter", "id"), @@ -4702,7 +4701,7 @@ func TestAccRoutingTableMin(t *testing.T) { // Creation { ConfigVariables: testConfigRoutingTableMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_routing_table.routing_table", plancheck.ResourceActionCreate), @@ -4763,7 +4762,7 @@ func TestAccRoutingTableMin(t *testing.T) { network_area_id = stackit_network_area.network_area.network_area_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMinConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMinConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -4850,7 +4849,7 @@ func TestAccRoutingTableMin(t *testing.T) { // Update { ConfigVariables: testConfigRoutingTableMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_routing_table.routing_table", plancheck.ResourceActionUpdate), @@ -4887,7 +4886,7 @@ func TestAccRoutingTableMax(t *testing.T) { // Creation { ConfigVariables: testConfigRoutingTableMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_routing_table.routing_table", plancheck.ResourceActionCreate), @@ -4947,7 +4946,7 @@ func TestAccRoutingTableMax(t *testing.T) { network_area_id = stackit_routing_table.routing_table.network_area_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMaxConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMaxConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -5036,7 +5035,7 @@ func TestAccRoutingTableMax(t *testing.T) { // Update { ConfigVariables: testConfigRoutingTableMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_routing_table.routing_table", plancheck.ResourceActionUpdate), @@ -5074,7 +5073,7 @@ func TestAccRoutingTableRouteMin(t *testing.T) { // Creation { ConfigVariables: testConfigRoutingTableRouteMin, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area_region.network_area_region", "organization_id", testutil.ConvertConfigVariable(testConfigRoutingTableRouteMin["organization_id"])), @@ -5143,7 +5142,7 @@ func TestAccRoutingTableRouteMin(t *testing.T) { routing_table_id = stackit_routing_table_route.route.routing_table_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMinConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Routing table route @@ -5227,7 +5226,7 @@ func TestAccRoutingTableRouteMin(t *testing.T) { // Update { ConfigVariables: testConfigRoutingTableRouteMinUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMinConfig), Check: resource.ComposeAggregateTestCheckFunc( // Routing table resource.TestCheckResourceAttr("stackit_routing_table.routing_table", "organization_id", testutil.ConvertConfigVariable(testConfigRoutingTableRouteMinUpdated["organization_id"])), @@ -5272,7 +5271,7 @@ func TestAccRoutingTableRouteMax(t *testing.T) { // Creation { ConfigVariables: testConfigRoutingTableRouteMax, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Network Area resource.TestCheckResourceAttr("stackit_network_area_region.network_area_region", "organization_id", testutil.ConvertConfigVariable(testConfigRoutingTableRouteMax["organization_id"])), @@ -5342,7 +5341,7 @@ func TestAccRoutingTableRouteMax(t *testing.T) { routing_table_id = stackit_routing_table_route.route.routing_table_id } `, - testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMaxConfig, + testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Routing table route @@ -5428,7 +5427,7 @@ func TestAccRoutingTableRouteMax(t *testing.T) { // Update { ConfigVariables: testConfigRoutingTableRouteMaxUpdated, - Config: fmt.Sprintf("%s\n%s", testutil.IaaSProviderConfigWithExperiments(), resourceRoutingTableRouteMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().Experiments(testutil.ExperimentNetwork, testutil.ExperimentRoutingTables).BuildProviderConfig(), resourceRoutingTableRouteMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Routing table resource.TestCheckResourceAttr("stackit_routing_table.routing_table", "organization_id", testutil.ConvertConfigVariable(testConfigRoutingTableRouteMaxUpdated["organization_id"])), @@ -5502,15 +5501,7 @@ func testAccCheckDestroy(s *terraform.State) error { func testAccCheckNetworkDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5544,15 +5535,7 @@ func testAccCheckNetworkDestroy(s *terraform.State) error { func testAccCheckNetworkInterfaceDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5587,15 +5570,7 @@ func testAccCheckNetworkInterfaceDestroy(s *terraform.State) error { func testAccCheckNetworkAreaRegionDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5632,15 +5607,7 @@ func testAccCheckNetworkAreaRegionDestroy(s *terraform.State) error { func testAccCheckNetworkAreaDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5677,15 +5644,7 @@ func testAccCheckNetworkAreaDestroy(s *terraform.State) error { func testAccCheckIaaSVolumeDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5722,21 +5681,9 @@ func testAccCheckIaaSVolumeDestroy(s *terraform.State) error { func testAccCheckServerDestroy(s *terraform.State) error { ctx := context.Background() - var alphaClient *iaas.APIClient - var client *iaas.APIClient - var err error - var alphaErr error - if testutil.IaaSCustomEndpoint == "" { - alphaClient, alphaErr = iaas.NewAPIClient() - client, err = iaas.NewAPIClient() - } else { - alphaClient, alphaErr = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - client, err = iaas.NewAPIClient() - } - if err != nil || alphaErr != nil { - return fmt.Errorf("creating client: %w, %w", err, alphaErr) + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) + if err != nil { + return fmt.Errorf("creating client: %w", err) } // Servers @@ -5751,7 +5698,7 @@ func testAccCheckServerDestroy(s *terraform.State) error { serversToDestroy = append(serversToDestroy, serverId) } - serversResp, err := alphaClient.ListServersExecute(ctx, testutil.ProjectId, testutil.Region) + serversResp, err := client.ListServersExecute(ctx, testutil.ProjectId, testutil.Region) if err != nil { return fmt.Errorf("getting serversResp: %w", err) } @@ -5762,7 +5709,7 @@ func testAccCheckServerDestroy(s *terraform.State) error { continue } if utils.Contains(serversToDestroy, *servers[i].Id) { - err := alphaClient.DeleteServerExecute(ctx, testutil.ProjectId, testutil.Region, *servers[i].Id) + err := client.DeleteServerExecute(ctx, testutil.ProjectId, testutil.Region, *servers[i].Id) if err != nil { return fmt.Errorf("destroying server %s during CheckDestroy: %w", *servers[i].Id, err) } @@ -5804,15 +5751,7 @@ func testAccCheckServerDestroy(s *terraform.State) error { func testAccCheckAffinityGroupDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5849,15 +5788,7 @@ func testAccCheckAffinityGroupDestroy(s *terraform.State) error { func testAccCheckIaaSSecurityGroupDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5894,15 +5825,7 @@ func testAccCheckIaaSSecurityGroupDestroy(s *terraform.State) error { func testAccCheckIaaSPublicIpDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5939,15 +5862,7 @@ func testAccCheckIaaSPublicIpDestroy(s *terraform.State) error { func testAccCheckIaaSKeyPairDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -5983,16 +5898,7 @@ func testAccCheckIaaSKeyPairDestroy(s *terraform.State) error { func testAccCheckIaaSImageDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -6029,15 +5935,7 @@ func testAccCheckIaaSImageDestroy(s *terraform.State) error { func testAccCheckRoutingTableDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -6068,15 +5966,7 @@ func testAccCheckRoutingTableDestroy(s *terraform.State) error { func testAccCheckRoutingTableRouteDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.IaaSCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/kms/kms_acc_test.go b/stackit/internal/services/kms/kms_acc_test.go index bea3e4523..f338d8dc6 100644 --- a/stackit/internal/services/kms/kms_acc_test.go +++ b/stackit/internal/services/kms/kms_acc_test.go @@ -12,7 +12,6 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/plancheck" - coreConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" "github.com/stackitcloud/stackit-sdk-go/services/kms" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -170,7 +169,7 @@ func TestAccKeyRingMin(t *testing.T) { // Creation { ConfigVariables: testConfigKeyRingVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyRingMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -196,7 +195,7 @@ func TestAccKeyRingMin(t *testing.T) { keyring_id = stackit_kms_keyring.keyring.keyring_id } `, - testutil.KMSProviderConfig(), resourceKeyRingMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMinConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -236,7 +235,7 @@ func TestAccKeyRingMin(t *testing.T) { // Update { ConfigVariables: testConfigKeyRingVarsMinUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyRingMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionReplace), @@ -263,7 +262,7 @@ func TestAccKeyRingMax(t *testing.T) { // Creation { ConfigVariables: testConfigKeyRingVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyRingMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -289,7 +288,7 @@ func TestAccKeyRingMax(t *testing.T) { keyring_id = stackit_kms_keyring.keyring.keyring_id } `, - testutil.KMSProviderConfig(), resourceKeyRingMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMaxConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -331,7 +330,7 @@ func TestAccKeyRingMax(t *testing.T) { // Update { ConfigVariables: testConfigKeyRingVarsMaxUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyRingMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyRingMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionReplace), @@ -358,7 +357,7 @@ func TestAccKeyMin(t *testing.T) { // Creation { ConfigVariables: testConfigKeyVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -395,7 +394,7 @@ func TestAccKeyMin(t *testing.T) { key_id = stackit_kms_key.key.key_id } `, - testutil.KMSProviderConfig(), resourceKeyMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMinConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -451,7 +450,7 @@ func TestAccKeyMin(t *testing.T) { // Update { ConfigVariables: testConfigKeyVarsMinUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionNoop), @@ -488,7 +487,7 @@ func TestAccKeyMax(t *testing.T) { // Creation { ConfigVariables: testConfigKeyVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -525,7 +524,7 @@ func TestAccKeyMax(t *testing.T) { key_id = stackit_kms_key.key.key_id } `, - testutil.KMSProviderConfig(), resourceKeyMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMaxConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -581,7 +580,7 @@ func TestAccKeyMax(t *testing.T) { // Update { ConfigVariables: testConfigKeyVarsMaxUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceKeyMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceKeyMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionNoop), @@ -618,7 +617,7 @@ func TestAccWrappingKeyMin(t *testing.T) { // Creation { ConfigVariables: testConfigWrappingKeyVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceWrappingKeyMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -657,7 +656,7 @@ func TestAccWrappingKeyMin(t *testing.T) { wrapping_key_id = stackit_kms_wrapping_key.wrapping_key.wrapping_key_id } `, - testutil.KMSProviderConfig(), resourceWrappingKeyMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMinConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -715,7 +714,7 @@ func TestAccWrappingKeyMin(t *testing.T) { // Update { ConfigVariables: testConfigWrappingKeyVarsMinUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceWrappingKeyMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMinConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionNoop), @@ -754,7 +753,7 @@ func TestAccWrappingKeyMax(t *testing.T) { // Creation { ConfigVariables: testConfigWrappingKeyVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceWrappingKeyMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionCreate), @@ -793,7 +792,7 @@ func TestAccWrappingKeyMax(t *testing.T) { wrapping_key_id = stackit_kms_wrapping_key.wrapping_key.wrapping_key_id } `, - testutil.KMSProviderConfig(), resourceWrappingKeyMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMaxConfig, ), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ @@ -851,7 +850,7 @@ func TestAccWrappingKeyMax(t *testing.T) { // Update { ConfigVariables: testConfigWrappingKeyVarsMaxUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.KMSProviderConfig(), resourceWrappingKeyMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceWrappingKeyMaxConfig), ConfigPlanChecks: resource.ConfigPlanChecks{ PreApply: []plancheck.PlanCheck{ plancheck.ExpectResourceAction("stackit_kms_keyring.keyring", plancheck.ResourceActionNoop), @@ -909,15 +908,7 @@ func testAccCheckDestroy(s *terraform.State) error { func testAccCheckKeyRingDestroy(s *terraform.State) error { ctx := context.Background() - var client *kms.APIClient - var err error - if testutil.KMSCustomEndpoint == "" { - client, err = kms.NewAPIClient() - } else { - client, err = kms.NewAPIClient( - coreConfig.WithEndpoint(testutil.KMSCustomEndpoint), - ) - } + client, err := kms.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.KMSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -954,15 +945,7 @@ func testAccCheckKeyRingDestroy(s *terraform.State) error { func testAccCheckKeyDestroy(s *terraform.State) error { ctx := context.Background() - var client *kms.APIClient - var err error - if testutil.KMSCustomEndpoint == "" { - client, err = kms.NewAPIClient() - } else { - client, err = kms.NewAPIClient( - coreConfig.WithEndpoint(testutil.KMSCustomEndpoint), - ) - } + client, err := kms.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.KMSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -998,15 +981,7 @@ func testAccCheckKeyDestroy(s *terraform.State) error { func testAccCheckWrappingKeyDestroy(s *terraform.State) error { ctx := context.Background() - var client *kms.APIClient - var err error - if testutil.KMSCustomEndpoint == "" { - client, err = kms.NewAPIClient() - } else { - client, err = kms.NewAPIClient( - coreConfig.WithEndpoint(testutil.KMSCustomEndpoint), - ) - } + client, err := kms.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.KMSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/loadbalancer/loadbalancer_acc_test.go b/stackit/internal/services/loadbalancer/loadbalancer_acc_test.go index 909053384..f0b86e8a0 100644 --- a/stackit/internal/services/loadbalancer/loadbalancer_acc_test.go +++ b/stackit/internal/services/loadbalancer/loadbalancer_acc_test.go @@ -16,7 +16,6 @@ import ( "maps" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" @@ -114,7 +113,7 @@ func TestAccLoadBalancerResourceMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.LoadBalancerProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance resource resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -156,7 +155,7 @@ func TestAccLoadBalancerResourceMin(t *testing.T) { name = stackit_loadbalancer.loadbalancer.name } `, - testutil.LoadBalancerProviderConfig()+resourceMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance @@ -219,7 +218,7 @@ func TestAccLoadBalancerResourceMin(t *testing.T) { // Update { ConfigVariables: configVarsMinUpdated(), - Config: testutil.LoadBalancerProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "name", testutil.ConvertConfigVariable(testConfigVarsMin["loadbalancer_name"])), @@ -239,7 +238,7 @@ func TestAccLoadBalancerResourceMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.LoadBalancerProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance resource resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -312,7 +311,7 @@ func TestAccLoadBalancerResourceMax(t *testing.T) { name = stackit_loadbalancer.loadbalancer.name } `, - testutil.LoadBalancerProviderConfig()+resourceMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Load balancer instance @@ -395,7 +394,7 @@ func TestAccLoadBalancerResourceMax(t *testing.T) { // Update { ConfigVariables: configVarsMaxUpdated(), - Config: testutil.LoadBalancerProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "name", testutil.ConvertConfigVariable(testConfigVarsMax["loadbalancer_name"])), @@ -409,15 +408,7 @@ func TestAccLoadBalancerResourceMax(t *testing.T) { func testAccCheckLoadBalancerDestroy(s *terraform.State) error { ctx := context.Background() - var client *loadbalancer.APIClient - var err error - if testutil.LoadBalancerCustomEndpoint == "" { - client, err = loadbalancer.NewAPIClient() - } else { - client, err = loadbalancer.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.LoadBalancerCustomEndpoint), - ) - } + client, err := loadbalancer.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.LoadBalancerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/logme/logme_acc_test.go b/stackit/internal/services/logme/logme_acc_test.go index 03cb3b4f0..2ca07130c 100644 --- a/stackit/internal/services/logme/logme_acc_test.go +++ b/stackit/internal/services/logme/logme_acc_test.go @@ -12,7 +12,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "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" @@ -101,7 +100,7 @@ func TestAccLogMeMinResource(t *testing.T) { // Creation { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -126,7 +125,7 @@ func TestAccLogMeMinResource(t *testing.T) { }, // Data source { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -159,7 +158,7 @@ func TestAccLogMeMinResource(t *testing.T) { }, // Import { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, ResourceName: "stackit_logme_instance.instance", ImportStateIdFunc: func(s *terraform.State) (string, error) { @@ -200,7 +199,7 @@ func TestAccLogMeMinResource(t *testing.T) { }, // Update { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsMinUpdated(), Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -224,7 +223,7 @@ func TestAccLogMeMaxResource(t *testing.T) { // Creation { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -276,7 +275,7 @@ func TestAccLogMeMaxResource(t *testing.T) { }, // Data source { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -336,7 +335,7 @@ func TestAccLogMeMaxResource(t *testing.T) { }, // Import { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, ResourceName: "stackit_logme_instance.instance", ImportStateIdFunc: func(s *terraform.State) (string, error) { @@ -377,7 +376,7 @@ func TestAccLogMeMaxResource(t *testing.T) { }, // Update { - Config: testutil.LogMeProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -422,17 +421,7 @@ func TestAccLogMeMaxResource(t *testing.T) { func testAccCheckLogMeDestroy(s *terraform.State) error { ctx := context.Background() - var client *logme.APIClient - var err error - if testutil.LogMeCustomEndpoint == "" { - client, err = logme.NewAPIClient( - core_config.WithRegion("eu01"), - ) - } else { - client, err = logme.NewAPIClient( - core_config.WithEndpoint(testutil.LogMeCustomEndpoint), - ) - } + client, err := logme.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.LogMeCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/logs/logs_acc_test.go b/stackit/internal/services/logs/logs_acc_test.go index 61bde900d..4391ec5bc 100644 --- a/stackit/internal/services/logs/logs_acc_test.go +++ b/stackit/internal/services/logs/logs_acc_test.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - coreConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" logs "github.com/stackitcloud/stackit-sdk-go/services/logs/v1api" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -116,7 +115,7 @@ func TestAccLogsInstanceMin(t *testing.T) { // Create { ConfigVariables: testConfigVarsMin, - Config: testutil.LogsProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), resource.TestCheckResourceAttr("stackit_logs_instance.logs", "region", testutil.ConvertConfigVariable(testConfigVarsMin["region"])), @@ -136,7 +135,7 @@ func TestAccLogsInstanceMin(t *testing.T) { // Datasource { ConfigVariables: testConfigVarsMin, - Config: testutil.LogsProviderConfig() + resourceMin + ` + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin + ` data "stackit_logs_instance" "logs" { project_id = stackit_logs_instance.logs.project_id region = stackit_logs_instance.logs.region @@ -216,7 +215,7 @@ data "stackit_logs_instance" "logs" { // Update { ConfigVariables: testConfigVarsMinUpdated(), - Config: testutil.LogsProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigVarsMinUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_logs_instance.logs", "region", testutil.ConvertConfigVariable(testConfigVarsMinUpdated()["region"])), @@ -246,7 +245,7 @@ func TestAccLogsInstanceMax(t *testing.T) { // Create { ConfigVariables: testConfigVarsMax, - Config: testutil.LogsProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_logs_instance.logs", "region", testutil.ConvertConfigVariable(testConfigVarsMax["region"])), @@ -268,7 +267,7 @@ func TestAccLogsInstanceMax(t *testing.T) { // Datasource { ConfigVariables: testConfigVarsMax, - Config: testutil.LogsProviderConfig() + resourceMax + ` + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax + ` data "stackit_logs_instance" "logs" { project_id = stackit_logs_instance.logs.project_id region = stackit_logs_instance.logs.region @@ -356,7 +355,7 @@ data "stackit_logs_instance" "logs" { // Update { ConfigVariables: testConfigVarsMaxUpdated(), - Config: testutil.LogsProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigVarsMaxUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_logs_instance.logs", "region", testutil.ConvertConfigVariable(testConfigVarsMaxUpdated()["region"])), @@ -388,7 +387,7 @@ func TestAccLogsAccessTokenMin(t *testing.T) { // Create { ConfigVariables: testConfigAccessTokenVarsMin, - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMinConfig, Check: resource.ComposeTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMin["project_id"])), @@ -418,7 +417,7 @@ func TestAccLogsAccessTokenMin(t *testing.T) { // Datasource { ConfigVariables: testConfigAccessTokenVarsMin, - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMinConfig + ` + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMinConfig + ` data "stackit_logs_access_token" "accessToken" { project_id = stackit_logs_access_token.accessToken.project_id region = stackit_logs_access_token.accessToken.region @@ -468,7 +467,7 @@ func TestAccLogsAccessTokenMin(t *testing.T) { // Update { ConfigVariables: testConfigAccessTokenVarsMinUpdated(), - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMinConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_access_token.accessToken", "project_id", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMinUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_logs_access_token.accessToken", "region", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMinUpdated()["region"])), @@ -499,7 +498,7 @@ func TestAccLogsAccessTokenMax(t *testing.T) { // Create { ConfigVariables: testConfigAccessTokenVarsMax, - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMaxConfig, Check: resource.ComposeTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_logs_instance.logs", "project_id", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMax["project_id"])), @@ -542,7 +541,7 @@ func TestAccLogsAccessTokenMax(t *testing.T) { // Datasource { ConfigVariables: testConfigAccessTokenVarsMax, - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMaxConfig + ` + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMaxConfig + ` data "stackit_logs_access_token" "accessToken" { project_id = stackit_logs_access_token.accessToken.project_id region = stackit_logs_access_token.accessToken.region @@ -594,7 +593,7 @@ func TestAccLogsAccessTokenMax(t *testing.T) { // Update { ConfigVariables: testConfigAccessTokenVarsMaxUpdated(), - Config: testutil.LogsProviderConfig() + "\n" + accessTokenMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + accessTokenMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_logs_access_token.accessToken", "project_id", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMaxUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_logs_access_token.accessToken", "region", testutil.ConvertConfigVariable(testConfigAccessTokenVarsMaxUpdated()["region"])), @@ -644,15 +643,7 @@ func testAccCheckDestroy(s *terraform.State) error { func testAccCheckLogsInstanceDestroy(s *terraform.State) error { ctx := context.Background() - var client *logs.APIClient - var err error - if testutil.LogsCustomEndpoint == "" { - client, err = logs.NewAPIClient() - } else { - client, err = logs.NewAPIClient( - coreConfig.WithEndpoint(testutil.LogsCustomEndpoint), - ) - } + client, err := logs.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.LogsCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -685,15 +676,7 @@ func testAccCheckLogsInstanceDestroy(s *terraform.State) error { func testAccCheckLogsAccessTokenDestroy(s *terraform.State) error { ctx := context.Background() - var client *logs.APIClient - var err error - if testutil.LogsCustomEndpoint == "" { - client, err = logs.NewAPIClient() - } else { - client, err = logs.NewAPIClient( - coreConfig.WithEndpoint(testutil.LogsCustomEndpoint), - ) - } + client, err := logs.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.LogsCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/mariadb/mariadb_acc_test.go b/stackit/internal/services/mariadb/mariadb_acc_test.go index 3d40b8774..90eeaaa1a 100644 --- a/stackit/internal/services/mariadb/mariadb_acc_test.go +++ b/stackit/internal/services/mariadb/mariadb_acc_test.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "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" @@ -70,7 +69,7 @@ func TestAccMariaDbResourceMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: fmt.Sprintf("%s\n%s", testutil.MariaDBProviderConfig(), resourceMinConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceMinConfig), Check: resource.ComposeTestCheckFunc( // Instance resource.TestCheckResourceAttr("stackit_mariadb_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -121,7 +120,7 @@ func TestAccMariaDbResourceMin(t *testing.T) { project_id = stackit_mariadb_credential.credential.project_id instance_id = stackit_mariadb_credential.credential.instance_id credential_id = stackit_mariadb_credential.credential.credential_id - }`, testutil.MariaDBProviderConfig(), resourceMinConfig, + }`, testutil.NewConfigBuilder().BuildProviderConfig(), resourceMinConfig, ), Check: resource.ComposeTestCheckFunc( // Instance data @@ -206,7 +205,7 @@ func TestAccMariaDbResourceMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: fmt.Sprintf("%s\n%s", testutil.MariaDBProviderConfig(), resourceMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceMaxConfig), Check: resource.ComposeTestCheckFunc( // Instance resource.TestCheckResourceAttr("stackit_mariadb_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -271,7 +270,7 @@ func TestAccMariaDbResourceMax(t *testing.T) { project_id = stackit_mariadb_credential.credential.project_id instance_id = stackit_mariadb_credential.credential.instance_id credential_id = stackit_mariadb_credential.credential.credential_id - }`, testutil.MariaDBProviderConfig(), resourceMaxConfig, + }`, testutil.NewConfigBuilder().BuildProviderConfig(), resourceMaxConfig, ), Check: resource.ComposeTestCheckFunc( // Instance data @@ -354,7 +353,7 @@ func TestAccMariaDbResourceMax(t *testing.T) { // Update { ConfigVariables: configVarsMaxUpdated(), - Config: fmt.Sprintf("%s\n%s", testutil.MariaDBProviderConfig(), resourceMaxConfig), + Config: fmt.Sprintf("%s\n%s", testutil.NewConfigBuilder().BuildProviderConfig(), resourceMaxConfig), Check: resource.ComposeAggregateTestCheckFunc( // Instance resource.TestCheckResourceAttr("stackit_mariadb_instance.instance", "project_id", testutil.ConvertConfigVariable(configVarsMaxUpdated()["project_id"])), @@ -409,17 +408,7 @@ func TestAccMariaDbResourceMax(t *testing.T) { func testAccCheckMariaDBDestroy(s *terraform.State) error { ctx := context.Background() - var client *mariadb.APIClient - var err error - if testutil.MariaDBCustomEndpoint == "" { - client, err = mariadb.NewAPIClient( - stackitSdkConfig.WithRegion("eu01"), - ) - } else { - client, err = mariadb.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.MariaDBCustomEndpoint), - ) - } + client, err := mariadb.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.MariaDBCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/modelserving/modelserving_acc_test.go b/stackit/internal/services/modelserving/modelserving_acc_test.go index 4f31d5ca4..b875ceb1c 100644 --- a/stackit/internal/services/modelserving/modelserving_acc_test.go +++ b/stackit/internal/services/modelserving/modelserving_acc_test.go @@ -8,7 +8,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/modelserving" "github.com/stackitcloud/stackit-sdk-go/services/modelserving/wait" @@ -38,7 +37,7 @@ func inputTokenConfig(name, description string) string { ttl_duration = "%s" } `, - testutil.ModelServingProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), tokenResource["project_id"], tokenResource["region"], name, @@ -93,17 +92,7 @@ func TestAccModelServingTokenResource(t *testing.T) { func testAccCheckModelServingTokenDestroy(s *terraform.State) error { ctx := context.Background() - var client *modelserving.APIClient - var err error - - if testutil.ModelServingCustomEndpoint == "" { - client, err = modelserving.NewAPIClient() - } else { - client, err = modelserving.NewAPIClient( - config.WithEndpoint(testutil.ModelServingCustomEndpoint), - ) - } - + client, err := modelserving.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ModelServingCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go b/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go index 0ab9598fd..bc4328db9 100644 --- a/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go +++ b/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/mongodbflex" "github.com/stackitcloud/stackit-sdk-go/services/mongodbflex/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -85,7 +84,7 @@ func configResources(version, backupSchedule, snapshotRetentionDays string) stri database = "%s" } `, - testutil.MongoDBFlexProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), instanceResource["project_id"], instanceResource["name"], instanceResource["acl"], @@ -298,15 +297,7 @@ func TestAccMongoDBFlexFlexResource(t *testing.T) { func testAccCheckMongoDBFlexDestroy(s *terraform.State) error { ctx := context.Background() - var client *mongodbflex.APIClient - var err error - if testutil.MongoDBFlexCustomEndpoint == "" { - client, err = mongodbflex.NewAPIClient() - } else { - client, err = mongodbflex.NewAPIClient( - config.WithEndpoint(testutil.MongoDBFlexCustomEndpoint), - ) - } + client, err := mongodbflex.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.MongoDBFlexCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/objectstorage/objectstorage_acc_test.go b/stackit/internal/services/objectstorage/objectstorage_acc_test.go index 4fd117255..3b1ac2c60 100644 --- a/stackit/internal/services/objectstorage/objectstorage_acc_test.go +++ b/stackit/internal/services/objectstorage/objectstorage_acc_test.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "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" @@ -39,7 +38,7 @@ func TestAccObjectStorageResourceMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.ObjectStorageProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Bucket data resource.TestCheckResourceAttr("stackit_objectstorage_bucket.bucket", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -110,7 +109,7 @@ func TestAccObjectStorageResourceMin(t *testing.T) { credentials_group_id = stackit_objectstorage_credential.credential_time.credentials_group_id credential_id = stackit_objectstorage_credential.credential_time.credential_id }`, - testutil.ObjectStorageProviderConfig()+resourceMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Bucket data @@ -236,17 +235,7 @@ func TestAccObjectStorageResourceMin(t *testing.T) { func testAccCheckObjectStorageDestroy(s *terraform.State) error { ctx := context.Background() - var client *objectstorage.APIClient - var err error - if testutil.ObjectStorageCustomEndpoint == "" { - client, err = objectstorage.NewAPIClient( - stackitSdkConfig.WithRegion("eu01"), - ) - } else { - client, err = objectstorage.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ObjectStorageCustomEndpoint), - ) - } + client, err := objectstorage.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ObjectStorageCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/observability/observability_acc_test.go b/stackit/internal/services/observability/observability_acc_test.go index 46734baae..e05b0c23f 100644 --- a/stackit/internal/services/observability/observability_acc_test.go +++ b/stackit/internal/services/observability/observability_acc_test.go @@ -18,8 +18,6 @@ import ( "github.com/stackitcloud/stackit-sdk-go/services/observability/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" - - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" ) //go:embed testdata/resource-min.tf @@ -159,7 +157,7 @@ func TestAccResourceMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.ObservabilityProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_observability_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -260,7 +258,7 @@ func TestAccResourceMin(t *testing.T) { name = stackit_observability_logalertgroup.logalertgroup.name } `, - testutil.ObservabilityProviderConfig()+resourceMinConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMinConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -408,7 +406,7 @@ func TestAccResourceMin(t *testing.T) { // Update { ConfigVariables: configVarsMinUpdated(), - Config: testutil.ObservabilityProviderConfig() + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_observability_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -492,7 +490,7 @@ func TestAccResourceMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.ObservabilityProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_observability_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -666,7 +664,7 @@ func TestAccResourceMax(t *testing.T) { name = stackit_observability_logalertgroup.logalertgroup.name } `, - testutil.ObservabilityProviderConfig()+resourceMaxConfig, + testutil.NewConfigBuilder().BuildProviderConfig()+resourceMaxConfig, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -899,7 +897,7 @@ func TestAccResourceMax(t *testing.T) { // Update { ConfigVariables: configVarsMaxUpdated(), - Config: testutil.ObservabilityProviderConfig() + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Instance data resource.TestCheckResourceAttr("stackit_observability_instance.instance", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -1051,17 +1049,7 @@ func TestAccResourceMax(t *testing.T) { func testAccCheckObservabilityDestroy(s *terraform.State) error { ctx := context.Background() - var client *observability.APIClient - var err error - if testutil.ObservabilityCustomEndpoint == "" { - client, err = observability.NewAPIClient( - stackitSdkConfig.WithRegion("eu01"), - ) - } else { - client, err = observability.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ObservabilityCustomEndpoint), - ) - } + client, err := observability.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ObservabilityCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/opensearch/opensearch_acc_test.go b/stackit/internal/services/opensearch/opensearch_acc_test.go index 223b12cee..b68175280 100644 --- a/stackit/internal/services/opensearch/opensearch_acc_test.go +++ b/stackit/internal/services/opensearch/opensearch_acc_test.go @@ -8,7 +8,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "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" @@ -70,7 +69,7 @@ func resourceConfig(params map[string]string) string { instance_id = stackit_opensearch_instance.instance.instance_id } `, - testutil.OpenSearchProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), instanceResource["project_id"], instanceResource["name"], instanceResource["plan_name"], @@ -237,17 +236,7 @@ func TestAccOpenSearchResource(t *testing.T) { func testAccCheckOpenSearchDestroy(s *terraform.State) error { ctx := context.Background() - var client *opensearch.APIClient - var err error - if testutil.OpenSearchCustomEndpoint == "" { - client, err = opensearch.NewAPIClient( - config.WithRegion("eu01"), - ) - } else { - client, err = opensearch.NewAPIClient( - config.WithEndpoint(testutil.OpenSearchCustomEndpoint), - ) - } + client, err := opensearch.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.OpenSearchCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/postgresflex/postgresflex_acc_test.go b/stackit/internal/services/postgresflex/postgresflex_acc_test.go index 122633b36..5f3a7926a 100644 --- a/stackit/internal/services/postgresflex/postgresflex_acc_test.go +++ b/stackit/internal/services/postgresflex/postgresflex_acc_test.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "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" @@ -87,7 +86,7 @@ func configResources(backupSchedule string, region *string) string { owner = stackit_postgresflex_user.user.username } `, - testutil.PostgresFlexProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), instanceResource["project_id"], instanceResource["name"], instanceResource["acl"], @@ -321,15 +320,7 @@ func TestAccPostgresFlexFlexResource(t *testing.T) { func testAccCheckPostgresFlexDestroy(s *terraform.State) error { ctx := context.Background() - var client *postgresflex.APIClient - var err error - if testutil.PostgresFlexCustomEndpoint == "" { - client, err = postgresflex.NewAPIClient() - } else { - client, err = postgresflex.NewAPIClient( - config.WithEndpoint(testutil.PostgresFlexCustomEndpoint), - ) - } + client, err := postgresflex.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.PostgresFlexCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go b/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go index ff9d3f417..aed1079fc 100644 --- a/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go +++ b/stackit/internal/services/rabbitmq/rabbitmq_acc_test.go @@ -9,7 +9,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "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" @@ -65,7 +64,7 @@ func resourceConfig(params map[string]string) string { %s `, - testutil.RabbitMQProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), instanceResource["project_id"], instanceResource["name"], instanceResource["plan_name"], @@ -245,17 +244,7 @@ func TestAccRabbitMQResource(t *testing.T) { func testAccCheckRabbitMQDestroy(s *terraform.State) error { ctx := context.Background() - var client *rabbitmq.APIClient - var err error - if testutil.RabbitMQCustomEndpoint == "" { - client, err = rabbitmq.NewAPIClient( - config.WithRegion("eu01"), - ) - } else { - client, err = rabbitmq.NewAPIClient( - config.WithEndpoint(testutil.RabbitMQCustomEndpoint), - ) - } + client, err := rabbitmq.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.RabbitMQCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/redis/redis_acc_test.go b/stackit/internal/services/redis/redis_acc_test.go index e86fe3cab..d60dd6398 100644 --- a/stackit/internal/services/redis/redis_acc_test.go +++ b/stackit/internal/services/redis/redis_acc_test.go @@ -9,7 +9,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "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" @@ -21,9 +20,9 @@ import ( var instanceResource = map[string]string{ "project_id": testutil.ProjectId, "name": testutil.ResourceNameWithDateTime("redis"), - "plan_id": "96e24604-7a43-4ff8-9ba4-609d4235a137", + "plan_id": "3849f72f-99cc-4e2c-afda-700d66ef08f2", "plan_name": "stackit-redis-1.4.10-single", - "version": "6", + "version": "7", "sgw_acl_invalid": "1.2.3.4/4", "sgw_acl_valid": "192.168.0.0/16", "sgw_acl_valid2": "10.10.10.0/24", @@ -69,7 +68,7 @@ func resourceConfig(params map[string]string) string { %s `, - testutil.RedisProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), instanceResource["project_id"], instanceResource["name"], instanceResource["plan_name"], @@ -273,17 +272,7 @@ func checkInstanceDeleteSuccess(i *redis.Instance) bool { func testAccCheckRedisDestroy(s *terraform.State) error { ctx := context.Background() - var client *redis.APIClient - var err error - if testutil.RedisCustomEndpoint == "" { - client, err = redis.NewAPIClient( - config.WithRegion("eu01"), - ) - } else { - client, err = redis.NewAPIClient( - config.WithEndpoint(testutil.RedisCustomEndpoint), - ) - } + client, err := redis.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.RedisCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go b/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go index 0ed2159df..7e30bc66b 100644 --- a/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go +++ b/stackit/internal/services/resourcemanager/resourcemanager_acc_test.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - sdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" resourcemanager "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/v0api" wait "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/v0api/wait" @@ -76,6 +75,9 @@ var testConfigResourceFolderParentUUID = config.Variables{ "labels": defaultLabels, } +var token = testutil.GetTestProjectServiceAccountToken("") +var providerConfig = testutil.NewConfigBuilder().ServiceAccountToken(token).BuildProviderConfig() + func testConfigProjectNameParentContainerIdUpdated() config.Variables { tempConfig := make(config.Variables, len(testConfigResourceProjectParentContainerId)) maps.Copy(tempConfig, testConfigResourceProjectParentContainerId) @@ -113,7 +115,7 @@ func TestAccResourceManagerProjectContainerId(t *testing.T) { // Create { ConfigVariables: testConfigResourceProjectParentContainerId, - Config: testutil.ResourceManagerProviderConfig() + resourceProject, + Config: providerConfig + resourceProject, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigResourceProjectParentContainerId["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceProjectParentContainerId["parent_container_id"])), @@ -138,7 +140,7 @@ func TestAccResourceManagerProjectContainerId(t *testing.T) { data "stackit_resourcemanager_project" "example" { project_id = stackit_resourcemanager_project.example.project_id } - `, testutil.ResourceManagerProviderConfig(), resourceProject), + `, providerConfig, resourceProject), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigResourceProjectParentContainerId["name"])), resource.TestCheckResourceAttr("data.stackit_resourcemanager_project.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceProjectParentContainerId["parent_container_id"])), @@ -165,7 +167,7 @@ func TestAccResourceManagerProjectContainerId(t *testing.T) { // Update { ConfigVariables: testConfigProjectNameParentContainerIdUpdated(), - Config: testutil.ResourceManagerProviderConfig() + resourceProject, + Config: providerConfig + resourceProject, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigProjectNameParentContainerIdUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceProjectParentContainerId["parent_container_id"])), @@ -193,7 +195,7 @@ func TestAccResourceManagerProjectParentUUID(t *testing.T) { // Create { ConfigVariables: testConfigResourceProjectParentUUID, - Config: testutil.ResourceManagerProviderConfig() + resourceProject, + Config: providerConfig + resourceProject, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigResourceProjectParentUUID["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceProjectParentUUID["parent_container_id"])), @@ -218,7 +220,7 @@ func TestAccResourceManagerProjectParentUUID(t *testing.T) { data "stackit_resourcemanager_project" "example" { project_id = stackit_resourcemanager_project.example.project_id } - `, testutil.ResourceManagerProviderConfig(), resourceProject), + `, providerConfig, resourceProject), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigResourceProjectParentUUID["name"])), resource.TestCheckResourceAttr("data.stackit_resourcemanager_project.example", "labels.%", "1"), @@ -245,7 +247,7 @@ func TestAccResourceManagerProjectParentUUID(t *testing.T) { // Update { ConfigVariables: testConfigProjectNameParentUUIDUpdated(), - Config: testutil.ResourceManagerProviderConfig() + resourceProject, + Config: providerConfig + resourceProject, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "name", testutil.ConvertConfigVariable(testConfigProjectNameParentUUIDUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_project.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceProjectParentUUID["parent_container_id"])), @@ -273,7 +275,7 @@ func TestAccResourceManagerFolderContainerId(t *testing.T) { // Create { ConfigVariables: testConfigResourceFolderParentContainerId, - Config: testutil.ResourceManagerProviderConfig() + resourceFolder, + Config: providerConfig + resourceFolder, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigResourceFolderParentContainerId["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceFolderParentContainerId["parent_container_id"])), @@ -297,7 +299,7 @@ func TestAccResourceManagerFolderContainerId(t *testing.T) { data "stackit_resourcemanager_folder" "example" { container_id = stackit_resourcemanager_folder.example.container_id } - `, testutil.ResourceManagerProviderConfig(), resourceFolder), + `, providerConfig, resourceFolder), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigResourceFolderParentContainerId["name"])), resource.TestCheckResourceAttr("data.stackit_resourcemanager_folder.example", "labels.%", "1"), @@ -324,7 +326,7 @@ func TestAccResourceManagerFolderContainerId(t *testing.T) { // Update { ConfigVariables: testConfigFolderNameParentContainerIdUpdated(), - Config: testutil.ResourceManagerProviderConfig() + resourceFolder, + Config: providerConfig + resourceFolder, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigFolderNameParentContainerIdUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigFolderNameParentContainerIdUpdated()["parent_container_id"])), @@ -352,7 +354,7 @@ func TestAccResourceManagerFolderParentUUID(t *testing.T) { // Create { ConfigVariables: testConfigResourceFolderParentUUID, - Config: testutil.ResourceManagerProviderConfig() + resourceFolder, + Config: providerConfig + resourceFolder, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigResourceFolderParentUUID["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigResourceFolderParentUUID["parent_container_id"])), @@ -376,7 +378,7 @@ func TestAccResourceManagerFolderParentUUID(t *testing.T) { data "stackit_resourcemanager_folder" "example" { container_id = stackit_resourcemanager_folder.example.container_id } - `, testutil.ResourceManagerProviderConfig(), resourceFolder), + `, providerConfig, resourceFolder), Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigResourceFolderParentUUID["name"])), resource.TestCheckResourceAttr("data.stackit_resourcemanager_folder.example", "labels.%", "1"), @@ -403,7 +405,7 @@ func TestAccResourceManagerFolderParentUUID(t *testing.T) { // Update { ConfigVariables: testConfigFolderNameParentUUIDUpdated(), - Config: testutil.ResourceManagerProviderConfig() + resourceFolder, + Config: providerConfig + resourceFolder, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "name", testutil.ConvertConfigVariable(testConfigFolderNameParentUUIDUpdated()["name"])), resource.TestCheckResourceAttr("stackit_resourcemanager_folder.example", "parent_container_id", testutil.ConvertConfigVariable(testConfigFolderNameParentUUIDUpdated()["parent_container_id"])), @@ -447,15 +449,7 @@ func testAccCheckDestroy(s *terraform.State) error { func testAccCheckResourceManagerProjectsDestroy(s *terraform.State) error { ctx := context.Background() - var client *resourcemanager.APIClient - var err error - if testutil.ResourceManagerCustomEndpoint == "" { - client, err = resourcemanager.NewAPIClient() - } else { - client, err = resourcemanager.NewAPIClient( - sdkConfig.WithEndpoint(testutil.ResourceManagerCustomEndpoint), - ) - } + client, err := resourcemanager.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ResourceManagerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -509,15 +503,7 @@ func testAccCheckResourceManagerProjectsDestroy(s *terraform.State) error { func testAccCheckResourceManagerFoldersDestroy(s *terraform.State) error { ctx := context.Background() - var client *resourcemanager.APIClient - var err error - if testutil.ResourceManagerCustomEndpoint == "" { - client, err = resourcemanager.NewAPIClient() - } else { - client, err = resourcemanager.NewAPIClient( - sdkConfig.WithEndpoint(testutil.ResourceManagerCustomEndpoint), - ) - } + client, err := resourcemanager.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ResourceManagerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/scf/scf_acc_test.go b/stackit/internal/services/scf/scf_acc_test.go index 3003ba6d6..c04c61de0 100644 --- a/stackit/internal/services/scf/scf_acc_test.go +++ b/stackit/internal/services/scf/scf_acc_test.go @@ -14,7 +14,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -85,7 +84,7 @@ func TestAccScfOrganizationMin(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.ScfProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_scf_organization.org", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), resource.TestCheckResourceAttr("stackit_scf_organization.org", "name", testutil.ConvertConfigVariable(testConfigVarsMin["name"])), @@ -121,7 +120,7 @@ func TestAccScfOrganizationMin(t *testing.T) { org_id = stackit_scf_organization.org.org_id project_id = stackit_scf_organization.org.project_id } - `, testutil.ScfProviderConfig()+resourceMin, + `, testutil.NewConfigBuilder().BuildProviderConfig()+resourceMin, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -213,7 +212,7 @@ func TestAccScfOrganizationMin(t *testing.T) { // Update { ConfigVariables: testScfOrgConfigVarsMinUpdated(), - Config: testutil.ScfProviderConfig() + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMin, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_scf_organization.org", "project_id", testutil.ConvertConfigVariable(testScfOrgConfigVarsMinUpdated()["project_id"])), resource.TestCheckResourceAttr("stackit_scf_organization.org", "name", testutil.ConvertConfigVariable(testScfOrgConfigVarsMinUpdated()["name"])), @@ -239,7 +238,7 @@ func TestAccScfOrgMax(t *testing.T) { // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.ScfProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_scf_organization.org", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_scf_organization.org", "name", testutil.ConvertConfigVariable(testConfigVarsMax["name"])), @@ -285,7 +284,7 @@ func TestAccScfOrgMax(t *testing.T) { platform_id = stackit_scf_organization.org.platform_id project_id = stackit_scf_organization.org.project_id } - `, testutil.ScfProviderConfig()+resourceMax, + `, testutil.NewConfigBuilder().BuildProviderConfig()+resourceMax, ), Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -391,7 +390,7 @@ func TestAccScfOrgMax(t *testing.T) { // Update { ConfigVariables: testScfOrgConfigVarsMaxUpdated(), - Config: testutil.ScfProviderConfig() + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + resourceMax, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_scf_organization.org", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), resource.TestCheckResourceAttr("stackit_scf_organization.org", "name", testutil.ConvertConfigVariable(testScfOrgConfigVarsMaxUpdated()["name"])), @@ -411,17 +410,7 @@ func TestAccScfOrgMax(t *testing.T) { func testAccCheckScfOrganizationDestroy(s *terraform.State) error { ctx := context.Background() - var client *scf.APIClient - var err error - - if testutil.ScfCustomEndpoint == "" { - client, err = scf.NewAPIClient() - } else { - client, err = scf.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ScfCustomEndpoint), - ) - } - + client, err := scf.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ScfCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/secretsmanager/secretsmanager_acc_test.go b/stackit/internal/services/secretsmanager/secretsmanager_acc_test.go index 16e6c1101..56ee051d9 100644 --- a/stackit/internal/services/secretsmanager/secretsmanager_acc_test.go +++ b/stackit/internal/services/secretsmanager/secretsmanager_acc_test.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/secretsmanager" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -70,7 +69,7 @@ func TestAccSecretsManagerMin(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.SecretsManagerProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsInvalid(testConfigVarsMin), ExpectError: regexp.MustCompile(`input variable "instance_name" is not set,`), }, @@ -219,7 +218,7 @@ func TestAccSecretsManagerMax(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.SecretsManagerProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: configVarsInvalid(testConfigVarsMax), ExpectError: regexp.MustCompile(`input variable "instance_name" is not set,`), }, @@ -368,17 +367,7 @@ func TestAccSecretsManagerMax(t *testing.T) { func testAccCheckSecretsManagerDestroy(s *terraform.State) error { ctx := context.Background() - var client *secretsmanager.APIClient - var err error - if testutil.SecretsManagerCustomEndpoint == "" { - client, err = secretsmanager.NewAPIClient( - core_config.WithRegion("eu01"), - ) - } else { - client, err = secretsmanager.NewAPIClient( - core_config.WithEndpoint(testutil.SecretsManagerCustomEndpoint), - ) - } + client, err := secretsmanager.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.SecretsManagerCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/serverbackup/serverbackup_acc_test.go b/stackit/internal/services/serverbackup/serverbackup_acc_test.go index d65ad6442..19a5bfeb6 100644 --- a/stackit/internal/services/serverbackup/serverbackup_acc_test.go +++ b/stackit/internal/services/serverbackup/serverbackup_acc_test.go @@ -14,7 +14,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/iaas" "github.com/stackitcloud/stackit-sdk-go/services/serverbackup" @@ -90,13 +89,13 @@ func TestAccServerBackupScheduleMinResource(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsInvalid(testConfigVarsMin), ExpectError: regexp.MustCompile(`.*backup_properties.retention_period value must be at least 1*`), }, // Creation { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Backup schedule data @@ -114,7 +113,7 @@ func TestAccServerBackupScheduleMinResource(t *testing.T) { }, // data source { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Server backup schedule data @@ -156,7 +155,7 @@ func TestAccServerBackupScheduleMinResource(t *testing.T) { }, // Update { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsMinUpdated(), Check: resource.ComposeAggregateTestCheckFunc( // Backup schedule data @@ -188,13 +187,13 @@ func TestAccServerBackupScheduleMaxResource(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: configVarsInvalid(testConfigVarsMax), ExpectError: regexp.MustCompile(`.*backup_properties.retention_period value must be at least 1*`), }, // Creation { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Backup schedule data @@ -212,7 +211,7 @@ func TestAccServerBackupScheduleMaxResource(t *testing.T) { }, // data source { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Server backup schedule data @@ -254,7 +253,7 @@ func TestAccServerBackupScheduleMaxResource(t *testing.T) { }, // Update { - Config: testutil.ServerBackupProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: configVarsMaxUpdated(), Check: resource.ComposeAggregateTestCheckFunc( // Backup schedule data @@ -278,15 +277,7 @@ func TestAccServerBackupScheduleMaxResource(t *testing.T) { func testAccCheckServerBackupScheduleDestroy(s *terraform.State) error { ctx := context.Background() - var client *serverbackup.APIClient - var err error - if testutil.ServerBackupCustomEndpoint == "" { - client, err = serverbackup.NewAPIClient() - } else { - client, err = serverbackup.NewAPIClient( - core_config.WithEndpoint(testutil.ServerBackupCustomEndpoint), - ) - } + client, err := serverbackup.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ServerBackupCustomEndpoint)...) if err != nil { return fmt.Errorf("creating serverbackup client: %w", err) } @@ -343,16 +334,7 @@ func testAccCheckServerBackupScheduleDestroy(s *terraform.State) error { // Additional function to check if the server was deleted if something went wrong in the first case. func testAccCheckServerDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - core_config.WithEndpoint(testutil.ServerBackupCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/serverupdate/serverupdate_acc_test.go b/stackit/internal/services/serverupdate/serverupdate_acc_test.go index 0655e87ee..389fa0003 100644 --- a/stackit/internal/services/serverupdate/serverupdate_acc_test.go +++ b/stackit/internal/services/serverupdate/serverupdate_acc_test.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/iaas" "github.com/stackitcloud/stackit-sdk-go/services/serverupdate" @@ -89,14 +88,14 @@ func TestAccServerUpdateScheduleMinResource(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsInvalid(configVarsMinUpdated()), ExpectError: regexp.MustCompile(`.*maintenance_window value must be at least 1*`), }, // Creation { ConfigVariables: testConfigVarsMin, - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Update schedule data resource.TestCheckResourceAttr("stackit_server_update_schedule.test_schedule", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])), @@ -112,7 +111,7 @@ func TestAccServerUpdateScheduleMinResource(t *testing.T) { }, // data source { - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Server update schedule data @@ -156,7 +155,7 @@ func TestAccServerUpdateScheduleMinResource(t *testing.T) { // Update { ConfigVariables: configVarsMinUpdated(), - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, Check: resource.ComposeAggregateTestCheckFunc( // Update schedule data resource.TestCheckResourceAttr("stackit_server_update_schedule.test_schedule", "project_id", testutil.ConvertConfigVariable(configVarsMinUpdated()["project_id"])), @@ -186,14 +185,14 @@ func TestAccServerUpdateScheduleMaxResource(t *testing.T) { Steps: []resource.TestStep{ // Creation fail { - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: configVarsInvalid(testConfigVarsMax), ExpectError: regexp.MustCompile(`.*maintenance_window value must be at least 1*`), }, // Creation { ConfigVariables: testConfigVarsMax, - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Update schedule data resource.TestCheckResourceAttr("stackit_server_update_schedule.test_schedule", "project_id", testutil.ConvertConfigVariable(testConfigVarsMax["project_id"])), @@ -211,7 +210,7 @@ func TestAccServerUpdateScheduleMaxResource(t *testing.T) { }, // data source { - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Server update schedule data @@ -255,7 +254,7 @@ func TestAccServerUpdateScheduleMaxResource(t *testing.T) { // Update { ConfigVariables: configVarsMaxUpdated(), - Config: testutil.ServerUpdateProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, Check: resource.ComposeAggregateTestCheckFunc( // Update schedule data resource.TestCheckResourceAttr("stackit_server_update_schedule.test_schedule", "project_id", testutil.ConvertConfigVariable(configVarsMinUpdated()["project_id"])), @@ -285,15 +284,7 @@ func testAccCheckServerUpdateScheduleDestroy(s *terraform.State) error { } func deleteSchedule(ctx context.Context, s *terraform.State) error { - var client *serverupdate.APIClient - var err error - if testutil.ServerUpdateCustomEndpoint == "" { - client, err = serverupdate.NewAPIClient() - } else { - client, err = serverupdate.NewAPIClient( - core_config.WithEndpoint(testutil.ServerUpdateCustomEndpoint), - ) - } + client, err := serverupdate.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ServerUpdateCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -350,16 +341,7 @@ func deleteSchedule(ctx context.Context, s *terraform.State) error { // Additional function to check if the server was deleted if something went wrong in the first case. func testAccCheckServerDestroy(s *terraform.State) error { ctx := context.Background() - var client *iaas.APIClient - var err error - - if testutil.IaaSCustomEndpoint == "" { - client, err = iaas.NewAPIClient() - } else { - client, err = iaas.NewAPIClient( - core_config.WithEndpoint(testutil.ServerBackupCustomEndpoint), - ) - } + client, err := iaas.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.IaaSCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/serviceaccount/serviceaccount_acc_test.go b/stackit/internal/services/serviceaccount/serviceaccount_acc_test.go index c2364647d..0f8e60e5d 100644 --- a/stackit/internal/services/serviceaccount/serviceaccount_acc_test.go +++ b/stackit/internal/services/serviceaccount/serviceaccount_acc_test.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - stackitSdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/serviceaccount" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -74,7 +73,7 @@ func TestServiceAccount(t *testing.T) { // Creation { ConfigVariables: testConfigVars, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_service_account.sa", "project_id", testutil.ConvertConfigVariable(testConfigVars["project_id"])), resource.TestCheckResourceAttr("stackit_service_account.sa", "name", testutil.ConvertConfigVariable(testConfigVars["name"])), @@ -89,7 +88,7 @@ func TestServiceAccount(t *testing.T) { // Update { ConfigVariables: testConfigVarsUpdate, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("stackit_service_account.sa", "project_id", testutil.ConvertConfigVariable(testConfigVarsUpdate["project_id"])), resource.TestCheckResourceAttr("stackit_service_account.sa", "name", testutil.ConvertConfigVariable(testConfigVarsUpdate["name"])), @@ -104,7 +103,7 @@ func TestServiceAccount(t *testing.T) { // Data source (Using exact email) { ConfigVariables: testConfigVarsUpdate, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccount, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccount, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_service_account.sa", "project_id", testutil.ConvertConfigVariable(testConfigVarsUpdate["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_service_account.sa", "service_account_id"), @@ -129,13 +128,13 @@ func TestServiceAccount(t *testing.T) { // Data source (Singular Exact Email - Not Found Expectation) { ConfigVariables: testConfigVarsExactNotFound, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountExactNotFound, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountExactNotFound, ExpectError: regexp.MustCompile(`Service account not found`), }, // Data source (Plural / List of Service Accounts - No filter) { ConfigVariables: testConfigVarsUpdate, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccounts, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccounts, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_service_accounts.list", "project_id", testutil.ConvertConfigVariable(testConfigVarsUpdate["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_service_accounts.list", "items.0.email"), @@ -146,7 +145,7 @@ func TestServiceAccount(t *testing.T) { // Data source (Plural - Filtered by Regex) { ConfigVariables: testConfigVarsPluralRegex, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountsRegex, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountsRegex, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_service_accounts.list_regex", "project_id", testutil.ConvertConfigVariable(testConfigVarsPluralRegex["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_service_accounts.list_regex", "items.0.email"), @@ -156,7 +155,7 @@ func TestServiceAccount(t *testing.T) { // Data source (Plural - Filtered by Suffix) { ConfigVariables: testConfigVarsPluralSuffix, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountsSuffix, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount + "\n" + datasourceServiceAccountsSuffix, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_service_accounts.list_suffix", "project_id", testutil.ConvertConfigVariable(testConfigVarsPluralSuffix["project_id"])), resource.TestCheckResourceAttrSet("data.stackit_service_accounts.list_suffix", "items.0.email"), @@ -166,7 +165,7 @@ func TestServiceAccount(t *testing.T) { // Import { ConfigVariables: testConfigVarsUpdate, - Config: testutil.ServiceAccountProviderConfig() + "\n" + resourceServiceAccount, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceServiceAccount, ResourceName: "stackit_service_account.sa", ImportStateIdFunc: func(s *terraform.State) (string, error) { r, ok := s.RootModule().Resources["stackit_service_account.sa"] @@ -189,16 +188,7 @@ func TestServiceAccount(t *testing.T) { func testAccCheckServiceAccountDestroy(s *terraform.State) error { ctx := context.Background() - var client *serviceaccount.APIClient - var err error - - if testutil.ServiceAccountCustomEndpoint == "" { - client, err = serviceaccount.NewAPIClient() - } else { - client, err = serviceaccount.NewAPIClient( - stackitSdkConfig.WithEndpoint(testutil.ServiceAccountCustomEndpoint), - ) - } + client, err := serviceaccount.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.ServiceAccountCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) diff --git a/stackit/internal/services/sfs/sfs_acc_test.go b/stackit/internal/services/sfs/sfs_acc_test.go index 441cf44c9..6b6676145 100644 --- a/stackit/internal/services/sfs/sfs_acc_test.go +++ b/stackit/internal/services/sfs/sfs_acc_test.go @@ -10,7 +10,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/sfs" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" @@ -42,7 +41,7 @@ func resourceConfigExportPolicy() string { ] } `, - testutil.SFSProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), exportPolicyResource["project_id"], exportPolicyResource["name"], exportPolicyResource["ip_acl_1"], @@ -69,7 +68,7 @@ func resourceConfigUpdateExportPolicy() string { ] } `, - testutil.SFSProviderConfig(), + testutil.NewConfigBuilder().BuildProviderConfig(), exportPolicyResource["project_id"], exportPolicyResource["name"], exportPolicyResource["ip_acl_1"], @@ -81,7 +80,7 @@ func resourceConfigUpdateExportPolicy() string { var ( testCreateResourcePool = map[string]string{ - "providerConfig": testutil.SFSProviderConfig(), + "providerConfig": testutil.NewConfigBuilder().BuildProviderConfig(), "name": fmt.Sprintf("acc-sfs-resource-pool-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "project_id": testutil.ProjectId, "availability_zone": "eu01-m", @@ -92,7 +91,7 @@ var ( } testUpdateResourcePool = map[string]string{ - "providerConfig": testutil.SFSProviderConfig(), + "providerConfig": testutil.NewConfigBuilder().BuildProviderConfig(), "name": fmt.Sprintf("acc-sfs-resource-pool-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "project_id": testutil.ProjectId, "availability_zone": "eu01-m", @@ -132,7 +131,7 @@ func resourcePoolConfig(configParams map[string]string) string { var ( testCreateShare = map[string]string{ - "providerConfig": testutil.SFSProviderConfig(), + "providerConfig": testutil.NewConfigBuilder().BuildProviderConfig(), "resource_pool_name": fmt.Sprintf("acc-sfs-resource-pool-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "name": fmt.Sprintf("acc-sfs-share-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "project_id": testutil.ProjectId, @@ -141,7 +140,7 @@ var ( } testUpdateShare = map[string]string{ - "providerConfig": testutil.SFSProviderConfig(), + "providerConfig": testutil.NewConfigBuilder().BuildProviderConfig(), "resource_pool_name": fmt.Sprintf("acc-sfs-resource-pool-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "name": fmt.Sprintf("acc-sfs-share-%s", acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)), "project_id": testutil.ProjectId, @@ -431,16 +430,7 @@ func TestAccShareResource(t *testing.T) { } func createClient() (*sfs.APIClient, error) { - var client *sfs.APIClient - var err error - if testutil.SFSCustomEndpoint == "" { - client, err = sfs.NewAPIClient() - } else { - client, err = sfs.NewAPIClient( - config.WithEndpoint(testutil.SFSCustomEndpoint), - config.WithTokenEndpoint(testutil.TokenCustomEndpoint), - ) - } + client, err := sfs.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.SFSCustomEndpoint)...) if err != nil { return nil, fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/services/ske/ske_acc_test.go b/stackit/internal/services/ske/ske_acc_test.go index a606c83be..cf4c1cb74 100644 --- a/stackit/internal/services/ske/ske_acc_test.go +++ b/stackit/internal/services/ske/ske_acc_test.go @@ -12,7 +12,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - coreConfig "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" @@ -124,7 +123,7 @@ func TestAccSKEMin(t *testing.T) { // 1) Creation { - Config: testutil.SKEProviderConfig() + "\n" + resourceMin, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMin, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // cluster data @@ -249,7 +248,7 @@ func TestAccSKEMax(t *testing.T) { // 1) Creation { - Config: testutil.SKEProviderConfig() + "\n" + resourceMax, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMax, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // cluster data @@ -478,7 +477,7 @@ func TestAccProviderOption(t *testing.T) { Steps: []resource.TestStep{ { ConfigVariables: testConfigDatasource, - Config: testutil.SKEProviderConfig() + "\n" + dataSourceProviderOptions, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + dataSourceProviderOptions, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.stackit_ske_kubernetes_versions.example", "version_state", "SUPPORTED"), resource.TestCheckResourceAttrSet("data.stackit_ske_kubernetes_versions.example", "kubernetes_versions.0.version"), @@ -503,15 +502,7 @@ func TestAccProviderOption(t *testing.T) { func testAccCheckSKEDestroy(s *terraform.State) error { ctx := context.Background() - var client *ske.APIClient - var err error - if testutil.SKECustomEndpoint == "" { - client, err = ske.NewAPIClient() - } else { - client, err = ske.NewAPIClient( - coreConfig.WithEndpoint(testutil.SKECustomEndpoint), - ) - } + client, err := ske.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.SKECustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } @@ -567,15 +558,7 @@ func NewSkeProviderOptions(nodePoolOs string) *SkeProviderOptions { ctx := context.Background() - var client *ske.APIClient - var err error - - if testutil.SKECustomEndpoint == "" { - client, err = ske.NewAPIClient() - } else { - client, err = ske.NewAPIClient(coreConfig.WithEndpoint(testutil.SKECustomEndpoint)) - } - + client, err := ske.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.SKECustomEndpoint)...) if err != nil { panic("failed to create SKE client: " + err.Error()) } diff --git a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go index e88ac5994..541a1ee84 100644 --- a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go +++ b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go @@ -12,7 +12,6 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait" @@ -76,7 +75,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) { Steps: []resource.TestStep{ // Creation { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -104,7 +103,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) { }, // Update { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -131,7 +130,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) { }, // data source { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: testConfigVarsMin, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -215,7 +214,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) { }, // Update { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMinConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMinConfig, ConfigVariables: configVarsMinUpdated(), Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -241,7 +240,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) { Steps: []resource.TestStep{ // Creation { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -276,7 +275,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) { }, // Update { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance @@ -311,7 +310,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) { }, // data source { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: testConfigVarsMax, Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -404,7 +403,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) { }, // Update { - Config: testutil.SQLServerFlexProviderConfig() + "\n" + resourceMaxConfig, + Config: testutil.NewConfigBuilder().BuildProviderConfig() + "\n" + resourceMaxConfig, ConfigVariables: configVarsMaxUpdated(), Check: resource.ComposeAggregateTestCheckFunc( // Instance data @@ -432,15 +431,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) { func testAccChecksqlserverflexDestroy(s *terraform.State) error { ctx := context.Background() - var client *sqlserverflex.APIClient - var err error - if testutil.SQLServerFlexCustomEndpoint == "" { - client, err = sqlserverflex.NewAPIClient() - } else { - client, err = sqlserverflex.NewAPIClient( - core_config.WithEndpoint(testutil.SQLServerFlexCustomEndpoint), - ) - } + client, err := sqlserverflex.NewAPIClient(testutil.NewConfigBuilder().BuildClientOptions(testutil.SQLServerFlexCustomEndpoint)...) if err != nil { return fmt.Errorf("creating client: %w", err) } diff --git a/stackit/internal/testutil/testutil.go b/stackit/internal/testutil/testutil.go index 36c083a04..b4fccb156 100644 --- a/stackit/internal/testutil/testutil.go +++ b/stackit/internal/testutil/testutil.go @@ -1,18 +1,21 @@ package testutil import ( + "bytes" "encoding/json" "fmt" "os" "path/filepath" "strconv" "strings" + "text/template" "time" "github.com/hashicorp/terraform-plugin-framework/providerserver" "github.com/hashicorp/terraform-plugin-go/tfprotov6" "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/echoprovider" + sdkConf "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/terraform-provider-stackit/stackit" ) @@ -63,540 +66,199 @@ var ( // TestImageLocalFilePath is the local path to an image file used for image acceptance tests TestImageLocalFilePath = getenv("TF_ACC_TEST_IMAGE_LOCAL_FILE_PATH", "default") - ALBCustomEndpoint = os.Getenv("TF_ACC_ALB_CUSTOM_ENDPOINT") - CdnCustomEndpoint = os.Getenv("TF_ACC_CDN_CUSTOM_ENDPOINT") - DnsCustomEndpoint = os.Getenv("TF_ACC_DNS_CUSTOM_ENDPOINT") - EdgeCloudCustomEndpoint = os.Getenv("TF_ACC_EDGECLOUD_CUSTOM_ENDPOINT") - GitCustomEndpoint = os.Getenv("TF_ACC_GIT_CUSTOM_ENDPOINT") - IaaSCustomEndpoint = os.Getenv("TF_ACC_IAAS_CUSTOM_ENDPOINT") - KMSCustomEndpoint = os.Getenv("TF_ACC_KMS_CUSTOM_ENDPOINT") - LoadBalancerCustomEndpoint = os.Getenv("TF_ACC_LOADBALANCER_CUSTOM_ENDPOINT") - LogMeCustomEndpoint = os.Getenv("TF_ACC_LOGME_CUSTOM_ENDPOINT") - LogsCustomEndpoint = os.Getenv("TF_ACC_LOGS_CUSTOM_ENDPOINT") - MariaDBCustomEndpoint = os.Getenv("TF_ACC_MARIADB_CUSTOM_ENDPOINT") - ModelServingCustomEndpoint = os.Getenv("TF_ACC_MODELSERVING_CUSTOM_ENDPOINT") - AuthorizationCustomEndpoint = os.Getenv("TF_ACC_AUTHORIZATION_CUSTOM_ENDPOINT") - MongoDBFlexCustomEndpoint = os.Getenv("TF_ACC_MONGODBFLEX_CUSTOM_ENDPOINT") - OpenSearchCustomEndpoint = os.Getenv("TF_ACC_OPENSEARCH_CUSTOM_ENDPOINT") - ObservabilityCustomEndpoint = os.Getenv("TF_ACC_OBSERVABILITY_CUSTOM_ENDPOINT") - ObjectStorageCustomEndpoint = os.Getenv("TF_ACC_OBJECTSTORAGE_CUSTOM_ENDPOINT") - PostgresFlexCustomEndpoint = os.Getenv("TF_ACC_POSTGRESFLEX_CUSTOM_ENDPOINT") - RabbitMQCustomEndpoint = os.Getenv("TF_ACC_RABBITMQ_CUSTOM_ENDPOINT") - RedisCustomEndpoint = os.Getenv("TF_ACC_REDIS_CUSTOM_ENDPOINT") - ResourceManagerCustomEndpoint = os.Getenv("TF_ACC_RESOURCEMANAGER_CUSTOM_ENDPOINT") - ScfCustomEndpoint = os.Getenv("TF_ACC_SCF_CUSTOM_ENDPOINT") - SecretsManagerCustomEndpoint = os.Getenv("TF_ACC_SECRETSMANAGER_CUSTOM_ENDPOINT") - SQLServerFlexCustomEndpoint = os.Getenv("TF_ACC_SQLSERVERFLEX_CUSTOM_ENDPOINT") - ServerBackupCustomEndpoint = os.Getenv("TF_ACC_SERVER_BACKUP_CUSTOM_ENDPOINT") - ServerUpdateCustomEndpoint = os.Getenv("TF_ACC_SERVER_UPDATE_CUSTOM_ENDPOINT") - SFSCustomEndpoint = os.Getenv("TF_ACC_SFS_CUSTOM_ENDPOINT") - ServiceAccountCustomEndpoint = os.Getenv("TF_ACC_SERVICE_ACCOUNT_CUSTOM_ENDPOINT") - TokenCustomEndpoint = os.Getenv("TF_ACC_TOKEN_CUSTOM_ENDPOINT") - SKECustomEndpoint = os.Getenv("TF_ACC_SKE_CUSTOM_ENDPOINT") -) - -// Provider config helper functions - -func ALBProviderConfig() string { - if ALBCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - alb_custom_endpoint = "%s" - }`, + ALBCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_ALB_CUSTOM_ENDPOINT", providerName: "alb_custom_endpoint"} + CdnCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_CDN_CUSTOM_ENDPOINT", providerName: "cdn_custom_endpoint"} + DnsCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_DNS_CUSTOM_ENDPOINT", providerName: "dns_custom_endpoint"} + EdgeCloudCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_EDGECLOUD_CUSTOM_ENDPOINT", providerName: "edgecloud_custom_endpoint"} + GitCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_GIT_CUSTOM_ENDPOINT", providerName: "git_custom_endpoint"} + IaaSCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_IAAS_CUSTOM_ENDPOINT", providerName: "iaas_custom_endpoint"} + KMSCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_KMS_CUSTOM_ENDPOINT", providerName: "kms_custom_endpoint"} + LoadBalancerCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_LOADBALANCER_CUSTOM_ENDPOINT", providerName: "loadbalancer_custom_endpoint"} + LogMeCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_LOGME_CUSTOM_ENDPOINT", providerName: "logme_custom_endpoint"} + LogsCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_LOGS_CUSTOM_ENDPOINT", providerName: "logs_custom_endpoint"} + MariaDBCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_MARIADB_CUSTOM_ENDPOINT", providerName: "mariadb_custom_endpoint"} + ModelServingCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_MODELSERVING_CUSTOM_ENDPOINT", providerName: "modelserving_custom_endpoint"} + AuthorizationCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_AUTHORIZATION_CUSTOM_ENDPOINT", providerName: "authorization_custom_endpoint"} + MongoDBFlexCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_MONGODBFLEX_CUSTOM_ENDPOINT", providerName: "mongodbflex_custom_endpoint"} + OpenSearchCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_OPENSEARCH_CUSTOM_ENDPOINT", providerName: "opensearch_custom_endpoint"} + ObservabilityCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_OBSERVABILITY_CUSTOM_ENDPOINT", providerName: "observability_custom_endpoint"} + ObjectStorageCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_OBJECTSTORAGE_CUSTOM_ENDPOINT", providerName: "objectstorage_custom_endpoint"} + PostgresFlexCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_POSTGRESFLEX_CUSTOM_ENDPOINT", providerName: "postgresflex_custom_endpoint"} + RabbitMQCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_RABBITMQ_CUSTOM_ENDPOINT", providerName: "rabbitmq_custom_endpoint"} + RedisCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_REDIS_CUSTOM_ENDPOINT", providerName: "redis_custom_endpoint"} + ResourceManagerCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_RESOURCEMANAGER_CUSTOM_ENDPOINT", providerName: "resourcemanager_custom_endpoint"} + ScfCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SCF_CUSTOM_ENDPOINT", providerName: "scf_custom_endpoint"} + SecretsManagerCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SECRETSMANAGER_CUSTOM_ENDPOINT", providerName: "secretsmanager_custom_endpoint"} + SQLServerFlexCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SQLSERVERFLEX_CUSTOM_ENDPOINT", providerName: "sqlserverflex_custom_endpoint"} + ServerBackupCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SERVER_BACKUP_CUSTOM_ENDPOINT", providerName: "server_backup_custom_endpoint"} + ServerUpdateCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SERVER_UPDATE_CUSTOM_ENDPOINT", providerName: "server_update_custom_endpoint"} + SFSCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SFS_CUSTOM_ENDPOINT", providerName: "sfs_custom_endpoint"} + ServiceAccountCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SERVICE_ACCOUNT_CUSTOM_ENDPOINT", providerName: "service_account_custom_endpoint"} + TokenCustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_TOKEN_CUSTOM_ENDPOINT", providerName: "token_custom_endpoint"} + SKECustomEndpoint = customEndpointConfig{envVarName: "TF_ACC_SKE_CUSTOM_ENDPOINT", providerName: "ske_custom_endpoint"} + + allCustomEndpoints = []customEndpointConfig{ ALBCustomEndpoint, - ) -} -func ObservabilityProviderConfig() string { - if ObservabilityCustomEndpoint == "" { - return `provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - observability_custom_endpoint = "%s" - }`, - ObservabilityCustomEndpoint, - ) -} -func CdnProviderConfig() string { - if CdnCustomEndpoint == "" { - return ` - provider "stackit" { - enable_beta_resources = true - }` - } - return fmt.Sprintf(` - provider "stackit" { - cdn_custom_endpoint = "%s" - enable_beta_resources = true - }`, CdnCustomEndpoint, - ) -} - -func DnsProviderConfig() string { - if DnsCustomEndpoint == "" { - return `provider "stackit" {}` - } - return fmt.Sprintf(` - provider "stackit" { - dns_custom_endpoint = "%s" - }`, DnsCustomEndpoint, - ) -} - -func EdgeCloudProviderConfig() string { - if EdgeCloudCustomEndpoint == "" { - return fmt.Sprintf(` - provider "stackit" { - enable_beta_resources = true - default_region = "%s" - }`, - Region, - ) - } - return fmt.Sprintf(` - provider "stackit" { - edgecloud_custom_endpoint = "%s" - enable_beta_resources = true - default_region = "%s" - }`, EdgeCloudCustomEndpoint, - Region, - ) -} - -func IaaSProviderConfig() string { - if IaaSCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - iaas_custom_endpoint = "%s" - }`, - IaaSCustomEndpoint, - ) -} - -func IaaSProviderConfigWithBetaResourcesEnabled() string { - if IaaSCustomEndpoint == "" { - return ` - provider "stackit" { - enable_beta_resources = true - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - enable_beta_resources = true - iaas_custom_endpoint = "%s" - }`, - IaaSCustomEndpoint, - ) -} - -func IaaSProviderConfigWithExperiments() string { - if IaaSCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - experiments = [ "routing-tables", "network" ] - }` - } - return fmt.Sprintf(` - provider "stackit" { - iaas_custom_endpoint = "%s" - experiments = [ "routing-tables", "network" ] - }`, + GitCustomEndpoint, IaaSCustomEndpoint, - ) -} - -func KMSProviderConfig() string { - if KMSCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - kms_custom_endpoint = "%s" - }`, KMSCustomEndpoint, - ) -} - -func LoadBalancerProviderConfig() string { - if LoadBalancerCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - loadbalancer_custom_endpoint = "%s" - }`, LoadBalancerCustomEndpoint, - ) -} - -func LogMeProviderConfig() string { - if LogMeCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - logme_custom_endpoint = "%s" - }`, LogMeCustomEndpoint, - ) -} - -func LogsProviderConfig() string { - if LogsCustomEndpoint == "" { - return ` - provider "stackit" { - enable_beta_resources = true - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - enable_beta_resources = true - logs_custom_endpoint = "%s" - }`, LogsCustomEndpoint, - ) -} - -func MariaDBProviderConfig() string { - if MariaDBCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - mariadb_custom_endpoint = "%s" - }`, MariaDBCustomEndpoint, - ) -} - -func ModelServingProviderConfig() string { - if ModelServingCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - } - ` - } - return fmt.Sprintf(` - provider "stackit" { - modelserving_custom_endpoint = "%s" - }`, ModelServingCustomEndpoint, - ) -} - -func MongoDBFlexProviderConfig() string { - if MongoDBFlexCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - mongodbflex_custom_endpoint = "%s" - }`, + AuthorizationCustomEndpoint, MongoDBFlexCustomEndpoint, - ) -} - -func ObjectStorageProviderConfig() string { - if ObjectStorageCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - objectstorage_custom_endpoint = "%s" - }`, + OpenSearchCustomEndpoint, + ObservabilityCustomEndpoint, ObjectStorageCustomEndpoint, - ) -} - -func OpenSearchProviderConfig() string { - if OpenSearchCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` + PostgresFlexCustomEndpoint, + RabbitMQCustomEndpoint, + RedisCustomEndpoint, + ResourceManagerCustomEndpoint, + ScfCustomEndpoint, + SecretsManagerCustomEndpoint, + SQLServerFlexCustomEndpoint, + ServerBackupCustomEndpoint, + ServerUpdateCustomEndpoint, + SFSCustomEndpoint, + ServiceAccountCustomEndpoint, + TokenCustomEndpoint, + SKECustomEndpoint, } - return fmt.Sprintf(` - provider "stackit" { - opensearch_custom_endpoint = "%s" - }`, - OpenSearchCustomEndpoint, - ) -} +) -func PostgresFlexProviderConfig() string { - if PostgresFlexCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - postgresflex_custom_endpoint = "%s" - }`, - PostgresFlexCustomEndpoint, - ) -} +type Experiment string -func RabbitMQProviderConfig() string { - if RabbitMQCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - rabbitmq_custom_endpoint = "%s" - }`, - RabbitMQCustomEndpoint, - ) -} +const ( + ExperimentRoutingTables Experiment = "routing-tables" + ExperimentNetwork Experiment = "network" + ExperimentIAM Experiment = "iam" +) -func RedisProviderConfig() string { - if RedisCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` - } - return fmt.Sprintf(` - provider "stackit" { - redis_custom_endpoint = "%s" - }`, - RedisCustomEndpoint, - ) +type customEndpointConfig struct { + envVarName string + providerName string } -func ResourceManagerProviderConfig() string { - token := GetTestProjectServiceAccountToken("") - if ResourceManagerCustomEndpoint == "" || AuthorizationCustomEndpoint == "" { - return fmt.Sprintf(` - provider "stackit" { - service_account_token = "%s" - }`, - token, - ) - } - return fmt.Sprintf(` - provider "stackit" { - resourcemanager_custom_endpoint = "%s" - authorization_custom_endpoint = "%s" - service_account_token = "%s" - }`, - ResourceManagerCustomEndpoint, - AuthorizationCustomEndpoint, - token, - ) +type ConfigBuilder struct { + region string + enableBetaResources bool + endpoints map[string]string + experiments []string + serviceAccountToken string } -func SecretsManagerProviderConfig() string { - if SecretsManagerCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` +// NewConfigBuilder creates a new ConfigBuilder with enabled beta resources and region eu01 as default. +// All custom endpoints defined in TF_ACC_*_CUSTOM_ENDPOINT env vars are also set. +func NewConfigBuilder() *ConfigBuilder { + b := &ConfigBuilder{ + region: "eu01", + enableBetaResources: true, + endpoints: make(map[string]string), } - return fmt.Sprintf(` - provider "stackit" { - secretsmanager_custom_endpoint = "%s" - }`, - SecretsManagerCustomEndpoint, - ) -} - -func SQLServerFlexProviderConfig() string { - if SQLServerFlexCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` + for _, endpoint := range allCustomEndpoints { + b.endpoints[endpoint.providerName] = os.Getenv(endpoint.envVarName) } - return fmt.Sprintf(` - provider "stackit" { - sqlserverflex_custom_endpoint = "%s" - }`, - SQLServerFlexCustomEndpoint, - ) + return b } -func ServerBackupProviderConfig() string { - if ServerBackupCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - enable_beta_resources = true - }` - } - return fmt.Sprintf(` - provider "stackit" { - server_backup_custom_endpoint = "%s" - enable_beta_resources = true - }`, - ServerBackupCustomEndpoint, - ) +func (b *ConfigBuilder) Region(region string) *ConfigBuilder { + b.region = region + return b } -func ServerUpdateProviderConfig() string { - if ServerUpdateCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - enable_beta_resources = true - }` - } - return fmt.Sprintf(` - provider "stackit" { - server_update_custom_endpoint = "%s" - enable_beta_resources = true - }`, - ServerUpdateCustomEndpoint, - ) +func (b *ConfigBuilder) EnableBetaResources(enable bool) *ConfigBuilder { + b.enableBetaResources = enable + return b } -func SFSProviderConfig() string { - if SFSCustomEndpoint == "" || TokenCustomEndpoint == "" { - return ` - provider "stackit" { - region = "eu01" - enable_beta_resources = true - }` - } - return fmt.Sprintf(` - provider "stackit" { - region = "eu01" - sfs_custom_endpoint = "%s" - token_custom_endpoint = "%s" - enable_beta_resources = true - }`, - SFSCustomEndpoint, - TokenCustomEndpoint, - ) +func (b *ConfigBuilder) CustomEndpoint(endpoint customEndpointConfig, url string) *ConfigBuilder { + b.endpoints[endpoint.providerName] = url + return b } -func SKEProviderConfig() string { - if SKECustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` +func (b *ConfigBuilder) Experiments(experiments ...Experiment) *ConfigBuilder { + for _, e := range experiments { + b.experiments = append(b.experiments, string(e)) } - return fmt.Sprintf(` - provider "stackit" { - ske_custom_endpoint = "%s" - }`, - SKECustomEndpoint, - ) + return b } -func AuthorizationProviderConfig() string { - if AuthorizationCustomEndpoint == "" || ServiceAccountCustomEndpoint == "" || ResourceManagerCustomEndpoint == "" || TokenCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - experiments = ["iam"] - }` - } - return fmt.Sprintf(` - provider "stackit" { - authorization_custom_endpoint = "%s" - service_account_custom_endpoint = "%s" - resourcemanager_custom_endpoint = "%s" - token_custom_endpoint = "%s" - experiments = ["iam"] - }`, - AuthorizationCustomEndpoint, - ServiceAccountCustomEndpoint, - ResourceManagerCustomEndpoint, - TokenCustomEndpoint, - ) +func (b *ConfigBuilder) ServiceAccountToken(token string) *ConfigBuilder { + b.serviceAccountToken = token + return b } -func ServiceAccountProviderConfig() string { - if ServiceAccountCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - enable_beta_resources = true - }` - } - return fmt.Sprintf(` - provider "stackit" { - service_account_custom_endpoint = "%s" - enable_beta_resources = true - }`, - ServiceAccountCustomEndpoint, - ) +func (b *ConfigBuilder) BuildProviderConfig() string { + tmpl := `provider "stackit" { + default_region = "{{ .Region }}" + enable_beta_resources = {{ .EnableBetaResources }} +{{- if .Experiments }} + experiments = {{ .Experiments | tfslice }} +{{- end }} +{{- if .ServiceAccountToken }} + service_account_token = "{{ .ServiceAccountToken }}" +{{- end }} +{{- range $k, $v := .Endpoints }} + {{ $k }} = "{{ $v }}" +{{- end }} } -func GitProviderConfig() string { - if GitCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - enable_beta_resources = true - }` +` + funcs := template.FuncMap{} + funcs["tfslice"] = func(s []string) string { + return "[\"" + strings.Join(s, "\", \"") + "\"]" } - return fmt.Sprintf(` - provider "stackit" { - git_custom_endpoint = "%s" - enable_beta_resources = true - }`, - GitCustomEndpoint, - ) + parsed := template.Must(template.New("providerConfig").Funcs(funcs).Parse(tmpl)) + var bs bytes.Buffer + setEndpoints := make(map[string]string) + for k, v := range b.endpoints { + if v != "" { + setEndpoints[k] = v + } + } + // template needs public fields + data := struct { + Region string + EnableBetaResources bool + Endpoints map[string]string + Experiments []string + ServiceAccountToken string + }{ + b.region, + b.enableBetaResources, + setEndpoints, + b.experiments, + b.serviceAccountToken, + } + err := parsed.Execute(&bs, data) + if err != nil { + panic(err) + } + return bs.String() } -func ScfProviderConfig() string { - if ScfCustomEndpoint == "" { - return ` - provider "stackit" { - default_region = "eu01" - }` +func (b *ConfigBuilder) BuildClientOptions(service customEndpointConfig) []sdkConf.ConfigurationOption { + var opts []sdkConf.ConfigurationOption + if b.serviceAccountToken != "" { + opts = append(opts, sdkConf.WithToken(b.serviceAccountToken)) } - return fmt.Sprintf(` - provider "stackit" { - default_region = "eu01" - scf_custom_endpoint = "%s" - }`, - ScfCustomEndpoint, - ) + endpoint := b.endpoints[service.providerName] + if endpoint != "" { + opts = append(opts, sdkConf.WithEndpoint(endpoint)) + } + tokenEndPoint := b.endpoints[TokenCustomEndpoint.providerName] + if tokenEndPoint != "" { + opts = append(opts, sdkConf.WithTokenEndpoint(tokenEndPoint)) + } + if b.region != "" { + opts = append(opts, sdkConf.WithRegion(b.region)) + } + return opts } func ResourceNameWithDateTime(name string) string { diff --git a/stackit/internal/testutil/testutil_test.go b/stackit/internal/testutil/testutil_test.go index 449a579f9..dbd6c9305 100644 --- a/stackit/internal/testutil/testutil_test.go +++ b/stackit/internal/testutil/testutil_test.go @@ -1,9 +1,13 @@ package testutil import ( + "os" "testing" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" "github.com/hashicorp/terraform-plugin-testing/config" + sdkConf "github.com/stackitcloud/stackit-sdk-go/core/config" ) func TestConvertConfigVariable(t *testing.T) { @@ -51,3 +55,214 @@ func TestConvertConfigVariable(t *testing.T) { }) } } + +func TestConfigBuilderProviderConfig(t *testing.T) { + t.Parallel() + tests := []struct { + name string + builder *ConfigBuilder + want string + }{ + { + name: "defaults", + builder: NewConfigBuilder(), + want: `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true +} + +`, + }, + { + name: "region", + builder: NewConfigBuilder(). + Region("eu02"), + want: `provider "stackit" { + default_region = "eu02" + enable_beta_resources = true +} + +`, + }, + { + name: "custom endpoints", + builder: NewConfigBuilder(). + CustomEndpoint(CdnCustomEndpoint, "http://cdn.example.com"). + CustomEndpoint(DnsCustomEndpoint, "http://dns.example.com"), + want: `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true + cdn_custom_endpoint = "http://cdn.example.com" + dns_custom_endpoint = "http://dns.example.com" +} + +`, + }, + { + name: "experiments", + builder: NewConfigBuilder(). + Experiments(ExperimentIAM, ExperimentNetwork), + want: `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true + experiments = ["iam", "network"] +} + +`, + }, + { + name: "token", + builder: NewConfigBuilder(). + ServiceAccountToken("expected-token"), + want: `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true + service_account_token = "expected-token" +} + +`, + }, + { + name: "everything", + builder: NewConfigBuilder(). + ServiceAccountToken("expected-token"). + Experiments(ExperimentIAM). + CustomEndpoint(CdnCustomEndpoint, "http://cdn.example.com"), + want: `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true + experiments = ["iam"] + service_account_token = "expected-token" + cdn_custom_endpoint = "http://cdn.example.com" +} + +`, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + got := tt.builder.BuildProviderConfig() + if d := cmp.Diff(got, tt.want); d != "" { + t.Errorf("ConfigBuilder.BuildProviderConfig() = diff: %s", d) + } + }) + } +} + +func TestConfigBuilderProviderConfigEnvVar(t *testing.T) { + os.Setenv(CdnCustomEndpoint.envVarName, "http://expected.example.com") // nolint:errcheck // test would fail + defer func() { + err := os.Unsetenv(CdnCustomEndpoint.envVarName) + if err != nil { + t.Fatalf("unset env: %v", err) + } + }() + got := NewConfigBuilder().BuildProviderConfig() + want := `provider "stackit" { + default_region = "eu01" + enable_beta_resources = true + cdn_custom_endpoint = "http://expected.example.com" +} + +` + if d := cmp.Diff(got, want); d != "" { + t.Errorf("ConfigBuilder.BuildProviderConfig() = diff: %s", d) + } +} + +func TestConfigBuilderClientOptions(t *testing.T) { + clientEndpoint := CdnCustomEndpoint + tests := []struct { + name string + builder *ConfigBuilder + want sdkConf.Configuration + }{ + { + name: "default", + builder: NewConfigBuilder(), + want: sdkConf.Configuration{ + Region: "eu01", + }, + }, + { + name: "custom token endpoint", + builder: NewConfigBuilder(). + CustomEndpoint(TokenCustomEndpoint, "http://token.example.com"), + want: sdkConf.Configuration{ + TokenCustomUrl: "http://token.example.com", + Region: "eu01", + }, + }, + { + name: "token", + builder: NewConfigBuilder(). + ServiceAccountToken("expected-token"), + want: sdkConf.Configuration{ + Token: "expected-token", + Region: "eu01", + }, + }, + { + name: "custom service endpoint", + builder: NewConfigBuilder(). + CustomEndpoint(clientEndpoint, "http://cdn.example.com"), + want: sdkConf.Configuration{ + Servers: sdkConf.ServerConfigurations{ + { + URL: "http://cdn.example.com", + Description: "User provided URL", + }, + }, + Region: "eu01", + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + opts := tt.builder.BuildClientOptions(CdnCustomEndpoint) + got := sdkConf.Configuration{} + for _, opt := range opts { + err := opt(&got) + if err != nil { + t.Fatalf("Config option returned error: %v", err) + } + } + if d := cmp.Diff(got, tt.want, cmpopts.IgnoreUnexported(sdkConf.Configuration{})); d != "" { + t.Errorf("ConfigBuilder.BuildClientOptions() = diff: %s", d) + } + }) + } +} + +func TestConfigBuilderClientOptionsEnvVar(t *testing.T) { + os.Setenv(CdnCustomEndpoint.envVarName, "http://cdn.example.com") // nolint:errcheck // test would fail + defer func() { + err := os.Unsetenv(CdnCustomEndpoint.envVarName) + if err != nil { + t.Fatalf("unset env: %v", err) + } + }() + opts := NewConfigBuilder().BuildClientOptions(CdnCustomEndpoint) + got := sdkConf.Configuration{} + for _, opt := range opts { + err := opt(&got) + if err != nil { + t.Fatalf("Config option returned error: %v", err) + } + } + want := sdkConf.Configuration{ + Servers: sdkConf.ServerConfigurations{ + { + URL: "http://cdn.example.com", + Description: "User provided URL", + }, + }, + Region: "eu01", + } + if d := cmp.Diff(got, want, cmpopts.IgnoreUnexported(sdkConf.Configuration{})); d != "" { + t.Errorf("ConfigBuilder.BuildClientOptions() = diff: %s", d) + } +}