From 132373cbe944899e0b5b0043bfdcb85e8913704b Mon Sep 17 00:00:00 2001 From: ChrisIsidora <7924584+ChrisIsidora@users.noreply.github.com> Date: Thu, 20 Oct 2022 16:01:08 +0200 Subject: [PATCH] fix: Fixed Grants Resource Update With Futures (#1289) --- pkg/resources/sequence_grant.go | 9 +++++++-- pkg/resources/stage_grant.go | 9 +++++++-- pkg/resources/stream_grant.go | 10 ++++++++-- pkg/resources/task_grant.go | 9 +++++++-- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/pkg/resources/sequence_grant.go b/pkg/resources/sequence_grant.go index 774572d2c7..e2b2f9dfd0 100644 --- a/pkg/resources/sequence_grant.go +++ b/pkg/resources/sequence_grant.go @@ -229,9 +229,14 @@ func UpdateSequenceGrant(d *schema.ResourceData, meta interface{}) error { dbName := grantID.ResourceName schemaName := grantID.SchemaName sequenceName := grantID.ObjectName + futureSequences := (sequenceName == "") - // create the builder - builder := snowflake.SequenceGrant(dbName, schemaName, sequenceName) + var builder snowflake.GrantBuilder + if futureSequences { + builder = snowflake.FutureSequenceGrant(dbName, schemaName) + } else { + builder = snowflake.SequenceGrant(dbName, schemaName, sequenceName) + } // first revoke err = deleteGenericGrantRolesAndShares( diff --git a/pkg/resources/stage_grant.go b/pkg/resources/stage_grant.go index 32376d78ed..c320d38476 100644 --- a/pkg/resources/stage_grant.go +++ b/pkg/resources/stage_grant.go @@ -225,9 +225,14 @@ func UpdateStageGrant(d *schema.ResourceData, meta interface{}) error { dbName := grantID.ResourceName schemaName := grantID.SchemaName stageName := grantID.ObjectName + futureStages := (stageName == "") - // create the builder - builder := snowflake.StageGrant(dbName, schemaName, stageName) + var builder snowflake.GrantBuilder + if futureStages { + builder = snowflake.FutureStageGrant(dbName, schemaName) + } else { + builder = snowflake.StageGrant(dbName, schemaName, stageName) + } // first revoke err = deleteGenericGrantRolesAndShares( diff --git a/pkg/resources/stream_grant.go b/pkg/resources/stream_grant.go index 392672d88b..a057dfb8ac 100644 --- a/pkg/resources/stream_grant.go +++ b/pkg/resources/stream_grant.go @@ -230,8 +230,14 @@ func UpdateStreamGrant(d *schema.ResourceData, meta interface{}) error { schemaName := grantID.SchemaName streamName := grantID.ObjectName - // create the builder - builder := snowflake.StreamGrant(dbName, schemaName, streamName) + futureStreams := (streamName == "") + + var builder snowflake.GrantBuilder + if futureStreams { + builder = snowflake.FutureStreamGrant(dbName, schemaName) + } else { + builder = snowflake.StreamGrant(dbName, schemaName, streamName) + } // first revoke err = deleteGenericGrantRolesAndShares( diff --git a/pkg/resources/task_grant.go b/pkg/resources/task_grant.go index 7c73027bf7..444535b860 100644 --- a/pkg/resources/task_grant.go +++ b/pkg/resources/task_grant.go @@ -230,9 +230,14 @@ func UpdateTaskGrant(d *schema.ResourceData, meta interface{}) error { dbName := grantID.ResourceName schemaName := grantID.SchemaName taskName := grantID.ObjectName + futureTasks := (taskName == "") - // create the builder - builder := snowflake.TaskGrant(dbName, schemaName, taskName) + var builder snowflake.GrantBuilder + if futureTasks { + builder = snowflake.FutureTaskGrant(dbName, schemaName) + } else { + builder = snowflake.TaskGrant(dbName, schemaName, taskName) + } // first revoke err = deleteGenericGrantRolesAndShares(