Skip to content

Commit 93e42b6

Browse files
Changes after review
1 parent 44a8701 commit 93e42b6

File tree

4 files changed

+83
-17
lines changed

4 files changed

+83
-17
lines changed

pkg/acceptance/bettertestspoc/assert/resourceparametersassert/account_resource_parameters_gen.go

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resources/current_account.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/previewfeatures"
1212
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/resources"
1313
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
14+
"github.com/hashicorp/go-cty/cty"
1415
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1516
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1617
)
@@ -75,6 +76,16 @@ func CurrentAccount() *schema.Resource {
7576
StateContext: TrackingImportWrapper(resources.CurrentAccount, schema.ImportStatePassthroughContext),
7677
},
7778

79+
SchemaVersion: 1,
80+
StateUpgraders: []schema.StateUpgrader{
81+
{
82+
Version: 0,
83+
// setting type to cty.EmptyObject is a bit hacky here but following https://developer.hashicorp.com/terraform/plugin/framework/migrating/resources/state-upgrade#sdkv2-1 would require lots of repetitive code; this should work with cty.EmptyObject
84+
Type: cty.EmptyObject,
85+
Upgrade: v2_10_0_CurrentAccountStateUpgrader,
86+
},
87+
},
88+
7889
Timeouts: defaultTimeouts,
7990
}
8091
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package resources
2+
3+
import (
4+
"context"
5+
)
6+
7+
func v2_10_0_CurrentAccountStateUpgrader(_ context.Context, state map[string]any, _ any) (map[string]any, error) {
8+
if state == nil {
9+
return state, nil
10+
}
11+
12+
if v, ok := state["saml_identity_provider"]; ok && v != nil && v.(string) == "" {
13+
delete(state, "saml_identity_provider")
14+
}
15+
16+
return state, nil
17+
}

pkg/testacc/resource_current_account_acceptance_test.go

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ package testacc
55
import (
66
"testing"
77

8+
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert"
89
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert/resourceassert"
910
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/config"
1011
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/config/model"
1112
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/config/providermodel"
1213
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/helpers"
14+
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/previewfeatures"
1315
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
1416
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1517
"github.com/hashicorp/terraform-plugin-testing/plancheck"
@@ -762,7 +764,6 @@ func TestAcc_CurrentAccount_Complete(t *testing.T) {
762764
WithWeekOfYearPolicy(1).
763765
WithWeekStart(1)
764766

765-
config.FromModels(t, completeConfigModel)
766767
resource.Test(t, resource.TestCase{
767768
ProtoV6ProviderFactories: TestAccProtoV6ProviderFactories,
768769
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
@@ -1018,3 +1019,40 @@ func TestAcc_CurrentAccount_Complete(t *testing.T) {
10181019
},
10191020
})
10201021
}
1022+
1023+
func TestAcc_CurrentAccount_migrateFromV2_10_0(t *testing.T) {
1024+
testClient().EnsureValidNonProdAccountIsUsed(t)
1025+
1026+
provider := providermodel.SnowflakeProvider().
1027+
WithPreviewFeaturesEnabled(string(previewfeatures.CurrentAccountResource)).
1028+
WithWarehouse(testClient().Ids.WarehouseId().FullyQualifiedName())
1029+
configModel := model.CurrentAccount("test").
1030+
WithNetworkPolicy("RESTRICTED_ACCESS")
1031+
1032+
resource.Test(t, resource.TestCase{
1033+
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
1034+
tfversion.RequireAbove(tfversion.Version1_5_0),
1035+
},
1036+
Steps: []resource.TestStep{
1037+
{
1038+
ExternalProviders: ExternalProviderWithExactVersion("2.10.0"),
1039+
Config: config.FromModels(t, provider, configModel),
1040+
Check: assertThat(t,
1041+
assert.Check(resource.TestCheckResourceAttr(configModel.ResourceReference(), "saml_identity_provider", "")),
1042+
),
1043+
},
1044+
{
1045+
ConfigPlanChecks: resource.ConfigPlanChecks{
1046+
PreApply: []plancheck.PlanCheck{
1047+
plancheck.ExpectResourceAction(configModel.ResourceReference(), plancheck.ResourceActionNoop),
1048+
},
1049+
},
1050+
ProtoV6ProviderFactories: TestAccProtoV6ProviderFactories,
1051+
Config: config.FromModels(t, provider, configModel),
1052+
Check: assertThat(t,
1053+
assert.Check(resource.TestCheckNoResourceAttr(configModel.ResourceReference(), "saml_identity_provider")),
1054+
),
1055+
},
1056+
},
1057+
})
1058+
}

0 commit comments

Comments
 (0)