-
Notifications
You must be signed in to change notification settings - Fork 9.3k
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
resource/aws_cloudwatch_event_target: Prevent potential panic and passthrough custom event_bus_name in v0 state upgrade #16484
Conversation
…sthrough custom event_bus_name in v0 state upgrade Reference: #16394 If a configuration was applied with version 3.14.0, the `event_bus_name` attribute could have a custom value and the state upgrader function would previously not pass it through. Previous output from new unit test: ``` --- FAIL: TestResourceAwsCloudWatchEventTargetStateUpgradeV0EventBusName (0.00s) resource_aws_cloudwatch_event_target_migrate_test.go:66: expected: map[string]interface {}{"arn":"arn:aws:test:us-east-1:123456789012:test", "event_bus_name":"testbus", "rule":"testrule", "target_id":"testtargetid"} got: map[string]interface {}{"arn":"arn:aws:test:us-east-1:123456789012:test", "event_bus_name":"default", "rule":"testrule", "target_id":"testtargetid"} ``` Given this configuration: ```terraform terraform { required_providers { aws = "3.14.0" } required_version = "0.12.29" } provider "aws" { region = "us-east-2" } resource "aws_cloudwatch_event_bus" "test" { name = "16394-test" } resource "aws_cloudwatch_event_rule" "test" { event_bus_name = aws_cloudwatch_event_bus.test.name event_pattern = jsonencode({ source = ["aws.ec2"] }) name = "16394-test" } resource "aws_cloudwatch_event_target" "test" { arn = aws_sns_topic.test.arn event_bus_name = aws_cloudwatch_event_bus.test.name rule = aws_cloudwatch_event_rule.test.name target_id = "16394-test" } resource "aws_sns_topic" "test" { name = "16394-test" } ``` Output from console: ```console $ terraform init ... $ terraform apply ... Apply complete! Resources: 4 added, 0 changed, 0 destroyed. # edit provider version to 3.18.0 $ terraform init ... $ terraform apply ... An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # aws_cloudwatch_event_target.test will be created + resource "aws_cloudwatch_event_target" "test" { + arn = "arn:aws:sns:us-east-2:--OMITTED--:16394-test" + event_bus_name = "16394-test" + id = (known after apply) + rule = "16394-test" + target_id = "16394-test" } Plan: 1 to add, 0 to change, 0 to destroy. # swap in built Terraform AWS Provider binary $ terraform apply ... Apply complete! Resources: 0 added, 0 changed, 0 destroyed. ``` Output from acceptance testing: ``` --- PASS: TestAccAWSCloudWatchEventTarget_basic (35.74s) --- PASS: TestAccAWSCloudWatchEventTarget_batch (140.33s) --- PASS: TestAccAWSCloudWatchEventTarget_disappears (17.51s) --- PASS: TestAccAWSCloudWatchEventTarget_ecs (28.63s) --- PASS: TestAccAWSCloudWatchEventTarget_ecsWithBlankTaskCount (31.25s) --- PASS: TestAccAWSCloudWatchEventTarget_EventBusName (32.01s) --- PASS: TestAccAWSCloudWatchEventTarget_full (59.07s) --- PASS: TestAccAWSCloudWatchEventTarget_GeneratedTargetId (16.62s) --- PASS: TestAccAWSCloudWatchEventTarget_input_transformer (47.34s) --- PASS: TestAccAWSCloudWatchEventTarget_inputTransformerJsonString (38.99s) --- PASS: TestAccAWSCloudWatchEventTarget_kinesis (59.09s) --- PASS: TestAccAWSCloudWatchEventTarget_sqs (16.71s) --- PASS: TestAccAWSCloudWatchEventTarget_ssmDocument (18.77s) ```
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.
Niiice, LGTM 👍
This has been released in version 3.20.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 for triage. Thanks! |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks! |
Community Note
Reference: #16069
Reference: #16075
Closes #16394
Release note for CHANGELOG:
If a configuration was applied with version 3.14.0, the
event_bus_name
attribute could have a custom value and the state upgrader function would previously not pass it through.Previous output from new unit test:
Given this configuration:
Output from console:
Output from acceptance testing: