diff --git a/aws/resource_aws_cloudwatch_event_target_migrate.go b/aws/resource_aws_cloudwatch_event_target_migrate.go index 185f76a1dab1..11aa0687e21c 100644 --- a/aws/resource_aws_cloudwatch_event_target_migrate.go +++ b/aws/resource_aws_cloudwatch_event_target_migrate.go @@ -171,7 +171,13 @@ func resourceAwsCloudWatchEventTargetV0() *schema.Resource { } func resourceAwsCloudWatchEventTargetStateUpgradeV0(_ context.Context, rawState map[string]interface{}, meta interface{}) (map[string]interface{}, error) { - rawState["event_bus_name"] = tfevents.DefaultEventBusName + if rawState == nil { + rawState = map[string]interface{}{} + } + + if _, ok := rawState["event_bus_name"]; !ok { + rawState["event_bus_name"] = tfevents.DefaultEventBusName + } return rawState, nil } diff --git a/aws/resource_aws_cloudwatch_event_target_migrate_test.go b/aws/resource_aws_cloudwatch_event_target_migrate_test.go index 4dbed0b29113..3ae042c208cb 100644 --- a/aws/resource_aws_cloudwatch_event_target_migrate_test.go +++ b/aws/resource_aws_cloudwatch_event_target_migrate_test.go @@ -14,6 +14,15 @@ func testResourceAwsCloudWatchEventTargetStateDataV0() map[string]interface{} { } } +func testResourceAwsCloudWatchEventTargetStateDataV0EventBusName() map[string]interface{} { + return map[string]interface{}{ + "arn": "arn:aws:test:us-east-1:123456789012:test", //lintignore:AWSAT003,AWSAT005 + "event_bus_name": "testbus", + "rule": "testrule", + "target_id": "testtargetid", + } +} + func testResourceAwsCloudWatchEventTargetStateDataV1() map[string]interface{} { v0 := testResourceAwsCloudWatchEventTargetStateDataV0() return map[string]interface{}{ @@ -24,6 +33,16 @@ func testResourceAwsCloudWatchEventTargetStateDataV1() map[string]interface{} { } } +func testResourceAwsCloudWatchEventTargetStateDataV1EventBusName() map[string]interface{} { + v0 := testResourceAwsCloudWatchEventTargetStateDataV0EventBusName() + return map[string]interface{}{ + "arn": v0["arn"], + "event_bus_name": v0["event_bus_name"], + "rule": v0["rule"], + "target_id": v0["target_id"], + } +} + func TestResourceAwsCloudWatchEventTargetStateUpgradeV0(t *testing.T) { expected := testResourceAwsCloudWatchEventTargetStateDataV1() actual, err := resourceAwsCloudWatchEventTargetStateUpgradeV0(context.Background(), testResourceAwsCloudWatchEventTargetStateDataV0(), nil) @@ -35,3 +54,15 @@ func TestResourceAwsCloudWatchEventTargetStateUpgradeV0(t *testing.T) { t.Fatalf("\n\nexpected:\n\n%#v\n\ngot:\n\n%#v\n\n", expected, actual) } } + +func TestResourceAwsCloudWatchEventTargetStateUpgradeV0EventBusName(t *testing.T) { + expected := testResourceAwsCloudWatchEventTargetStateDataV1EventBusName() + actual, err := resourceAwsCloudWatchEventTargetStateUpgradeV0(context.Background(), testResourceAwsCloudWatchEventTargetStateDataV0EventBusName(), nil) + if err != nil { + t.Fatalf("error migrating state: %s", err) + } + + if !reflect.DeepEqual(expected, actual) { + t.Fatalf("\n\nexpected:\n\n%#v\n\ngot:\n\n%#v\n\n", expected, actual) + } +}