-
Notifications
You must be signed in to change notification settings - Fork 9.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
r/aws_dynamodb: wait for tag propagation #39326
Conversation
Community NoteVoting for Prioritization
For Submitters
|
Previously the `TagResource` and `UntagResource` API's in the DynamoDB service were strongly consistent. An AWS change in August 2024 made these API's eventually consistent, resulting in failures when the `aws_dynamodb_tag` resource (or other resources which support the `tags` argument) attempted to read back tags at the end of a create or update operation. This change adds waiting logic into the generated `UpdateTags` function, ensuring the tags exist before proceeding with any subsequent read operations. ```console % make testacc PKG=dynamodb TESTS=TestAccDynamoDBTag_ make: Verifying source code with gofmt... ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.22.6 test ./internal/service/dynamodb/... -v -count 1 -parallel 20 -run='TestAccDynamoDBTag_' -timeout 360m --- PASS: TestAccDynamoDBTag_basic (43.96s) --- PASS: TestAccDynamoDBTag_disappears (51.42s) --- PASS: TestAccDynamoDBTag_value (70.05s) --- PASS: TestAccDynamoDBTag_ResourceARN_tableReplica (214.62s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb 220.704s ``` Additional tests with observed tagging failures prior to this change: ```console % make testacc PKG=dynamodb TESTS="TestAccDynamoDBTable_Replica_tagsUpdate|TestAccDynamoDBTableReplica_basic|TestAccDynamoDBTableReplica_tableClass|TestAccDynamoDBTableReplica_tags" make: Verifying source code with gofmt... ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.22.6 test ./internal/service/dynamodb/... -v -count 1 -parallel 20 -run='TestAccDynamoDBTable_Replica_tagsUpdate|TestAccDynamoDBTableReplica_basic|TestAccDynamoDBTableRepl ica_tableClass|TestAccDynamoDBTableReplica_tags' -timeout 360m --- PASS: TestAccDynamoDBTableReplica_tags (215.54s) --- PASS: TestAccDynamoDBTableReplica_basic (253.02s) --- PASS: TestAccDynamoDBTableReplica_tableClass (377.68s) --- PASS: TestAccDynamoDBTable_Replica_tagsUpdate (451.54s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb 457.615s ```
e8b3597
to
f268913
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
> make testacc PKG=dynamodb TESTS=TestAccDynamoDBTag_
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.6 test ./internal/service/dynamodb/... -v -count 1 -parallel 20 -run='TestAccDynamoDBTag_' -timeout 360m
=== RUN TestAccDynamoDBTag_basic
=== PAUSE TestAccDynamoDBTag_basic
=== RUN TestAccDynamoDBTag_disappears
=== PAUSE TestAccDynamoDBTag_disappears
=== RUN TestAccDynamoDBTag_ResourceARN_tableReplica
=== PAUSE TestAccDynamoDBTag_ResourceARN_tableReplica
=== RUN TestAccDynamoDBTag_value
=== PAUSE TestAccDynamoDBTag_value
=== CONT TestAccDynamoDBTag_basic
=== CONT TestAccDynamoDBTag_ResourceARN_tableReplica
=== CONT TestAccDynamoDBTag_disappears
=== CONT TestAccDynamoDBTag_value
--- PASS: TestAccDynamoDBTag_disappears (51.77s)
--- PASS: TestAccDynamoDBTag_basic (53.66s)
--- PASS: TestAccDynamoDBTag_value (75.72s)
--- PASS: TestAccDynamoDBTag_ResourceARN_tableReplica (166.70s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb 171.559s
> make testacc PKG=dynamodb TESTS="TestAccDynamoDBTable_Replica_tagsUpdate|TestAccDynamoDBTableReplica_basic|TestAccDynamoDBTableReplica_tableClass|TestAccDynamoDBTableReplica_tags"
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.6 test ./internal/service/dynamodb/... -v -count 1 -parallel 20 -run='TestAccDynamoDBTable_Replica_tagsUpdate|TestAccDynamoDBTableReplica_basic|TestAccDynamoDBTableReplica_tableClass|TestAccDynamoDBTableReplica_tags' -timeout 360m
=== RUN TestAccDynamoDBTableReplica_basic
=== PAUSE TestAccDynamoDBTableReplica_basic
=== RUN TestAccDynamoDBTableReplica_tags
=== PAUSE TestAccDynamoDBTableReplica_tags
=== RUN TestAccDynamoDBTableReplica_tableClass
=== PAUSE TestAccDynamoDBTableReplica_tableClass
=== RUN TestAccDynamoDBTable_Replica_tagsUpdate
=== PAUSE TestAccDynamoDBTable_Replica_tagsUpdate
=== CONT TestAccDynamoDBTableReplica_basic
=== CONT TestAccDynamoDBTableReplica_tableClass
=== CONT TestAccDynamoDBTable_Replica_tagsUpdate
=== CONT TestAccDynamoDBTableReplica_tags
--- PASS: TestAccDynamoDBTableReplica_basic (278.40s)
--- PASS: TestAccDynamoDBTableReplica_tags (314.84s)
--- PASS: TestAccDynamoDBTableReplica_tableClass (384.68s)
--- PASS: TestAccDynamoDBTable_Replica_tagsUpdate (500.79s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb 505.628s
This functionality has been released in v5.68.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you! |
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. |
Description
Previously the
TagResource
andUntagResource
API's in the DynamoDB service were strongly consistent. An AWS change in August 2024 made these API's eventually consistent, resulting in failures when theaws_dynamodb_tag
resource (or other resources which support thetags
argument) attempted to read back tags at the end of a create or update operation. This change adds waiting logic into the generatedUpdateTags
function, ensuring the tags exist before proceeding with any subsequent read operations.Relations
Closes #39275
Output from Acceptance Testing
Additional tests with observed tagging failures prior to this change: