Skip to content

Commit da8ec27

Browse files
authored
Merge pull request #39491 from hashicorp/b-dynamodb_tags_propagation
r/dynamodb_tag: change equality check in propagation waiter
2 parents d62e960 + c398c7c commit da8ec27

File tree

19 files changed

+2383
-91
lines changed

19 files changed

+2383
-91
lines changed

.changelog/39491.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/aws_dynamodb_tag: Fix propagation timeout when multiple tags exist
3+
```

internal/generate/tags/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ var (
8383
updateTagsFunc = flag.String("UpdateTagsFunc", defaultUpdateTagsFunc, "updateTagsFunc")
8484
waitTagsPropagatedFunc = flag.String("WaitFunc", defaultWaitTagsPropagatedFunc, "waitFunc")
8585
waitContinuousOccurence = flag.Int("WaitContinuousOccurence", 0, "ContinuousTargetOccurence for Wait function")
86+
waitFuncComparator = flag.String("WaitFuncComparator", "Equal", "waitFuncComparator")
8687
waitDelay = flag.Duration("WaitDelay", 0, "Delay for Wait function")
8788
waitMinTimeout = flag.Duration("WaitMinTimeout", 0, `"MinTimeout" (minimum poll interval) for Wait function`)
8889
waitPollInterval = flag.Duration("WaitPollInterval", 0, "PollInterval for Wait function")
@@ -214,6 +215,7 @@ type TemplateData struct {
214215
WaitTagsPropagatedFunc string
215216
WaitContinuousOccurence int
216217
WaitDelay string
218+
WaitFuncComparator string
217219
WaitMinTimeout string
218220
WaitPollInterval string
219221
WaitTimeout string
@@ -370,6 +372,7 @@ func main() {
370372
UpdateTagsFunc: *updateTagsFunc,
371373
UpdateTagsIgnoreSystem: !*updateTagsNoIgnoreSystem,
372374
WaitForPropagation: *waitForPropagation,
375+
WaitFuncComparator: *waitFuncComparator,
373376
WaitTagsPropagatedFunc: *waitTagsPropagatedFunc,
374377
WaitContinuousOccurence: *waitContinuousOccurence,
375378
WaitDelay: formatDuration(*waitDelay),

internal/generate/tags/templates/v2/wait_tags_propagated_body.gtpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func {{ .WaitTagsPropagatedFunc }}(ctx context.Context, conn {{ .ClientType }},
2222
output = output.IgnoreConfig(inContext.IgnoreConfig)
2323
}
2424

25-
return output.Equal(tags), nil
25+
return output.{{ .WaitFuncComparator }}(tags), nil
2626
}
2727
opts := tfresource.WaitOpts{
2828
{{- if ne .WaitContinuousOccurence 0 }}

internal/service/dynamodb/generate.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
// Copyright (c) HashiCorp, Inc.
22
// SPDX-License-Identifier: MPL-2.0
33

4-
//go:generate go run ../../generate/tagresource/main.go
5-
//go:generate go run ../../generate/tags/main.go -GetTag -ListTags -ListTagsOp=ListTagsOfResource -ServiceTagsSlice -UpdateTags -Wait -WaitContinuousOccurence 5 -WaitMinTimeout 1s -WaitTimeout 10m -ParentNotFoundErrCode=ResourceNotFoundException
4+
//go:generate go run ../../generate/tagresource/main.go -UpdateTagsFunc=updateTagsResource
5+
//go:generate go run ../../generate/tags/main.go -GetTag -ListTags -ListTagsOp=ListTagsOfResource -ServiceTagsSlice -UpdateTags -Wait -WaitContinuousOccurence 2 -WaitMinTimeout 1s -WaitTimeout 2m -ParentNotFoundErrCode=ResourceNotFoundException
6+
//go:generate go run ../../generate/tags/main.go -SkipTypesImp -UpdateTags -UpdateTagsFunc=updateTagsResource -Wait -WaitFunc=waitTagsPropagedForResource -WaitContinuousOccurence 2 -WaitMinTimeout 1s -WaitTimeout 2m -WaitFuncComparator=ContainsAll -- update_tags_for_resource_gen.go
67
//go:generate go run ../../generate/servicepackage/main.go
78
//go:generate go run ../../generate/listpages/main.go -ListOps=ListBackups -InputPaginator=ExclusiveStartBackupArn -OutputPaginator=LastEvaluatedBackupArn -- list_backups_pages_gen.go
9+
//go:generate go run ../../generate/tagstests/main.go
810
// ONLY generate directives and package declaration! Do not add anything else to this file.
911

1012
package dynamodb

internal/service/dynamodb/resource_policy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"github.com/hashicorp/terraform-provider-aws/names"
2828
)
2929

30-
// @FrameworkResource(name="Resource Policy")
30+
// @FrameworkResource("aws_dynamodb_resource_policy", name="Resource Policy")
3131
func newResourcePolicyResource(_ context.Context) (resource.ResourceWithConfigure, error) {
3232
r := &resourcePolicyResource{}
3333

internal/service/dynamodb/table.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const (
4747

4848
// @SDKResource("aws_dynamodb_table", name="Table")
4949
// @Tags(identifierAttribute="arn")
50+
// @Testing(existsType="github.com/aws/aws-sdk-go-v2/service/dynamodb/types;types.TableDescription")
5051
func resourceTable() *schema.Resource {
5152
//lintignore:R011
5253
return &schema.Resource{

internal/service/dynamodb/table_replica.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const (
3737

3838
// @SDKResource("aws_dynamodb_table_replica", name="Table Replica")
3939
// @Tags
40+
// @Testing(tagsTest=false)
4041
func resourceTableReplica() *schema.Resource {
4142
//lintignore:R011
4243
return &schema.Resource{

0 commit comments

Comments
 (0)