diff --git a/CHANGELOG.md b/CHANGELOG.md index 921d2f79..2c3e86f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,17 @@ All notable changes to this project will be documented in this file. -## [Unreleased](https://github.com/dbt-labs/terraform-provider-dbtcloud/compare/v0.3.3...HEAD) +## [Unreleased](https://github.com/dbt-labs/terraform-provider-dbtcloud/compare/v0.3.4...HEAD) + +## [0.3.4](https://github.com/dbt-labs/terraform-provider-dbtcloud/compare/v0.3.3...v0.3.4) + +## Changes + +- [#255](https://github.com/dbt-labs/terraform-provider-dbtcloud/issues/255) - Add new datasource `dbtcloud_environments` to return all environments across an account, or all environments for a give project ID + +## Behind the scenes + +- Move the `dbtcloud_environment` datasource to the Terraform Plugin Framework ## [0.3.3](https://github.com/dbt-labs/terraform-provider-dbtcloud/compare/v0.3.2...v0.3.3) diff --git a/VERSION b/VERSION deleted file mode 100644 index ee1372d3..00000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.2.2 diff --git a/docs/data-sources/environment.md b/docs/data-sources/environment.md index cd66297a..ef87c1d7 100644 --- a/docs/data-sources/environment.md +++ b/docs/data-sources/environment.md @@ -3,12 +3,12 @@ page_title: "dbtcloud_environment Data Source - dbtcloud" subcategory: "" description: |- - + Retrieve data for a single environment --- # dbtcloud_environment (Data Source) - +Retrieve data for a single environment @@ -17,18 +17,16 @@ description: |- ### Required -- `environment_id` (Number) ID of the environment -- `project_id` (Number) Project ID to create the environment in +- `environment_id` (Number) The ID of the environment +- `project_id` (Number) The project ID to which the environment belong ### Read-Only -- `credential_id` (Number) Credential ID to create the environment with -- `custom_branch` (String) Which custom branch to use in this environment +- `credentials_id` (Number) The project ID to which the environment belong +- `custom_branch` (String) The type of deployment environment (currently 'production', 'staging' or empty) - `dbt_version` (String) Version number of dbt to use in this environment, usually in the format 1.2.0-latest rather than core versions -- `deployment_type` (String) The type of deployment environment (currently 'production' or empty) +- `deployment_type` (String) The name of the environment - `extended_attributes_id` (Number) The ID of the extended attributes applied -- `id` (String) The ID of this resource. -- `is_active` (Boolean) Whether the environment is active -- `name` (String) Environment name -- `type` (String) The type of environment (must be either development or deployment) +- `name` (String) The name of the environment +- `type` (String) The name of the environment - `use_custom_branch` (Boolean) Whether to use a custom git branch in this environment diff --git a/docs/data-sources/environments.md b/docs/data-sources/environments.md new file mode 100644 index 00000000..101bf885 --- /dev/null +++ b/docs/data-sources/environments.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "dbtcloud_environments Data Source - dbtcloud" +subcategory: "" +description: |- + Retrieve data for multiple environments +--- + +# dbtcloud_environments (Data Source) + +Retrieve data for multiple environments + + + + +## Schema + +### Optional + +- `project_id` (Number) The project ID to filter the environments for [Optional] + +### Read-Only + +- `environments` (Attributes Set) The list of environments (see [below for nested schema](#nestedatt--environments)) + + +### Nested Schema for `environments` + +Read-Only: + +- `credentials_id` (Number) The project ID to which the environment belong +- `custom_branch` (String) The type of deployment environment (currently 'production', 'staging' or empty) +- `dbt_version` (String) Version number of dbt to use in this environment, usually in the format 1.2.0-latest rather than core versions +- `deployment_type` (String) The name of the environment +- `environment_id` (Number) The ID of the environment +- `extended_attributes_id` (Number) The ID of the extended attributes applied +- `name` (String) The name of the environment +- `project_id` (Number) The project ID to which the environment belong +- `type` (String) The name of the environment +- `use_custom_branch` (Boolean) Whether to use a custom git branch in this environment diff --git a/docs/resources/group_partial_permissions.md b/docs/resources/group_partial_permissions.md index 631e1f77..767607dd 100644 --- a/docs/resources/group_partial_permissions.md +++ b/docs/resources/group_partial_permissions.md @@ -8,7 +8,7 @@ description: |- The current behavior of the resource is the following: when using dbt_cloud_group_partial_permissions, don't use dbt_cloud_group for the same group in any other project/workspace. Otherwise, the behavior is undefined and partial permissions might be removed.when defining a new dbt_cloud_group_partial_permissions - if the group doesn't exist with the given name, it will be createdif a group exists with the given name, permissions will be added in the dbt Cloud group if they are not present yetin a given Terraform project/workspace, avoid having different ~~dbtcloudgrouppartialpermissions` for the same group name to prevent sync issues. Add all the permissions in the same resource.all resources for the same group name need to have the same values for assign_by_default and sso_mapping_groups. Those fields are not considered "partial". (Please raise feedback in GitHub if you think that sso_mapping_groups should be "partial" as well)when a resource is updated, the dbt Cloud group will be updated accordingly, removing and adding permissionswhen the resource is deleted/destroyed, if the resulting permission sets is empty, the group will be deleted ; otherwise, the group will be updated, removing the permissions from the deleted resource + if the group doesn't exist with the given name, it will be createdif a group exists with the given name, permissions will be added in the dbt Cloud group if they are not present yetin a given Terraform project/workspace, avoid having different dbt_cloud_group_partial_permissions for the same group name to prevent sync issues. Add all the permissions in the same resource.all resources for the same group name need to have the same values for assign_by_default and sso_mapping_groups. Those fields are not considered "partial". (Please raise feedback in GitHub if you think that sso_mapping_groups should be "partial" as well)when a resource is updated, the dbt Cloud group will be updated accordingly, removing and adding permissionswhen the resource is deleted/destroyed, if the resulting permission sets is empty, the group will be deleted ; otherwise, the group will be updated, removing the permissions from the deleted resource --- # dbtcloud_group_partial_permissions (Resource) @@ -26,7 +26,7 @@ The current behavior of the resource is the following: - when defining a new `dbt_cloud_group_partial_permissions` - if the group doesn't exist with the given `name`, it will be created - if a group exists with the given `name`, permissions will be added in the dbt Cloud group if they are not present yet -- in a given Terraform project/workspace, avoid having different ~~dbt_cloud_group_partial_permissions` for the same group name to prevent sync issues. Add all the permissions in the same resource. +- in a given Terraform project/workspace, avoid having different `dbt_cloud_group_partial_permissions` for the same group name to prevent sync issues. Add all the permissions in the same resource. - all resources for the same group name need to have the same values for `assign_by_default` and `sso_mapping_groups`. Those fields are not considered "partial". (Please raise feedback in GitHub if you think that `sso_mapping_groups` should be "partial" as well) - when a resource is updated, the dbt Cloud group will be updated accordingly, removing and adding permissions - when the resource is deleted/destroyed, if the resulting permission sets is empty, the group will be deleted ; otherwise, the group will be updated, removing the permissions from the deleted resource diff --git a/pkg/dbt_cloud/paginate.go b/pkg/dbt_cloud/paginate.go index 88a37b72..84c1222b 100644 --- a/pkg/dbt_cloud/paginate.go +++ b/pkg/dbt_cloud/paginate.go @@ -105,3 +105,26 @@ func (c *Client) GetAllGroupIDsByName(groupName string) []int { return 0, false }) } + +func (c *Client) GetAllEnvironments(projectID int) ([]Environment, error) { + url := fmt.Sprintf("%s/v3/accounts/%d/environments/", c.HostURL, c.AccountID) + + if projectID != 0 { + url = fmt.Sprintf("%s?project_id=%d", url, projectID) + } + + allEnvironmentsRaw := c.GetData(url) + + allEnvs := []Environment{} + for _, env := range allEnvironmentsRaw { + + data, _ := json.Marshal(env) + currentEnv := Environment{} + err := json.Unmarshal(data, ¤tEnv) + if err != nil { + return nil, err + } + allEnvs = append(allEnvs, currentEnv) + } + return allEnvs, nil +} diff --git a/pkg/framework/objects/environment/data_source.go b/pkg/framework/objects/environment/data_source.go new file mode 100644 index 00000000..3320bb09 --- /dev/null +++ b/pkg/framework/objects/environment/data_source.go @@ -0,0 +1,87 @@ +package environment + +import ( + "context" + "fmt" + + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/helper" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/types" +) + +var ( + _ datasource.DataSource = &environmentDataSource{} + _ datasource.DataSourceWithConfigure = &environmentDataSource{} +) + +func EnvironmentDataSource() datasource.DataSource { + return &environmentDataSource{} +} + +type environmentDataSource struct { + client *dbt_cloud.Client +} + +func (d *environmentDataSource) Metadata( + _ context.Context, + req datasource.MetadataRequest, + resp *datasource.MetadataResponse, +) { + resp.TypeName = req.ProviderTypeName + "_environment" +} + +func (d *environmentDataSource) Read( + ctx context.Context, + req datasource.ReadRequest, + resp *datasource.ReadResponse, +) { + var config EnvironmentDataSourceModel + + resp.Diagnostics.Append(req.Config.Get(ctx, &config)...) + + environment, err := d.client.GetEnvironment( + int(config.ProjectID.ValueInt64()), + int(config.EnvironmentID.ValueInt64()), + ) + if err != nil { + resp.Diagnostics.AddError( + fmt.Sprintf("Did not find environment with this ID: %s", config.EnvironmentID), + err.Error(), + ) + return + } + + state := config + + state.CredentialsID = types.Int64PointerValue( + helper.IntPointerToInt64Pointer(environment.Credential_Id), + ) + state.Name = types.StringValue(environment.Name) + state.DbtVersion = types.StringValue(environment.Dbt_Version) + state.Type = types.StringValue(environment.Type) + state.UseCustomBranch = types.BoolValue(environment.Use_Custom_Branch) + state.CustomBranch = types.StringPointerValue(environment.Custom_Branch) + state.DeploymentType = types.StringPointerValue(environment.DeploymentType) + state.ExtendedAttributesID = types.Int64PointerValue( + helper.IntPointerToInt64Pointer(environment.ExtendedAttributesID), + ) + + diags := resp.State.Set(ctx, &state) + resp.Diagnostics.Append(diags...) + if resp.Diagnostics.HasError() { + return + } +} + +func (d *environmentDataSource) Configure( + _ context.Context, + req datasource.ConfigureRequest, + _ *datasource.ConfigureResponse, +) { + if req.ProviderData == nil { + return + } + + d.client = req.ProviderData.(*dbt_cloud.Client) +} diff --git a/pkg/sdkv2/data_sources/environment_acceptance_test.go b/pkg/framework/objects/environment/data_source_acceptance_test.go similarity index 71% rename from pkg/sdkv2/data_sources/environment_acceptance_test.go rename to pkg/framework/objects/environment/data_source_acceptance_test.go index 59edb086..f47dd71d 100644 --- a/pkg/sdkv2/data_sources/environment_acceptance_test.go +++ b/pkg/framework/objects/environment/data_source_acceptance_test.go @@ -1,11 +1,12 @@ -package data_sources_test +package environment_test import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/acctest_helper" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudEnvironmentDataSource(t *testing.T) { @@ -16,19 +17,25 @@ func TestAccDbtCloudEnvironmentDataSource(t *testing.T) { config := environment(randomProjectName, randomEnvironmentName) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_environment.test", "name", randomEnvironmentName), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment.test", + "name", + randomEnvironmentName, + ), resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "environment_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "project_id"), - resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "is_active"), - resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "credential_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "dbt_version"), resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "type"), resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "use_custom_branch"), - resource.TestCheckResourceAttr("data.dbtcloud_environment.test", "custom_branch", "customBranchName"), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment.test", + "custom_branch", + "customBranchName", + ), ) resource.ParallelTest(t, resource.TestCase{ - Providers: providers(), + ProtoV6ProviderFactories: acctest_helper.TestAccProtoV6ProviderFactories, Steps: []resource.TestStep{ { Config: config, @@ -57,5 +64,5 @@ func environment(projectName, environmentName string) string { project_id = dbtcloud_project.test_project.id environment_id = dbtcloud_environment.test_environment.environment_id } - `, projectName, environmentName, DBT_CLOUD_VERSION) + `, projectName, environmentName, acctest_helper.DBT_CLOUD_VERSION) } diff --git a/pkg/framework/objects/environment/data_source_all.go b/pkg/framework/objects/environment/data_source_all.go new file mode 100644 index 00000000..221ede48 --- /dev/null +++ b/pkg/framework/objects/environment/data_source_all.go @@ -0,0 +1,103 @@ +package environment + +import ( + "context" + + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/helper" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/types" +) + +var ( + _ datasource.DataSource = &environmentsDataSources{} + _ datasource.DataSourceWithConfigure = &environmentsDataSources{} +) + +func EnvironmentsDataSources() datasource.DataSource { + return &environmentsDataSources{} +} + +type environmentsDataSources struct { + client *dbt_cloud.Client +} + +func (d *environmentsDataSources) Metadata( + _ context.Context, + req datasource.MetadataRequest, + resp *datasource.MetadataResponse, +) { + resp.TypeName = req.ProviderTypeName + "_environments" +} + +func (d *environmentsDataSources) Read( + ctx context.Context, + req datasource.ReadRequest, + resp *datasource.ReadResponse, +) { + var config EnvironmentsDataSourceModel + + resp.Diagnostics.Append(req.Config.Get(ctx, &config)...) + + var projectID int + if config.ProjectID.IsNull() { + projectID = 0 + } else { + projectID = int(config.ProjectID.ValueInt64()) + } + + environments, err := d.client.GetAllEnvironments(projectID) + + if err != nil { + resp.Diagnostics.AddError( + "Issue when retrieving environments", + err.Error(), + ) + return + } + + state := config + + allEnvs := []EnvironmentDataSourceModel{} + for _, environment := range environments { + currentEnv := EnvironmentDataSourceModel{} + + currentEnv.EnvironmentID = types.Int64PointerValue( + helper.IntPointerToInt64Pointer(environment.Environment_Id), + ) + currentEnv.ProjectID = types.Int64Value(int64(environment.Project_Id)) + + currentEnv.CredentialsID = types.Int64PointerValue( + helper.IntPointerToInt64Pointer(environment.Credential_Id), + ) + currentEnv.Name = types.StringValue(environment.Name) + currentEnv.DbtVersion = types.StringValue(environment.Dbt_Version) + currentEnv.Type = types.StringValue(environment.Type) + currentEnv.UseCustomBranch = types.BoolValue(environment.Use_Custom_Branch) + currentEnv.CustomBranch = types.StringPointerValue(environment.Custom_Branch) + currentEnv.DeploymentType = types.StringPointerValue(environment.DeploymentType) + currentEnv.ExtendedAttributesID = types.Int64PointerValue( + helper.IntPointerToInt64Pointer(environment.ExtendedAttributesID), + ) + allEnvs = append(allEnvs, currentEnv) + } + state.Environments = allEnvs + + diags := resp.State.Set(ctx, &state) + resp.Diagnostics.Append(diags...) + if resp.Diagnostics.HasError() { + return + } +} + +func (d *environmentsDataSources) Configure( + _ context.Context, + req datasource.ConfigureRequest, + _ *datasource.ConfigureResponse, +) { + if req.ProviderData == nil { + return + } + + d.client = req.ProviderData.(*dbt_cloud.Client) +} diff --git a/pkg/framework/objects/environment/data_source_all_acceptance_test.go b/pkg/framework/objects/environment/data_source_all_acceptance_test.go new file mode 100644 index 00000000..0b6266fd --- /dev/null +++ b/pkg/framework/objects/environment/data_source_all_acceptance_test.go @@ -0,0 +1,94 @@ +package environment_test + +import ( + "fmt" + "testing" + + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/acctest_helper" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" +) + +func TestAccDbtCloudEnvironmentsDataSource(t *testing.T) { + + randomProjectName1 := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) + randomProjectName2 := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) + randomEnvironmentName1 := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) + randomEnvironmentName2 := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) + + config := environments( + randomProjectName1, + randomProjectName2, + randomEnvironmentName1, + randomEnvironmentName2, + ) + + check := resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttrSet( + "data.dbtcloud_environments.test_all", + "environments.1.%", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_environments.test_one_project", + "environments.#", + "1", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_environments.test_one_project", + "environments.0.name", + randomEnvironmentName2, + ), + ) + + resource.ParallelTest(t, resource.TestCase{ + ProtoV6ProviderFactories: acctest_helper.TestAccProtoV6ProviderFactories, + Steps: []resource.TestStep{ + { + Config: config, + Check: check, + }, + }, + }) +} + +func environments( + randomProjectName1, + randomProjectName2, + randomEnvironmentName1, + randomEnvironmentName2 string) string { + return fmt.Sprintf(` + resource "dbtcloud_project" "test_project1" { + name = "%s" + } + + resource "dbtcloud_project" "test_project2" { + name = "%s" + } + + resource "dbtcloud_environment" "test_environment1" { + project_id = dbtcloud_project.test_project1.id + name = "%s" + dbt_version = "%s" + type = "deployment" + use_custom_branch = true + custom_branch = "customBranchName" + } + + resource "dbtcloud_environment" "test_environment2" { + project_id = dbtcloud_project.test_project2.id + name = "%s" + dbt_version = "%s" + type = "deployment" + use_custom_branch = false + } + + data "dbtcloud_environments" "test_all" { + depends_on = [dbtcloud_environment.test_environment1, dbtcloud_environment.test_environment2] + } + + data "dbtcloud_environments" "test_one_project" { + project_id = dbtcloud_project.test_project2.id + depends_on = [dbtcloud_environment.test_environment1, dbtcloud_environment.test_environment2] + } + `, randomProjectName1, randomProjectName2, randomEnvironmentName1, acctest_helper.DBT_CLOUD_VERSION, randomEnvironmentName2, acctest_helper.DBT_CLOUD_VERSION) +} diff --git a/pkg/framework/objects/environment/model.go b/pkg/framework/objects/environment/model.go new file mode 100644 index 00000000..599965f8 --- /dev/null +++ b/pkg/framework/objects/environment/model.go @@ -0,0 +1,21 @@ +package environment + +import "github.com/hashicorp/terraform-plugin-framework/types" + +type EnvironmentDataSourceModel struct { + EnvironmentID types.Int64 `tfsdk:"environment_id"` + ProjectID types.Int64 `tfsdk:"project_id"` + CredentialsID types.Int64 `tfsdk:"credentials_id"` + Name types.String `tfsdk:"name"` + DbtVersion types.String `tfsdk:"dbt_version"` + Type types.String `tfsdk:"type"` + UseCustomBranch types.Bool `tfsdk:"use_custom_branch"` + CustomBranch types.String `tfsdk:"custom_branch"` + DeploymentType types.String `tfsdk:"deployment_type"` + ExtendedAttributesID types.Int64 `tfsdk:"extended_attributes_id"` +} + +type EnvironmentsDataSourceModel struct { + ProjectID types.Int64 `tfsdk:"project_id"` + Environments []EnvironmentDataSourceModel `tfsdk:"environments"` +} diff --git a/pkg/framework/objects/environment/schema.go b/pkg/framework/objects/environment/schema.go new file mode 100644 index 00000000..d7e2c162 --- /dev/null +++ b/pkg/framework/objects/environment/schema.go @@ -0,0 +1,124 @@ +package environment + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" +) + +func (r *environmentDataSource) Schema( + _ context.Context, + _ datasource.SchemaRequest, + resp *datasource.SchemaResponse, +) { + resp.Schema = schema.Schema{ + Description: "Retrieve data for a single environment", + Attributes: map[string]schema.Attribute{ + "environment_id": schema.Int64Attribute{ + Required: true, + Description: "The ID of the environment", + }, + "project_id": schema.Int64Attribute{ + Required: true, + Description: "The project ID to which the environment belong", + }, + "credentials_id": schema.Int64Attribute{ + Computed: true, + Description: "The project ID to which the environment belong", + }, + "name": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "dbt_version": schema.StringAttribute{ + Computed: true, + Description: "Version number of dbt to use in this environment, usually in the format 1.2.0-latest rather than core versions", + }, + "type": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "use_custom_branch": schema.BoolAttribute{ + Computed: true, + Description: "Whether to use a custom git branch in this environment", + }, + "custom_branch": schema.StringAttribute{ + Computed: true, + Description: "The type of deployment environment (currently 'production', 'staging' or empty)", + }, + "deployment_type": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "extended_attributes_id": schema.Int64Attribute{ + Computed: true, + Description: "The ID of the extended attributes applied", + }, + }, + } +} + +func (r *environmentsDataSources) Schema( + _ context.Context, + _ datasource.SchemaRequest, + resp *datasource.SchemaResponse, +) { + resp.Schema = schema.Schema{ + Description: "Retrieve data for multiple environments", + Attributes: map[string]schema.Attribute{ + "project_id": schema.Int64Attribute{ + Optional: true, + Description: "The project ID to filter the environments for [Optional]", + }, + "environments": schema.SetNestedAttribute{ + Description: "The list of environments", + Computed: true, + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "environment_id": schema.Int64Attribute{ + Computed: true, + Description: "The ID of the environment", + }, + "project_id": schema.Int64Attribute{ + Computed: true, + Description: "The project ID to which the environment belong", + }, + "credentials_id": schema.Int64Attribute{ + Computed: true, + Description: "The project ID to which the environment belong", + }, + "name": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "dbt_version": schema.StringAttribute{ + Computed: true, + Description: "Version number of dbt to use in this environment, usually in the format 1.2.0-latest rather than core versions", + }, + "type": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "use_custom_branch": schema.BoolAttribute{ + Computed: true, + Description: "Whether to use a custom git branch in this environment", + }, + "custom_branch": schema.StringAttribute{ + Computed: true, + Description: "The type of deployment environment (currently 'production', 'staging' or empty)", + }, + "deployment_type": schema.StringAttribute{ + Computed: true, + Description: "The name of the environment", + }, + "extended_attributes_id": schema.Int64Attribute{ + Computed: true, + Description: "The ID of the extended attributes applied", + }, + }, + }, + }, + }, + } +} diff --git a/pkg/framework/objects/group_partial_permissions/schema.go b/pkg/framework/objects/group_partial_permissions/schema.go index cbd47cba..68a27996 100644 --- a/pkg/framework/objects/group_partial_permissions/schema.go +++ b/pkg/framework/objects/group_partial_permissions/schema.go @@ -35,7 +35,7 @@ func (r *groupPartialPermissionsResource) Schema( - when defining a new ~~~dbt_cloud_group_partial_permissions~~~ - if the group doesn't exist with the given ~~~name~~~, it will be created - if a group exists with the given ~~~name~~~, permissions will be added in the dbt Cloud group if they are not present yet - - in a given Terraform project/workspace, avoid having different ~~dbt_cloud_group_partial_permissions~~~ for the same group name to prevent sync issues. Add all the permissions in the same resource. + - in a given Terraform project/workspace, avoid having different ~~~dbt_cloud_group_partial_permissions~~~ for the same group name to prevent sync issues. Add all the permissions in the same resource. - all resources for the same group name need to have the same values for ~~~assign_by_default~~~ and ~~~sso_mapping_groups~~~. Those fields are not considered "partial". (Please raise feedback in GitHub if you think that ~~~sso_mapping_groups~~~ should be "partial" as well) - when a resource is updated, the dbt Cloud group will be updated accordingly, removing and adding permissions - when the resource is deleted/destroyed, if the resulting permission sets is empty, the group will be deleted ; otherwise, the group will be updated, removing the permissions from the deleted resource diff --git a/pkg/helper/helper.go b/pkg/helper/helper.go index 2724078b..baa55efb 100644 --- a/pkg/helper/helper.go +++ b/pkg/helper/helper.go @@ -30,3 +30,11 @@ func DocString(inp string) string { newString := strings.ReplaceAll(inp, "~~~", "`") return regexp.MustCompile(`(?m)^\t+`).ReplaceAllString(newString, "") } + +func IntPointerToInt64Pointer(value *int) *int64 { + if value == nil { + return nil + } + ret := int64(*value) + return &ret +} diff --git a/pkg/provider/framework_provider.go b/pkg/provider/framework_provider.go index 92437bec..21c1e37d 100644 --- a/pkg/provider/framework_provider.go +++ b/pkg/provider/framework_provider.go @@ -6,6 +6,7 @@ import ( "strconv" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/objects/environment" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/objects/group_partial_permissions" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/objects/notification" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/objects/user" @@ -171,6 +172,8 @@ func (p *dbtCloudProvider) DataSources(_ context.Context) []func() datasource.Da return []func() datasource.DataSource{ user.UserDataSource, notification.NotificationDataSource, + environment.EnvironmentDataSource, + environment.EnvironmentsDataSources, } } diff --git a/pkg/provider/sdk_provider.go b/pkg/provider/sdk_provider.go index f5faa59b..d221e337 100644 --- a/pkg/provider/sdk_provider.go +++ b/pkg/provider/sdk_provider.go @@ -45,7 +45,6 @@ func SDKProvider(version string) func() *schema.Provider { "dbtcloud_group": data_sources.DatasourceGroup(), "dbtcloud_job": data_sources.DatasourceJob(), "dbtcloud_project": data_sources.DatasourceProject(), - "dbtcloud_environment": data_sources.DatasourceEnvironment(), "dbtcloud_environment_variable": data_sources.DatasourceEnvironmentVariable(), "dbtcloud_snowflake_credential": data_sources.DatasourceSnowflakeCredential(), "dbtcloud_bigquery_credential": data_sources.DatasourceBigQueryCredential(), diff --git a/pkg/sdkv2/data_sources/bigquery_connection_acceptance_test.go b/pkg/sdkv2/data_sources/bigquery_connection_acceptance_test.go index 30847a50..b9b3ae7a 100644 --- a/pkg/sdkv2/data_sources/bigquery_connection_acceptance_test.go +++ b/pkg/sdkv2/data_sources/bigquery_connection_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudBigQueryConnectionDataSource(t *testing.T) { @@ -16,30 +16,101 @@ func TestAccDbtCloudBigQueryConnectionDataSource(t *testing.T) { config := bigQueryConnection(randomProjectName, randomConnectionName) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "name", randomConnectionName), - resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_connection.test", "connection_id"), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "name", + randomConnectionName, + ), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_bigquery_connection.test", + "connection_id", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_connection.test", "project_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_connection.test", "is_active"), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_connection.test", "type"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "gcp_project_id", "test_gcp_project_id"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "timeout_seconds", "100"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "private_key_id", "test_private_key_id"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "client_email", "test_client_email"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "client_id", "test_client_id"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "auth_uri", "test_auth_uri"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "token_uri", "test_token_uri"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "auth_provider_x509_cert_url", "test_auth_provider_x509_cert_url"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "client_x509_cert_url", "test_client_x509_cert_url"), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "gcp_project_id", + "test_gcp_project_id", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "timeout_seconds", + "100", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "private_key_id", + "test_private_key_id", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "client_email", + "test_client_email", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "client_id", + "test_client_id", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "auth_uri", + "test_auth_uri", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "token_uri", + "test_token_uri", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "auth_provider_x509_cert_url", + "test_auth_provider_x509_cert_url", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "client_x509_cert_url", + "test_client_x509_cert_url", + ), resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "retries", "3"), resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "location", "EU"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "maximum_bytes_billed", "100000"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "execution_project", "test_gcp_project_id2"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "priority", "batch"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "gcs_bucket", "test_gcs_bucket"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "dataproc_region", "test_dataproc_region"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "dataproc_cluster_name", "test_dataproc_cluster_name"), - resource.TestCheckResourceAttr("data.dbtcloud_bigquery_connection.test", "is_configured_for_oauth", "false"), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "maximum_bytes_billed", + "100000", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "execution_project", + "test_gcp_project_id2", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "priority", + "batch", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "gcs_bucket", + "test_gcs_bucket", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "dataproc_region", + "test_dataproc_region", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "dataproc_cluster_name", + "test_dataproc_cluster_name", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_bigquery_connection.test", + "is_configured_for_oauth", + "false", + ), ) resource.ParallelTest(t, resource.TestCase{ diff --git a/pkg/sdkv2/data_sources/bigquery_credential_acceptance_test.go b/pkg/sdkv2/data_sources/bigquery_credential_acceptance_test.go index 2a423b0f..3e11b991 100644 --- a/pkg/sdkv2/data_sources/bigquery_credential_acceptance_test.go +++ b/pkg/sdkv2/data_sources/bigquery_credential_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudBigQueryCredentialDataSource(t *testing.T) { @@ -15,7 +15,10 @@ func TestAccDbtCloudBigQueryCredentialDataSource(t *testing.T) { config := bigquery_credential(randomProjectName, "moo", 64) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_credential.test", "credential_id"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_bigquery_credential.test", + "credential_id", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_credential.test", "project_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_credential.test", "dataset"), resource.TestCheckResourceAttrSet("data.dbtcloud_bigquery_credential.test", "num_threads"), diff --git a/pkg/sdkv2/data_sources/connection_acceptance_test.go b/pkg/sdkv2/data_sources/connection_acceptance_test.go index e83a00e2..b02b12d5 100644 --- a/pkg/sdkv2/data_sources/connection_acceptance_test.go +++ b/pkg/sdkv2/data_sources/connection_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudConnectionDataSource(t *testing.T) { @@ -16,7 +16,11 @@ func TestAccDbtCloudConnectionDataSource(t *testing.T) { config := connection(randomProjectName, randomConnectionName) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_connection.test", "name", randomConnectionName), + resource.TestCheckResourceAttr( + "data.dbtcloud_connection.test", + "name", + randomConnectionName, + ), resource.TestCheckResourceAttrSet("data.dbtcloud_connection.test", "connection_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_connection.test", "project_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_connection.test", "is_active"), diff --git a/pkg/sdkv2/data_sources/databricks_credential_acceptance_test.go b/pkg/sdkv2/data_sources/databricks_credential_acceptance_test.go index 5eb33223..44985dda 100644 --- a/pkg/sdkv2/data_sources/databricks_credential_acceptance_test.go +++ b/pkg/sdkv2/data_sources/databricks_credential_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudDatabricksCredentialDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/environment.go b/pkg/sdkv2/data_sources/environment.go deleted file mode 100644 index 07e7e998..00000000 --- a/pkg/sdkv2/data_sources/environment.go +++ /dev/null @@ -1,127 +0,0 @@ -package data_sources - -import ( - "context" - "fmt" - - "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" -) - -var environmentSchema = map[string]*schema.Schema{ - "environment_id": &schema.Schema{ - Type: schema.TypeInt, - Required: true, - Description: "ID of the environment", - }, - "project_id": &schema.Schema{ - Type: schema.TypeInt, - Required: true, - Description: "Project ID to create the environment in", - }, - "is_active": &schema.Schema{ - Type: schema.TypeBool, - Computed: true, - Description: "Whether the environment is active", - }, - "credential_id": &schema.Schema{ - Type: schema.TypeInt, - Computed: true, - Description: "Credential ID to create the environment with", - }, - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "Environment name", - }, - "dbt_version": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "Version number of dbt to use in this environment, usually in the format 1.2.0-latest rather than core versions", - }, - "type": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The type of environment (must be either development or deployment)", - }, - "use_custom_branch": &schema.Schema{ - Type: schema.TypeBool, - Computed: true, - Description: "Whether to use a custom git branch in this environment", - }, - "custom_branch": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "Which custom branch to use in this environment", - }, - "deployment_type": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The type of deployment environment (currently 'production' or empty)", - }, - "extended_attributes_id": &schema.Schema{ - Type: schema.TypeInt, - Computed: true, - Description: "The ID of the extended attributes applied", - }, -} - -func DatasourceEnvironment() *schema.Resource { - return &schema.Resource{ - ReadContext: datasourceEnvironmentRead, - Schema: environmentSchema, - } -} - -func datasourceEnvironmentRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - c := m.(*dbt_cloud.Client) - - var diags diag.Diagnostics - - environmentID := d.Get("environment_id").(int) - projectID := d.Get("project_id").(int) - - environment, err := c.GetEnvironment(projectID, environmentID) - if err != nil { - return diag.FromErr(err) - } - - if err := d.Set("is_active", environment.State == dbt_cloud.STATE_ACTIVE); err != nil { - return diag.FromErr(err) - } - if err := d.Set("project_id", environment.Project_Id); err != nil { - return diag.FromErr(err) - } - if err := d.Set("credential_id", environment.Credential_Id); err != nil { - return diag.FromErr(err) - } - if err := d.Set("name", environment.Name); err != nil { - return diag.FromErr(err) - } - if err := d.Set("dbt_version", environment.Dbt_Version); err != nil { - return diag.FromErr(err) - } - if err := d.Set("type", environment.Type); err != nil { - return diag.FromErr(err) - } - if err := d.Set("use_custom_branch", environment.Use_Custom_Branch); err != nil { - return diag.FromErr(err) - } - if err := d.Set("custom_branch", environment.Custom_Branch); err != nil { - return diag.FromErr(err) - } - if err := d.Set("environment_id", environment.Environment_Id); err != nil { - return diag.FromErr(err) - } - if err := d.Set("deployment_type", environment.DeploymentType); err != nil { - return diag.FromErr(err) - } - if err := d.Set("extended_attributes_id", environment.ExtendedAttributesID); err != nil { - return diag.FromErr(err) - } - - d.SetId(fmt.Sprintf("%d%s%d", environment.Project_Id, dbt_cloud.ID_DELIMITER, *environment.ID)) - - return diags -} diff --git a/pkg/sdkv2/data_sources/environment_variable_acceptance_test.go b/pkg/sdkv2/data_sources/environment_variable_acceptance_test.go index 63f8d1ca..6ff07f0e 100644 --- a/pkg/sdkv2/data_sources/environment_variable_acceptance_test.go +++ b/pkg/sdkv2/data_sources/environment_variable_acceptance_test.go @@ -5,24 +5,45 @@ import ( "strings" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudEnvironmentVariableDataSource(t *testing.T) { projectName := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) environmentName := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) - environmentVariableName := strings.ToUpper(acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)) + environmentVariableName := strings.ToUpper( + acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum), + ) config := environmentVariable(projectName, environmentName, environmentVariableName) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_environment_variable.test_env_var_read", "name", fmt.Sprintf("DBT_%s", environmentVariableName)), - resource.TestCheckResourceAttrSet("data.dbtcloud_environment_variable.test_env_var_read", "project_id"), - resource.TestCheckResourceAttr("data.dbtcloud_environment_variable.test_env_var_read", "environment_values.%", "2"), - resource.TestCheckResourceAttr("data.dbtcloud_environment_variable.test_env_var_read", "environment_values.project", "Baa"), - resource.TestCheckResourceAttr("data.dbtcloud_environment_variable.test_env_var_read", fmt.Sprintf("environment_values.%s", environmentName), "Moo"), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment_variable.test_env_var_read", + "name", + fmt.Sprintf("DBT_%s", environmentVariableName), + ), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_environment_variable.test_env_var_read", + "project_id", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment_variable.test_env_var_read", + "environment_values.%", + "2", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment_variable.test_env_var_read", + "environment_values.project", + "Baa", + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_environment_variable.test_env_var_read", + fmt.Sprintf("environment_values.%s", environmentName), + "Moo", + ), ) resource.ParallelTest(t, resource.TestCase{ diff --git a/pkg/sdkv2/data_sources/extended_attributes_acceptance_test.go b/pkg/sdkv2/data_sources/extended_attributes_acceptance_test.go index a0c1e41e..d92bb8dc 100644 --- a/pkg/sdkv2/data_sources/extended_attributes_acceptance_test.go +++ b/pkg/sdkv2/data_sources/extended_attributes_acceptance_test.go @@ -4,7 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/framework/acctest_helper" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestDbtCloudExtendedAttributesDataSource(t *testing.T) { @@ -12,14 +13,23 @@ func TestDbtCloudExtendedAttributesDataSource(t *testing.T) { config := extendedAttributes() check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttrSet("data.dbtcloud_extended_attributes.test", "extended_attributes_id"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_extended_attributes.test", + "extended_attributes_id", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_extended_attributes.test", "project_id"), - resource.TestCheckResourceAttrSet("data.dbtcloud_extended_attributes.test", "extended_attributes"), - resource.TestCheckResourceAttrSet("data.dbtcloud_environment.test", "extended_attributes_id"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_extended_attributes.test", + "extended_attributes", + ), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_environment.test", + "extended_attributes_id", + ), ) resource.ParallelTest(t, resource.TestCase{ - Providers: providers(), + ProtoV6ProviderFactories: acctest_helper.TestAccProtoV6ProviderFactories, Steps: []resource.TestStep{ { Config: config, diff --git a/pkg/sdkv2/data_sources/group_acceptance_test.go b/pkg/sdkv2/data_sources/group_acceptance_test.go index 743d7048..15f07c90 100644 --- a/pkg/sdkv2/data_sources/group_acceptance_test.go +++ b/pkg/sdkv2/data_sources/group_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudGroupDataSource(t *testing.T) { @@ -17,7 +17,10 @@ func TestAccDbtCloudGroupDataSource(t *testing.T) { check := resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("data.dbtcloud_group.test_group_read", "name", groupName), resource.TestCheckResourceAttrSet("data.dbtcloud_group.test_group_read", "is_active"), - resource.TestCheckResourceAttrSet("data.dbtcloud_group.test_group_read", "assign_by_default"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_group.test_group_read", + "assign_by_default", + ), ) resource.ParallelTest(t, resource.TestCase{ diff --git a/pkg/sdkv2/data_sources/group_users_acceptance_test.go b/pkg/sdkv2/data_sources/group_users_acceptance_test.go index 6537a4a0..4fc8da81 100644 --- a/pkg/sdkv2/data_sources/group_users_acceptance_test.go +++ b/pkg/sdkv2/data_sources/group_users_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudGroupUsersDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/job_acceptance_test.go b/pkg/sdkv2/data_sources/job_acceptance_test.go index b8eee00f..d7c89947 100644 --- a/pkg/sdkv2/data_sources/job_acceptance_test.go +++ b/pkg/sdkv2/data_sources/job_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestDbtCloudJobDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/postgres_credential_acceptance_test.go b/pkg/sdkv2/data_sources/postgres_credential_acceptance_test.go index 4c70a8b5..7763317d 100644 --- a/pkg/sdkv2/data_sources/postgres_credential_acceptance_test.go +++ b/pkg/sdkv2/data_sources/postgres_credential_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudPostgresCredentialDataSource(t *testing.T) { @@ -15,9 +15,15 @@ func TestAccDbtCloudPostgresCredentialDataSource(t *testing.T) { config := postgres_credential(randomProjectName, "moo", "baa", "maa", 64) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttrSet("data.dbtcloud_postgres_credential.test", "credential_id"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_postgres_credential.test", + "credential_id", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_postgres_credential.test", "project_id"), - resource.TestCheckResourceAttrSet("data.dbtcloud_postgres_credential.test", "default_schema"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_postgres_credential.test", + "default_schema", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_postgres_credential.test", "username"), resource.TestCheckResourceAttrSet("data.dbtcloud_postgres_credential.test", "num_threads"), ) @@ -33,7 +39,13 @@ func TestAccDbtCloudPostgresCredentialDataSource(t *testing.T) { }) } -func postgres_credential(projectName string, defaultSchema string, username string, password string, numThreads int) string { +func postgres_credential( + projectName string, + defaultSchema string, + username string, + password string, + numThreads int, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_credential_project" { name = "%s" diff --git a/pkg/sdkv2/data_sources/privatelink_endpoint_acceptance_test.go b/pkg/sdkv2/data_sources/privatelink_endpoint_acceptance_test.go index a3d28561..3052a02c 100644 --- a/pkg/sdkv2/data_sources/privatelink_endpoint_acceptance_test.go +++ b/pkg/sdkv2/data_sources/privatelink_endpoint_acceptance_test.go @@ -6,7 +6,7 @@ import ( "os" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudPrivatelinkEndpointDataSource(t *testing.T) { @@ -24,10 +24,21 @@ func TestAccDbtCloudPrivatelinkEndpointDataSource(t *testing.T) { configNoName := privatelinkEndpoint("", endpointURL) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_privatelink_endpoint.test", "name", endpointName), - resource.TestCheckResourceAttr("data.dbtcloud_privatelink_endpoint.test", "private_link_endpoint_url", endpointURL), + resource.TestCheckResourceAttr( + "data.dbtcloud_privatelink_endpoint.test", + "name", + endpointName, + ), + resource.TestCheckResourceAttr( + "data.dbtcloud_privatelink_endpoint.test", + "private_link_endpoint_url", + endpointURL, + ), resource.TestCheckResourceAttrSet("data.dbtcloud_privatelink_endpoint.test", "id"), - resource.TestCheckResourceAttrSet("data.dbtcloud_privatelink_endpoint.test", "cidr_range"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_privatelink_endpoint.test", + "cidr_range", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_privatelink_endpoint.test", "type"), resource.TestCheckResourceAttrSet("data.dbtcloud_privatelink_endpoint.test", "state"), ) diff --git a/pkg/sdkv2/data_sources/project_acceptance_test.go b/pkg/sdkv2/data_sources/project_acceptance_test.go index 8a01379a..16ab310f 100644 --- a/pkg/sdkv2/data_sources/project_acceptance_test.go +++ b/pkg/sdkv2/data_sources/project_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudProjectDataSource(t *testing.T) { @@ -22,7 +22,11 @@ func TestAccDbtCloudProjectDataSource(t *testing.T) { resource.TestCheckResourceAttrSet("data.dbtcloud_project.test", "state"), resource.TestCheckResourceAttrSet("data.dbtcloud_project.test_with_name", "project_id"), - resource.TestCheckResourceAttr("data.dbtcloud_project.test_with_name", "name", randomProjectName), + resource.TestCheckResourceAttr( + "data.dbtcloud_project.test_with_name", + "name", + randomProjectName, + ), resource.TestCheckResourceAttrSet("data.dbtcloud_project.test_with_name", "connection_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_project.test_with_name", "repository_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_project.test_with_name", "state"), diff --git a/pkg/sdkv2/data_sources/repository_acceptance_test.go b/pkg/sdkv2/data_sources/repository_acceptance_test.go index 4040b033..89ee5499 100644 --- a/pkg/sdkv2/data_sources/repository_acceptance_test.go +++ b/pkg/sdkv2/data_sources/repository_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudRepositoryDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/service_token_acceptance_test.go b/pkg/sdkv2/data_sources/service_token_acceptance_test.go index ee1c618e..4e813035 100644 --- a/pkg/sdkv2/data_sources/service_token_acceptance_test.go +++ b/pkg/sdkv2/data_sources/service_token_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudServiceTokenDataSource(t *testing.T) { @@ -15,9 +15,19 @@ func TestAccDbtCloudServiceTokenDataSource(t *testing.T) { config := serviceToken(serviceTokenName) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("data.dbtcloud_service_token.test_service_token_read", "name", serviceTokenName), - resource.TestCheckResourceAttrSet("data.dbtcloud_service_token.test_service_token_read", "uid"), - resource.TestCheckResourceAttrSet("data.dbtcloud_service_token.test_service_token_read", "service_token_id"), + resource.TestCheckResourceAttr( + "data.dbtcloud_service_token.test_service_token_read", + "name", + serviceTokenName, + ), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_service_token.test_service_token_read", + "uid", + ), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_service_token.test_service_token_read", + "service_token_id", + ), ) resource.ParallelTest(t, resource.TestCase{ diff --git a/pkg/sdkv2/data_sources/snowflake_credential_acceptance_test.go b/pkg/sdkv2/data_sources/snowflake_credential_acceptance_test.go index fda0acf7..eb74448c 100644 --- a/pkg/sdkv2/data_sources/snowflake_credential_acceptance_test.go +++ b/pkg/sdkv2/data_sources/snowflake_credential_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudSnowflakeCredentialDataSource(t *testing.T) { @@ -15,7 +15,10 @@ func TestAccDbtCloudSnowflakeCredentialDataSource(t *testing.T) { config := snowflake_credential(randomProjectName, "moo", "baa", "maa", 64) check := resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttrSet("data.dbtcloud_snowflake_credential.test", "credential_id"), + resource.TestCheckResourceAttrSet( + "data.dbtcloud_snowflake_credential.test", + "credential_id", + ), resource.TestCheckResourceAttrSet("data.dbtcloud_snowflake_credential.test", "project_id"), resource.TestCheckResourceAttrSet("data.dbtcloud_snowflake_credential.test", "auth_type"), resource.TestCheckResourceAttrSet("data.dbtcloud_snowflake_credential.test", "is_active"), @@ -35,7 +38,13 @@ func TestAccDbtCloudSnowflakeCredentialDataSource(t *testing.T) { }) } -func snowflake_credential(projectName string, schema string, username string, password string, numThreads int) string { +func snowflake_credential( + projectName string, + schema string, + username string, + password string, + numThreads int, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_credential_project" { name = "%s" diff --git a/pkg/sdkv2/data_sources/user_acceptance_test.go b/pkg/sdkv2/data_sources/user_acceptance_test.go index 950d72f8..a7c1f83c 100644 --- a/pkg/sdkv2/data_sources/user_acceptance_test.go +++ b/pkg/sdkv2/data_sources/user_acceptance_test.go @@ -4,7 +4,7 @@ package data_sources_test // "fmt" // "testing" -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +// "github.com/hashicorp/terraform-plugin-testing/helper/resource" // ) // func TestAccDbtCloudUserDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/user_groups_acceptance_test.go b/pkg/sdkv2/data_sources/user_groups_acceptance_test.go index 45cd514b..145354fb 100644 --- a/pkg/sdkv2/data_sources/user_groups_acceptance_test.go +++ b/pkg/sdkv2/data_sources/user_groups_acceptance_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestDbtCloudUserGroupsDataSource(t *testing.T) { diff --git a/pkg/sdkv2/data_sources/webhook_acceptance_test.go b/pkg/sdkv2/data_sources/webhook_acceptance_test.go index 6c45b594..62d54bb9 100644 --- a/pkg/sdkv2/data_sources/webhook_acceptance_test.go +++ b/pkg/sdkv2/data_sources/webhook_acceptance_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestDbtCloudWebhookDataSource(t *testing.T) { @@ -18,7 +18,11 @@ func TestDbtCloudWebhookDataSource(t *testing.T) { check := resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttrSet("data.dbtcloud_webhook.test", "webhook_id"), resource.TestCheckResourceAttr("data.dbtcloud_webhook.test", "name", randomWebhookName), - resource.TestCheckResourceAttr("data.dbtcloud_webhook.test", "description", randomWebhookDescription), + resource.TestCheckResourceAttr( + "data.dbtcloud_webhook.test", + "description", + randomWebhookDescription, + ), resource.TestCheckResourceAttrSet("data.dbtcloud_webhook.test", "client_url"), resource.TestCheckResourceAttr("data.dbtcloud_webhook.test", "event_types.#", "2"), resource.TestCheckResourceAttr("data.dbtcloud_webhook.test", "job_ids.#", "0"), diff --git a/pkg/sdkv2/resources/bigquery_connection_acceptance_test.go b/pkg/sdkv2/resources/bigquery_connection_acceptance_test.go index e30d2d2c..0a25a98a 100644 --- a/pkg/sdkv2/resources/bigquery_connection_acceptance_test.go +++ b/pkg/sdkv2/resources/bigquery_connection_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudBigQueryConnectionResource(t *testing.T) { @@ -25,58 +25,166 @@ func TestAccDbtCloudBigQueryConnectionResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudBigQueryConnectionDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudBigQueryConnectionResourceBasicConfig(connectionName, projectName, privateKey), + Config: testAccDbtCloudBigQueryConnectionResourceBasicConfig( + connectionName, + projectName, + privateKey, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudConnectionExists("dbtcloud_bigquery_connection.test_connection"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "name", connectionName), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "type", "bigquery"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "gcp_project_id", "test_project_id"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "timeout_seconds", "1000"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "private_key_id", "test_private_key_id"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "private_key", privateKey), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "client_email", "test_client_email"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "client_id", "test_client_id"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "auth_uri", "test_auth_uri"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "token_uri", "test_token_uri"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "auth_provider_x509_cert_url", "test_auth_provider_x509_cert_url"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "client_x509_cert_url", "test_client_x509_cert_url"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "retries", "3"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "execution_project", "test_project_id_2"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "priority", "interactive"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "is_configured_for_oauth", "false"), + testAccCheckDbtCloudConnectionExists( + "dbtcloud_bigquery_connection.test_connection", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "name", + connectionName, + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "type", + "bigquery", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "gcp_project_id", + "test_project_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "timeout_seconds", + "1000", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "private_key_id", + "test_private_key_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "private_key", + privateKey, + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "client_email", + "test_client_email", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "client_id", + "test_client_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "auth_uri", + "test_auth_uri", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "token_uri", + "test_token_uri", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "auth_provider_x509_cert_url", + "test_auth_provider_x509_cert_url", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "client_x509_cert_url", + "test_client_x509_cert_url", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "retries", + "3", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "execution_project", + "test_project_id_2", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "priority", + "interactive", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "is_configured_for_oauth", + "false", + ), ), }, // RENAME { - Config: testAccDbtCloudBigQueryConnectionResourceBasicConfig(connectionName2, projectName, privateKey), + Config: testAccDbtCloudBigQueryConnectionResourceBasicConfig( + connectionName2, + projectName, + privateKey, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudConnectionExists("dbtcloud_bigquery_connection.test_connection"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "name", connectionName2), + testAccCheckDbtCloudConnectionExists( + "dbtcloud_bigquery_connection.test_connection", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "name", + connectionName2, + ), ), }, // MODIFY AND ADD OAUTH { - Config: testAccDbtCloudBigQueryConnectionResourceOAuthConfig(connectionName2, projectName, privateKey), + Config: testAccDbtCloudBigQueryConnectionResourceOAuthConfig( + connectionName2, + projectName, + privateKey, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudConnectionExists("dbtcloud_bigquery_connection.test_connection"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "priority", "batch"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "application_secret", "test_application_secret"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "application_id", "test_application_id"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_connection.test_connection", "is_configured_for_oauth", "true"), + testAccCheckDbtCloudConnectionExists( + "dbtcloud_bigquery_connection.test_connection", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "priority", + "batch", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "application_secret", + "test_application_secret", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "application_id", + "test_application_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_connection.test_connection", + "is_configured_for_oauth", + "true", + ), ), }, // IMPORT { - ResourceName: "dbtcloud_bigquery_connection.test_connection", - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"private_key", "application_secret", "application_id"}, + ResourceName: "dbtcloud_bigquery_connection.test_connection", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + "private_key", + "application_secret", + "application_id", + }, }, }, }) } -func testAccDbtCloudBigQueryConnectionResourceBasicConfig(connectionName, projectName, privateKey string) string { +func testAccDbtCloudBigQueryConnectionResourceBasicConfig( + connectionName, projectName, privateKey string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" @@ -103,7 +211,9 @@ resource "dbtcloud_bigquery_connection" "test_connection" { `, projectName, connectionName, privateKey) } -func testAccDbtCloudBigQueryConnectionResourceOAuthConfig(connectionName, projectName, privateKey string) string { +func testAccDbtCloudBigQueryConnectionResourceOAuthConfig( + connectionName, projectName, privateKey string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" diff --git a/pkg/sdkv2/resources/bigquery_credential_acceptance_test.go b/pkg/sdkv2/resources/bigquery_credential_acceptance_test.go index 9d2384d5..5938c0d5 100644 --- a/pkg/sdkv2/resources/bigquery_credential_acceptance_test.go +++ b/pkg/sdkv2/resources/bigquery_credential_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudBigQueryCredentialResource(t *testing.T) { @@ -26,8 +26,14 @@ func TestAccDbtCloudBigQueryCredentialResource(t *testing.T) { { Config: testAccDbtCloudBigQueryCredentialResourceBasicConfig(projectName, dataset), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudBigQueryCredentialExists("dbtcloud_bigquery_credential.test_credential"), - resource.TestCheckResourceAttr("dbtcloud_bigquery_credential.test_credential", "dataset", dataset), + testAccCheckDbtCloudBigQueryCredentialExists( + "dbtcloud_bigquery_credential.test_credential", + ), + resource.TestCheckResourceAttr( + "dbtcloud_bigquery_credential.test_credential", + "dataset", + dataset, + ), ), }, // RENAME diff --git a/pkg/sdkv2/resources/connection_acceptance_test.go b/pkg/sdkv2/resources/connection_acceptance_test.go index 645cccb9..2729c82f 100644 --- a/pkg/sdkv2/resources/connection_acceptance_test.go +++ b/pkg/sdkv2/resources/connection_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudConnectionResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/databricks_credential_acceptance_test.go b/pkg/sdkv2/resources/databricks_credential_acceptance_test.go index 9e53f8a1..999f481b 100644 --- a/pkg/sdkv2/resources/databricks_credential_acceptance_test.go +++ b/pkg/sdkv2/resources/databricks_credential_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudDatabricksCredentialResource(t *testing.T) { @@ -25,10 +25,20 @@ func TestAccDbtCloudDatabricksCredentialResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudDatabricksCredentialDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudDatabricksCredentialResourceBasicConfig(projectName, targetName, token), + Config: testAccDbtCloudDatabricksCredentialResourceBasicConfig( + projectName, + targetName, + token, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudDatabricksCredentialExists("dbtcloud_databricks_credential.test_credential"), - resource.TestCheckResourceAttr("dbtcloud_databricks_credential.test_credential", "target_name", targetName), + testAccCheckDbtCloudDatabricksCredentialExists( + "dbtcloud_databricks_credential.test_credential", + ), + resource.TestCheckResourceAttr( + "dbtcloud_databricks_credential.test_credential", + "target_name", + targetName, + ), ), }, // RENAME @@ -44,7 +54,9 @@ func TestAccDbtCloudDatabricksCredentialResource(t *testing.T) { }) } -func testAccDbtCloudDatabricksCredentialResourceBasicConfig(projectName, targetName, token string) string { +func testAccDbtCloudDatabricksCredentialResourceBasicConfig( + projectName, targetName, token string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" diff --git a/pkg/sdkv2/resources/environment_acceptance_test.go b/pkg/sdkv2/resources/environment_acceptance_test.go index 96fc6eb1..8a41ad15 100644 --- a/pkg/sdkv2/resources/environment_acceptance_test.go +++ b/pkg/sdkv2/resources/environment_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudEnvironmentResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/environment_test.go b/pkg/sdkv2/resources/environment_test.go index 1ebf7f2d..fb761fa0 100644 --- a/pkg/sdkv2/resources/environment_test.go +++ b/pkg/sdkv2/resources/environment_test.go @@ -5,8 +5,8 @@ package resources_test // "fmt" // "testing" // -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +// "github.com/hashicorp/terraform-plugin-testing/helper/acctest" +// "github.com/hashicorp/terraform-plugin-testing/helper/resource" // ) // // func TestDbtCloudEnvironmentResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/environment_variable_acceptance_test.go b/pkg/sdkv2/resources/environment_variable_acceptance_test.go index 49b0de53..25803893 100644 --- a/pkg/sdkv2/resources/environment_variable_acceptance_test.go +++ b/pkg/sdkv2/resources/environment_variable_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudEnvironmentVariableResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/environment_variable_job_override_acceptance_test.go b/pkg/sdkv2/resources/environment_variable_job_override_acceptance_test.go index 3f602ff5..7a05a301 100644 --- a/pkg/sdkv2/resources/environment_variable_job_override_acceptance_test.go +++ b/pkg/sdkv2/resources/environment_variable_job_override_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudEnvironmentVariableJobOverrideResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/extended_attributes_acceptance_test.go b/pkg/sdkv2/resources/extended_attributes_acceptance_test.go index c2176280..3da1e984 100644 --- a/pkg/sdkv2/resources/extended_attributes_acceptance_test.go +++ b/pkg/sdkv2/resources/extended_attributes_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudExtendedAttributesResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/fabric_connection_acceptance_test.go b/pkg/sdkv2/resources/fabric_connection_acceptance_test.go index af6d699b..ed6f155c 100644 --- a/pkg/sdkv2/resources/fabric_connection_acceptance_test.go +++ b/pkg/sdkv2/resources/fabric_connection_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudFabricConnectionResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/fabric_credential_acceptance_test.go b/pkg/sdkv2/resources/fabric_credential_acceptance_test.go index a900cc23..9d6250b3 100644 --- a/pkg/sdkv2/resources/fabric_credential_acceptance_test.go +++ b/pkg/sdkv2/resources/fabric_credential_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudFabricCredentialResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/group_acceptance_test.go b/pkg/sdkv2/resources/group_acceptance_test.go index 8d06217e..50c0d746 100644 --- a/pkg/sdkv2/resources/group_acceptance_test.go +++ b/pkg/sdkv2/resources/group_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudGroupResource(t *testing.T) { @@ -28,13 +28,40 @@ func TestAccDbtCloudGroupResource(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudGroupExists("dbtcloud_group.test_group"), resource.TestCheckResourceAttr("dbtcloud_group.test_group", "name", groupName), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.#", "2"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.1.permission_set", "member"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.1.all_projects", "true"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.0.permission_set", "developer"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.0.all_projects", "false"), - resource.TestCheckResourceAttrSet("dbtcloud_group.test_group", "group_permissions.0.project_id"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "sso_mapping_groups.0", "group1"), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.#", + "2", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.1.permission_set", + "member", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.1.all_projects", + "true", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.0.permission_set", + "developer", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.0.all_projects", + "false", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_group.test_group", + "group_permissions.0.project_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "sso_mapping_groups.0", + "group1", + ), ), }, // MODIFY @@ -43,22 +70,57 @@ func TestAccDbtCloudGroupResource(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudGroupExists("dbtcloud_group.test_group"), resource.TestCheckResourceAttr("dbtcloud_group.test_group", "name", groupName2), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "assign_by_default", "true"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.#", "2"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.0.permission_set", "member"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.0.all_projects", "false"), - resource.TestCheckResourceAttrSet("dbtcloud_group.test_group", "group_permissions.0.project_id"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.1.all_projects", "true"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "group_permissions.1.permission_set", "developer"), - resource.TestCheckResourceAttr("dbtcloud_group.test_group", "sso_mapping_groups.#", "2"), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "assign_by_default", + "true", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.#", + "2", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.0.permission_set", + "member", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.0.all_projects", + "false", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_group.test_group", + "group_permissions.0.project_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.1.all_projects", + "true", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "group_permissions.1.permission_set", + "developer", + ), + resource.TestCheckResourceAttr( + "dbtcloud_group.test_group", + "sso_mapping_groups.#", + "2", + ), ), }, // IMPORT { - ResourceName: "dbtcloud_group.test_group", - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{}, + ResourceName: "dbtcloud_group.test_group", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + // being a set we need to ignore all, but * doesn't work + "group_permissions.0.project_id", + "group_permissions.1.project_id", + }, }, }, }) diff --git a/pkg/sdkv2/resources/job_acceptance_test.go b/pkg/sdkv2/resources/job_acceptance_test.go index b0561ac0..cebe9840 100644 --- a/pkg/sdkv2/resources/job_acceptance_test.go +++ b/pkg/sdkv2/resources/job_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudJobResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/job_test.go b/pkg/sdkv2/resources/job_test.go index 144f534c..99066fc1 100644 --- a/pkg/sdkv2/resources/job_test.go +++ b/pkg/sdkv2/resources/job_test.go @@ -5,8 +5,8 @@ package resources_test // "fmt" // "testing" // -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +// "github.com/hashicorp/terraform-plugin-testing/helper/acctest" +// "github.com/hashicorp/terraform-plugin-testing/helper/resource" // ) // // func TestDbtCloudJobResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/license_map_acceptance_test.go b/pkg/sdkv2/resources/license_map_acceptance_test.go index 7db87850..9b6ef504 100644 --- a/pkg/sdkv2/resources/license_map_acceptance_test.go +++ b/pkg/sdkv2/resources/license_map_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudLicenseMapResource(t *testing.T) { @@ -26,20 +26,51 @@ func TestAccDbtCloudLicenseMapResource(t *testing.T) { Config: testAccDbtCloudLicenseMapResourceBasicConfig("developer", groupName), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudLicenseMapExists("dbtcloud_license_map.test_license_map"), - resource.TestCheckResourceAttr("dbtcloud_license_map.test_license_map", "license_type", "developer"), - resource.TestCheckResourceAttr("dbtcloud_license_map.test_license_map", "sso_license_mapping_groups.#", "1"), - resource.TestCheckResourceAttr("dbtcloud_license_map.test_license_map", "sso_license_mapping_groups.0", groupName), + resource.TestCheckResourceAttr( + "dbtcloud_license_map.test_license_map", + "license_type", + "developer", + ), + resource.TestCheckResourceAttr( + "dbtcloud_license_map.test_license_map", + "sso_license_mapping_groups.#", + "1", + ), + resource.TestCheckResourceAttr( + "dbtcloud_license_map.test_license_map", + "sso_license_mapping_groups.0", + groupName, + ), ), }, // MODIFY { - Config: testAccDbtCloudLicenseMapResourceBasicConfig("developer", fmt.Sprintf(`%s","%s`, groupName, groupName2)), + Config: testAccDbtCloudLicenseMapResourceBasicConfig( + "developer", + fmt.Sprintf(`%s","%s`, groupName, groupName2), + ), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudLicenseMapExists("dbtcloud_license_map.test_license_map"), - resource.TestCheckResourceAttr("dbtcloud_license_map.test_license_map", "license_type", "developer"), - resource.TestCheckResourceAttr("dbtcloud_license_map.test_license_map", "sso_license_mapping_groups.#", "2"), - resource.TestCheckTypeSetElemAttr("dbtcloud_license_map.test_license_map", "sso_license_mapping_groups.*", groupName), - resource.TestCheckTypeSetElemAttr("dbtcloud_license_map.test_license_map", "sso_license_mapping_groups.*", groupName2), + resource.TestCheckResourceAttr( + "dbtcloud_license_map.test_license_map", + "license_type", + "developer", + ), + resource.TestCheckResourceAttr( + "dbtcloud_license_map.test_license_map", + "sso_license_mapping_groups.#", + "2", + ), + resource.TestCheckTypeSetElemAttr( + "dbtcloud_license_map.test_license_map", + "sso_license_mapping_groups.*", + groupName, + ), + resource.TestCheckTypeSetElemAttr( + "dbtcloud_license_map.test_license_map", + "sso_license_mapping_groups.*", + groupName2, + ), ), }, // IMPORT diff --git a/pkg/sdkv2/resources/postgres_credential_acceptance_test.go b/pkg/sdkv2/resources/postgres_credential_acceptance_test.go index effaf419..dd35b5e1 100644 --- a/pkg/sdkv2/resources/postgres_credential_acceptance_test.go +++ b/pkg/sdkv2/resources/postgres_credential_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudPostgresCredentialResource(t *testing.T) { @@ -26,13 +26,36 @@ func TestAccDbtCloudPostgresCredentialResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudPostgresCredentialDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudPostgresCredentialResourceBasicConfig(projectName, default_schema, username, password), + Config: testAccDbtCloudPostgresCredentialResourceBasicConfig( + projectName, + default_schema, + username, + password, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudPostgresCredentialExists("dbtcloud_postgres_credential.test_credential"), - resource.TestCheckResourceAttr("dbtcloud_postgres_credential.test_credential", "default_schema", default_schema), - resource.TestCheckResourceAttr("dbtcloud_postgres_credential.test_credential", "username", username), - resource.TestCheckResourceAttr("dbtcloud_postgres_credential.test_credential", "target_name", "default"), - resource.TestCheckResourceAttr("dbtcloud_postgres_credential.test_credential", "type", "postgres"), + testAccCheckDbtCloudPostgresCredentialExists( + "dbtcloud_postgres_credential.test_credential", + ), + resource.TestCheckResourceAttr( + "dbtcloud_postgres_credential.test_credential", + "default_schema", + default_schema, + ), + resource.TestCheckResourceAttr( + "dbtcloud_postgres_credential.test_credential", + "username", + username, + ), + resource.TestCheckResourceAttr( + "dbtcloud_postgres_credential.test_credential", + "target_name", + "default", + ), + resource.TestCheckResourceAttr( + "dbtcloud_postgres_credential.test_credential", + "type", + "postgres", + ), ), }, // RENAME @@ -48,7 +71,9 @@ func TestAccDbtCloudPostgresCredentialResource(t *testing.T) { }) } -func testAccDbtCloudPostgresCredentialResourceBasicConfig(projectName, default_schema, username, password string) string { +func testAccDbtCloudPostgresCredentialResourceBasicConfig( + projectName, default_schema, username, password string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" diff --git a/pkg/sdkv2/resources/project_acceptance_test.go b/pkg/sdkv2/resources/project_acceptance_test.go index ac5e2860..50505dd8 100644 --- a/pkg/sdkv2/resources/project_acceptance_test.go +++ b/pkg/sdkv2/resources/project_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudProjectResource(t *testing.T) { @@ -26,7 +26,11 @@ func TestAccDbtCloudProjectResource(t *testing.T) { Config: testAccDbtCloudProjectResourceBasicConfig(projectName), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudProjectExists("dbtcloud_project.test_project"), - resource.TestCheckResourceAttr("dbtcloud_project.test_project", "name", projectName), + resource.TestCheckResourceAttr( + "dbtcloud_project.test_project", + "name", + projectName, + ), ), }, // RENAME @@ -34,7 +38,11 @@ func TestAccDbtCloudProjectResource(t *testing.T) { Config: testAccDbtCloudProjectResourceBasicConfig(projectName2), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudProjectExists("dbtcloud_project.test_project"), - resource.TestCheckResourceAttr("dbtcloud_project.test_project", "name", projectName2), + resource.TestCheckResourceAttr( + "dbtcloud_project.test_project", + "name", + projectName2, + ), ), }, // MODIFY @@ -42,8 +50,16 @@ func TestAccDbtCloudProjectResource(t *testing.T) { Config: testAccDbtCloudProjectResourceFullConfig(projectName2), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudProjectExists("dbtcloud_project.test_project"), - resource.TestCheckResourceAttr("dbtcloud_project.test_project", "name", projectName2), - resource.TestCheckResourceAttr("dbtcloud_project.test_project", "dbt_project_subdirectory", "/project/subdirectory_where/dbt-is"), + resource.TestCheckResourceAttr( + "dbtcloud_project.test_project", + "name", + projectName2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_project.test_project", + "dbt_project_subdirectory", + "/project/subdirectory_where/dbt-is", + ), ), }, // IMPORT diff --git a/pkg/sdkv2/resources/project_artefacts_acceptance_test.go b/pkg/sdkv2/resources/project_artefacts_acceptance_test.go index f54bd36e..b052694b 100644 --- a/pkg/sdkv2/resources/project_artefacts_acceptance_test.go +++ b/pkg/sdkv2/resources/project_artefacts_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudProjectArtefactsResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/project_connection_acceptance_test.go b/pkg/sdkv2/resources/project_connection_acceptance_test.go index a00d5d83..54c79bcb 100644 --- a/pkg/sdkv2/resources/project_connection_acceptance_test.go +++ b/pkg/sdkv2/resources/project_connection_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudProjectConnectionResource(t *testing.T) { @@ -23,9 +23,14 @@ func TestAccDbtCloudProjectConnectionResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudProjectConnectionDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudProjectConnectionResourceBasicConfig(projectName, connectionName), + Config: testAccDbtCloudProjectConnectionResourceBasicConfig( + projectName, + connectionName, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudProjectConnectionExists("dbtcloud_project_connection.test_project_connection"), + testAccCheckDbtCloudProjectConnectionExists( + "dbtcloud_project_connection.test_project_connection", + ), ), }, // IMPORT @@ -37,7 +42,10 @@ func TestAccDbtCloudProjectConnectionResource(t *testing.T) { }, // EMPTY { - Config: testAccDbtCloudProjectConnectionResourceEmptyConfig(projectName, connectionName), + Config: testAccDbtCloudProjectConnectionResourceEmptyConfig( + projectName, + connectionName, + ), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudProjectConnectionEmpty("dbtcloud_project.test_project"), ), @@ -46,7 +54,9 @@ func TestAccDbtCloudProjectConnectionResource(t *testing.T) { }) } -func testAccDbtCloudProjectConnectionResourceBasicConfig(projectName, connectionName string) string { +func testAccDbtCloudProjectConnectionResourceBasicConfig( + projectName, connectionName string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" @@ -71,7 +81,9 @@ resource "dbtcloud_project_connection" "test_project_connection" { `, projectName, connectionName) } -func testAccDbtCloudProjectConnectionResourceEmptyConfig(projectName, connectionName string) string { +func testAccDbtCloudProjectConnectionResourceEmptyConfig( + projectName, connectionName string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" diff --git a/pkg/sdkv2/resources/project_repository_acceptance_test.go b/pkg/sdkv2/resources/project_repository_acceptance_test.go index e18f04a4..90d0a8c3 100644 --- a/pkg/sdkv2/resources/project_repository_acceptance_test.go +++ b/pkg/sdkv2/resources/project_repository_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudProjectRepositoryResource(t *testing.T) { @@ -23,9 +23,14 @@ func TestAccDbtCloudProjectRepositoryResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudProjectRepositoryDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudProjectRepositoryResourceBasicConfig(projectName, repoUrlGithub), + Config: testAccDbtCloudProjectRepositoryResourceBasicConfig( + projectName, + repoUrlGithub, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudProjectRepositoryExists("dbtcloud_project_repository.test_project_repository"), + testAccCheckDbtCloudProjectRepositoryExists( + "dbtcloud_project_repository.test_project_repository", + ), ), }, // IMPORT @@ -37,7 +42,10 @@ func TestAccDbtCloudProjectRepositoryResource(t *testing.T) { }, // EMPTY { - Config: testAccDbtCloudProjectRepositoryResourceEmptyConfig(projectName, repoUrlGithub), + Config: testAccDbtCloudProjectRepositoryResourceEmptyConfig( + projectName, + repoUrlGithub, + ), Check: resource.ComposeTestCheckFunc( testAccCheckDbtCloudProjectRepositoryEmpty("dbtcloud_project.test_project"), ), diff --git a/pkg/sdkv2/resources/project_test.go b/pkg/sdkv2/resources/project_test.go index c8accea6..d342c856 100644 --- a/pkg/sdkv2/resources/project_test.go +++ b/pkg/sdkv2/resources/project_test.go @@ -5,8 +5,8 @@ package resources_test // "fmt" // "testing" // -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" -// "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +// "github.com/hashicorp/terraform-plugin-testing/helper/acctest" +// "github.com/hashicorp/terraform-plugin-testing/helper/resource" // ) // // func TestDbtCloudProjectResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/repository_acceptance_test.go b/pkg/sdkv2/resources/repository_acceptance_test.go index 536fdd07..65af558a 100644 --- a/pkg/sdkv2/resources/repository_acceptance_test.go +++ b/pkg/sdkv2/resources/repository_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) // TODO: Add more tests diff --git a/pkg/sdkv2/resources/service_token_acceptance_test.go b/pkg/sdkv2/resources/service_token_acceptance_test.go index 304bb067..b4d10ff8 100644 --- a/pkg/sdkv2/resources/service_token_acceptance_test.go +++ b/pkg/sdkv2/resources/service_token_acceptance_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudServiceTokenResource(t *testing.T) { @@ -24,32 +24,102 @@ func TestAccDbtCloudServiceTokenResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudServiceTokenDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudServiceTokenResourceBasicConfig(serviceTokenName, projectName), + Config: testAccDbtCloudServiceTokenResourceBasicConfig( + serviceTokenName, + projectName, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudServiceTokenExists("dbtcloud_service_token.test_service_token"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "name", serviceTokenName), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.#", "2"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.1.permission_set", "git_admin"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.1.all_projects", "true"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.0.permission_set", "job_admin"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.0.all_projects", "false"), - resource.TestCheckResourceAttrSet("dbtcloud_service_token.test_service_token", "service_token_permissions.0.project_id"), - resource.TestCheckResourceAttrSet("dbtcloud_service_token.test_service_token", "token_string"), + testAccCheckDbtCloudServiceTokenExists( + "dbtcloud_service_token.test_service_token", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "name", + serviceTokenName, + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.#", + "2", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.1.permission_set", + "git_admin", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.1.all_projects", + "true", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.permission_set", + "job_admin", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.all_projects", + "false", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.project_id", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_service_token.test_service_token", + "token_string", + ), ), }, // MODIFY { - Config: testAccDbtCloudServiceTokenResourceFullConfig(serviceTokenName2, projectName), + Config: testAccDbtCloudServiceTokenResourceFullConfig( + serviceTokenName2, + projectName, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudServiceTokenExists("dbtcloud_service_token.test_service_token"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "name", serviceTokenName2), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.#", "2"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.0.permission_set", "git_admin"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.0.all_projects", "false"), - resource.TestCheckResourceAttrSet("dbtcloud_service_token.test_service_token", "service_token_permissions.0.project_id"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.1.all_projects", "true"), - resource.TestCheckResourceAttr("dbtcloud_service_token.test_service_token", "service_token_permissions.1.permission_set", "job_admin"), - resource.TestCheckResourceAttrSet("dbtcloud_service_token.test_service_token", "token_string"), + testAccCheckDbtCloudServiceTokenExists( + "dbtcloud_service_token.test_service_token", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "name", + serviceTokenName2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.#", + "2", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.permission_set", + "git_admin", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.all_projects", + "false", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.0.project_id", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.1.all_projects", + "true", + ), + resource.TestCheckResourceAttr( + "dbtcloud_service_token.test_service_token", + "service_token_permissions.1.permission_set", + "job_admin", + ), + resource.TestCheckResourceAttrSet( + "dbtcloud_service_token.test_service_token", + "token_string", + ), ), }, // IMPORT @@ -59,6 +129,9 @@ func TestAccDbtCloudServiceTokenResource(t *testing.T) { ImportStateVerify: true, ImportStateVerifyIgnore: []string{ "token_string", + // being a set, we need to ignore all the project_id as we don't know which one is the one with 0 + "service_token_permissions.0.project_id", + "service_token_permissions.1.project_id", }, }, }, diff --git a/pkg/sdkv2/resources/snowflake_credential_acceptance_test.go b/pkg/sdkv2/resources/snowflake_credential_acceptance_test.go index 59d27c08..d486f80f 100644 --- a/pkg/sdkv2/resources/snowflake_credential_acceptance_test.go +++ b/pkg/sdkv2/resources/snowflake_credential_acceptance_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudSnowflakeCredentialResource(t *testing.T) { @@ -39,28 +39,92 @@ func TestAccDbtCloudSnowflakeCredentialResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudSnowflakeCredentialDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudSnowflakeCredentialResourceBasicConfig(projectName, database, role, warehouse, schema, user, password), + Config: testAccDbtCloudSnowflakeCredentialResourceBasicConfig( + projectName, + database, + role, + warehouse, + schema, + user, + password, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudSnowflakeCredentialExists("dbtcloud_snowflake_credential.test_credential"), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "database", database), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "role", role), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "warehouse", warehouse), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "schema", schema), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "user", user), + testAccCheckDbtCloudSnowflakeCredentialExists( + "dbtcloud_snowflake_credential.test_credential", + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "database", + database, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "role", + role, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "warehouse", + warehouse, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "schema", + schema, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "user", + user, + ), ), }, // RENAME // MODIFY { - Config: testAccDbtCloudSnowflakeCredentialResourceBasicConfig(projectName, database2, role2, warehouse2, schema2, user2, password2), + Config: testAccDbtCloudSnowflakeCredentialResourceBasicConfig( + projectName, + database2, + role2, + warehouse2, + schema2, + user2, + password2, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudSnowflakeCredentialExists("dbtcloud_snowflake_credential.test_credential"), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "database", database2), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "role", role2), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "warehouse", warehouse2), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "schema", schema2), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "user", user2), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential", "password", password2), + testAccCheckDbtCloudSnowflakeCredentialExists( + "dbtcloud_snowflake_credential.test_credential", + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "database", + database2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "role", + role2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "warehouse", + warehouse2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "schema", + schema2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "user", + user2, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential", + "password", + password2, + ), ), }, // IMPORT @@ -79,16 +143,55 @@ func TestAccDbtCloudSnowflakeCredentialResource(t *testing.T) { CheckDestroy: testAccCheckDbtCloudSnowflakeCredentialDestroy, Steps: []resource.TestStep{ { - Config: testAccDbtCloudSnowflakeCredentialResourceBasicPrivateKeyConfig(projectName, database, role, warehouse, schema, user, privateKey, privateKeyPassphrase), + Config: testAccDbtCloudSnowflakeCredentialResourceBasicPrivateKeyConfig( + projectName, + database, + role, + warehouse, + schema, + user, + privateKey, + privateKeyPassphrase, + ), Check: resource.ComposeTestCheckFunc( - testAccCheckDbtCloudSnowflakeCredentialExists("dbtcloud_snowflake_credential.test_credential_p"), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "database", database), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "role", role), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "warehouse", warehouse), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "schema", schema), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "user", user), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "private_key", privateKey), - resource.TestCheckResourceAttr("dbtcloud_snowflake_credential.test_credential_p", "private_key_passphrase", privateKeyPassphrase), + testAccCheckDbtCloudSnowflakeCredentialExists( + "dbtcloud_snowflake_credential.test_credential_p", + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "database", + database, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "role", + role, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "warehouse", + warehouse, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "schema", + schema, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "user", + user, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "private_key", + privateKey, + ), + resource.TestCheckResourceAttr( + "dbtcloud_snowflake_credential.test_credential_p", + "private_key_passphrase", + privateKeyPassphrase, + ), ), }, // RENAME @@ -104,7 +207,9 @@ func TestAccDbtCloudSnowflakeCredentialResource(t *testing.T) { }) } -func testAccDbtCloudSnowflakeCredentialResourceBasicConfig(projectName, database, role, warehouse, schema, user, password string) string { +func testAccDbtCloudSnowflakeCredentialResourceBasicConfig( + projectName, database, role, warehouse, schema, user, password string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" @@ -124,7 +229,9 @@ resource "dbtcloud_snowflake_credential" "test_credential" { `, projectName, database, role, warehouse, schema, user, password) } -func testAccDbtCloudSnowflakeCredentialResourceBasicPrivateKeyConfig(projectName, database, role, warehouse, schema, user, private_key, private_key_passphrase string) string { +func testAccDbtCloudSnowflakeCredentialResourceBasicPrivateKeyConfig( + projectName, database, role, warehouse, schema, user, private_key, private_key_passphrase string, +) string { return fmt.Sprintf(` resource "dbtcloud_project" "test_project" { name = "%s" diff --git a/pkg/sdkv2/resources/user_groups_acceptance_test.go b/pkg/sdkv2/resources/user_groups_acceptance_test.go index c82c6613..ff681d68 100644 --- a/pkg/sdkv2/resources/user_groups_acceptance_test.go +++ b/pkg/sdkv2/resources/user_groups_acceptance_test.go @@ -6,8 +6,8 @@ import ( "strconv" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccDbtCloudUserGroupsResource(t *testing.T) { diff --git a/pkg/sdkv2/resources/webhook_acceptance_test.go b/pkg/sdkv2/resources/webhook_acceptance_test.go index fec3a039..8c61ea83 100644 --- a/pkg/sdkv2/resources/webhook_acceptance_test.go +++ b/pkg/sdkv2/resources/webhook_acceptance_test.go @@ -6,9 +6,9 @@ import ( "testing" "github.com/dbt-labs/terraform-provider-dbtcloud/pkg/dbt_cloud" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func TestAccDbtCloudWebhookResource(t *testing.T) { diff --git a/terraform_resources.d2 b/terraform_resources.d2 index 52be5b6d..42f7e633 100644 --- a/terraform_resources.d2 +++ b/terraform_resources.d2 @@ -2,7 +2,7 @@ *.*.style.font-size: 22 title: |md - # Terraform resources (v0.2.17) + # Terraform resources (v0.3.3) | {near: top-center} direction: right @@ -12,6 +12,7 @@ license_map privatelink_endpoint: {tooltip: Datasource only} group: {tooltip: Group permissions as well} +group_partial_permissions service_token: {tooltip: Permissions as well} project_artefacts: {tooltip: For setting the project docs and source freshness} job: { @@ -42,7 +43,9 @@ service_token -- project: can scope to { } } group -- project +group_partial_permissions -- project user_groups -- group +user_groups -- group_partial_permissions project -- environment job -- environment job -- environemnt_variable_job_override diff --git a/terraform_resources.png b/terraform_resources.png index 8344d61d..ab85f548 100644 Binary files a/terraform_resources.png and b/terraform_resources.png differ