Skip to content
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

Add user_data_replace_on_change field to aws_instance #23604

Merged

Conversation

jaredfholgate
Copy link

@jaredfholgate jaredfholgate commented Mar 10, 2022

Added a user_data_replace_on_change field to enable replication of the the pre-V4 provider behaviour when changing user_data or user_data_base64 field values. Previously this resulted in a destroy and recreate of the EC2 instance. This flag when set totrue will replicate that behaviour and result in a destroy and recreate.

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

Closes #23315

Output from acceptance testing:

$ make testacc TESTS=TestAccEC2Instance_UserDataReplaceOnChange PKG=ec2  

==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20 -run='TestAccEC2Instance_UserDataReplaceOnChange'  -timeout 180m
=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_On
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_On
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On (200.25s)

=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On_Base64 (215.41s)

=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_Off
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_Off
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off (176.98s)

=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64 (191.20s)

PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        218.843s

...

@github-actions github-actions bot added needs-triage Waiting for first response or review from a maintainer. documentation Introduces or discusses updates to documentation. service/ec2 Issues and PRs that pertain to the ec2 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. size/M Managed by automation to categorize the size of a PR. labels Mar 10, 2022
@jaredfholgate jaredfholgate changed the title F aws instance user data replace on change Add user_data_replace_on_change field to aws_instance Mar 10, 2022
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome @jaredfholgate 👋

It looks like this is your first Pull Request submission to the Terraform AWS Provider! If you haven’t already done so please make sure you have checked out our CONTRIBUTING guide and FAQ to make sure your contribution is adhering to best practice and has all the necessary elements in place for a successful approval.

Also take a look at our FAQ which details how we prioritize Pull Requests for inclusion.

Thanks again, and welcome to the community! 😃

@github-actions github-actions bot added size/L Managed by automation to categorize the size of a PR. and removed size/M Managed by automation to categorize the size of a PR. labels Mar 14, 2022
@jaredfholgate jaredfholgate marked this pull request as ready for review March 14, 2022 21:03
@anGie44 anGie44 added enhancement Requests to existing resources that expand the functionality or scope. and removed needs-triage Waiting for first response or review from a maintainer. labels Mar 14, 2022
@anGie44 anGie44 self-assigned this Mar 14, 2022
Copy link
Contributor

@anGie44 anGie44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @jaredfholgate , this LGTM. just a couple notes above the test checks since we can luckily re-use some methods already available in the test file.

internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
internal/service/ec2/instance_test.go Outdated Show resolved Hide resolved
@anGie44 anGie44 added this to the v4.7.0 milestone Mar 21, 2022
@github-actions github-actions bot removed the size/L Managed by automation to categorize the size of a PR. label Mar 21, 2022
@github-actions github-actions bot added the size/XL Managed by automation to categorize the size of a PR. label Mar 21, 2022
@anGie44 anGie44 force-pushed the f-aws_instance_user_data_replace_on_change branch from 4d8f9d5 to a4beb9e Compare March 21, 2022 20:12
Copy link
Contributor

@anGie44 anGie44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again @jaredfholgate , LGTM 🚀

Output of acceptance tests:

make testacc TESTARGS='-run=TestAccEC2Instance_' PKG=ec2 ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2Instance_ -timeout 180m
=== RUN   TestAccEC2Instance_inDefaultVPCBySgName
=== PAUSE TestAccEC2Instance_inDefaultVPCBySgName
=== RUN   TestAccEC2Instance_inDefaultVPCBySgID
=== PAUSE TestAccEC2Instance_inDefaultVPCBySgID
=== RUN   TestAccEC2Instance_inEC2Classic
=== PAUSE TestAccEC2Instance_inEC2Classic
=== RUN   TestAccEC2Instance_basic
=== PAUSE TestAccEC2Instance_basic
=== RUN   TestAccEC2Instance_atLeastOneOtherEBSVolume
=== PAUSE TestAccEC2Instance_atLeastOneOtherEBSVolume
=== RUN   TestAccEC2Instance_EBSBlockDevice_kmsKeyARN
=== PAUSE TestAccEC2Instance_EBSBlockDevice_kmsKeyARN
=== RUN   TestAccEC2Instance_EBSBlockDevice_invalidIopsForVolumeType
=== PAUSE TestAccEC2Instance_EBSBlockDevice_invalidIopsForVolumeType
=== RUN   TestAccEC2Instance_EBSBlockDevice_invalidThroughputForVolumeType
=== PAUSE TestAccEC2Instance_EBSBlockDevice_invalidThroughputForVolumeType
=== RUN   TestAccEC2Instance_EBSBlockDevice_RootBlockDevice_removed
=== PAUSE TestAccEC2Instance_EBSBlockDevice_RootBlockDevice_removed
=== RUN   TestAccEC2Instance_RootBlockDevice_kmsKeyARN
=== PAUSE TestAccEC2Instance_RootBlockDevice_kmsKeyARN
=== RUN   TestAccEC2Instance_userDataBase64
=== PAUSE TestAccEC2Instance_userDataBase64
=== RUN   TestAccEC2Instance_userDataBase64_updateWithBashFile
=== PAUSE TestAccEC2Instance_userDataBase64_updateWithBashFile
=== RUN   TestAccEC2Instance_userDataBase64_updateWithZipFile
=== PAUSE TestAccEC2Instance_userDataBase64_updateWithZipFile
=== RUN   TestAccEC2Instance_userDataBase64_update
=== PAUSE TestAccEC2Instance_userDataBase64_update
=== RUN   TestAccEC2Instance_gp2IopsDevice
=== PAUSE TestAccEC2Instance_gp2IopsDevice
=== RUN   TestAccEC2Instance_gp2WithIopsValue
=== PAUSE TestAccEC2Instance_gp2WithIopsValue
=== RUN   TestAccEC2Instance_blockDevices
=== PAUSE TestAccEC2Instance_blockDevices
=== RUN   TestAccEC2Instance_rootInstanceStore
=== PAUSE TestAccEC2Instance_rootInstanceStore
=== RUN   TestAccEC2Instance_noAMIEphemeralDevices
=== PAUSE TestAccEC2Instance_noAMIEphemeralDevices
=== RUN   TestAccEC2Instance_sourceDestCheck
=== PAUSE TestAccEC2Instance_sourceDestCheck
=== RUN   TestAccEC2Instance_disableAPITermination
=== PAUSE TestAccEC2Instance_disableAPITermination
=== RUN   TestAccEC2Instance_dedicatedInstance
=== PAUSE TestAccEC2Instance_dedicatedInstance
=== RUN   TestAccEC2Instance_outpost
=== PAUSE TestAccEC2Instance_outpost
=== RUN   TestAccEC2Instance_placementGroup
=== PAUSE TestAccEC2Instance_placementGroup
=== RUN   TestAccEC2Instance_placementPartitionNumber
=== PAUSE TestAccEC2Instance_placementPartitionNumber
=== RUN   TestAccEC2Instance_IPv6_supportAddressCount
=== PAUSE TestAccEC2Instance_IPv6_supportAddressCount
=== RUN   TestAccEC2Instance_ipv6AddressCountAndSingleAddressCausesError
=== PAUSE TestAccEC2Instance_ipv6AddressCountAndSingleAddressCausesError
=== RUN   TestAccEC2Instance_IPv6_supportAddressCountWithIPv4
=== PAUSE TestAccEC2Instance_IPv6_supportAddressCountWithIPv4
=== RUN   TestAccEC2Instance_networkInstanceSecurityGroups
=== PAUSE TestAccEC2Instance_networkInstanceSecurityGroups
=== RUN   TestAccEC2Instance_networkInstanceRemovingAllSecurityGroups
=== PAUSE TestAccEC2Instance_networkInstanceRemovingAllSecurityGroups
=== RUN   TestAccEC2Instance_networkInstanceVPCSecurityGroupIDs
=== PAUSE TestAccEC2Instance_networkInstanceVPCSecurityGroupIDs
=== RUN   TestAccEC2Instance_tags
=== PAUSE TestAccEC2Instance_tags
=== RUN   TestAccEC2Instance_BlockDeviceTags_volumeTags
=== PAUSE TestAccEC2Instance_BlockDeviceTags_volumeTags
=== RUN   TestAccEC2Instance_BlockDeviceTags_withAttachedVolume
=== PAUSE TestAccEC2Instance_BlockDeviceTags_withAttachedVolume
=== RUN   TestAccEC2Instance_BlockDeviceTags_ebsAndRoot
=== PAUSE TestAccEC2Instance_BlockDeviceTags_ebsAndRoot
=== RUN   TestAccEC2Instance_instanceProfileChange
=== PAUSE TestAccEC2Instance_instanceProfileChange
=== RUN   TestAccEC2Instance_withIAMInstanceProfile
=== PAUSE TestAccEC2Instance_withIAMInstanceProfile
=== RUN   TestAccEC2Instance_withIAMInstanceProfilePath
=== PAUSE TestAccEC2Instance_withIAMInstanceProfilePath
=== RUN   TestAccEC2Instance_privateIP
=== PAUSE TestAccEC2Instance_privateIP
=== RUN   TestAccEC2Instance_associatePublicIPAndPrivateIP
=== PAUSE TestAccEC2Instance_associatePublicIPAndPrivateIP
=== RUN   TestAccEC2Instance_Empty_privateIP
=== PAUSE TestAccEC2Instance_Empty_privateIP
=== RUN   TestAccEC2Instance_keyPairCheck
=== PAUSE TestAccEC2Instance_keyPairCheck
=== RUN   TestAccEC2Instance_rootBlockDeviceMismatch
=== PAUSE TestAccEC2Instance_rootBlockDeviceMismatch
=== RUN   TestAccEC2Instance_forceNewAndTagsDrift
=== PAUSE TestAccEC2Instance_forceNewAndTagsDrift
=== RUN   TestAccEC2Instance_changeInstanceType
=== PAUSE TestAccEC2Instance_changeInstanceType
=== RUN   TestAccEC2Instance_changeInstanceTypeAndUserData
=== PAUSE TestAccEC2Instance_changeInstanceTypeAndUserData
=== RUN   TestAccEC2Instance_changeInstanceTypeAndUserDataBase64
=== PAUSE TestAccEC2Instance_changeInstanceTypeAndUserDataBase64
=== RUN   TestAccEC2Instance_EBSRootDevice_basic
=== PAUSE TestAccEC2Instance_EBSRootDevice_basic
=== RUN   TestAccEC2Instance_EBSRootDevice_modifySize
=== PAUSE TestAccEC2Instance_EBSRootDevice_modifySize
=== RUN   TestAccEC2Instance_EBSRootDevice_modifyType
=== PAUSE TestAccEC2Instance_EBSRootDevice_modifyType
=== RUN   TestAccEC2Instance_EBSRootDeviceModifyIOPS_io1
=== PAUSE TestAccEC2Instance_EBSRootDeviceModifyIOPS_io1
=== RUN   TestAccEC2Instance_EBSRootDeviceModifyIOPS_io2
=== PAUSE TestAccEC2Instance_EBSRootDeviceModifyIOPS_io2
=== RUN   TestAccEC2Instance_EBSRootDeviceModifyThroughput_gp3
=== PAUSE TestAccEC2Instance_EBSRootDeviceModifyThroughput_gp3
=== RUN   TestAccEC2Instance_EBSRootDevice_modifyDeleteOnTermination
=== PAUSE TestAccEC2Instance_EBSRootDevice_modifyDeleteOnTermination
=== RUN   TestAccEC2Instance_EBSRootDevice_modifyAll
=== PAUSE TestAccEC2Instance_EBSRootDevice_modifyAll
=== RUN   TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifySize
=== PAUSE TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifySize
=== RUN   TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifyDeleteOnTermination
=== PAUSE TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifyDeleteOnTermination
=== RUN   TestAccEC2Instance_EBSRootDevice_multipleDynamicEBSBlockDevices
=== PAUSE TestAccEC2Instance_EBSRootDevice_multipleDynamicEBSBlockDevices
=== RUN   TestAccEC2Instance_primaryNetworkInterface
=== PAUSE TestAccEC2Instance_primaryNetworkInterface
=== RUN   TestAccEC2Instance_primaryNetworkInterfaceSourceDestCheck
=== PAUSE TestAccEC2Instance_primaryNetworkInterfaceSourceDestCheck
=== RUN   TestAccEC2Instance_addSecondaryInterface
=== PAUSE TestAccEC2Instance_addSecondaryInterface
=== RUN   TestAccEC2Instance_addSecurityGroupNetworkInterface
=== PAUSE TestAccEC2Instance_addSecurityGroupNetworkInterface
=== RUN   TestAccEC2Instance_NewNetworkInterface_publicIPAndSecondaryPrivateIPs
=== PAUSE TestAccEC2Instance_NewNetworkInterface_publicIPAndSecondaryPrivateIPs
=== RUN   TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPs
=== PAUSE TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPs
=== RUN   TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPsUpdate
=== PAUSE TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPsUpdate
=== RUN   TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPs
=== PAUSE TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPs
=== RUN   TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPsUpdate
=== PAUSE TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPsUpdate
=== RUN   TestAccEC2Instance_AssociatePublic_defaultPrivate
=== PAUSE TestAccEC2Instance_AssociatePublic_defaultPrivate
=== RUN   TestAccEC2Instance_AssociatePublic_defaultPublic
=== PAUSE TestAccEC2Instance_AssociatePublic_defaultPublic
=== RUN   TestAccEC2Instance_AssociatePublic_explicitPublic
=== PAUSE TestAccEC2Instance_AssociatePublic_explicitPublic
=== RUN   TestAccEC2Instance_AssociatePublic_explicitPrivate
=== PAUSE TestAccEC2Instance_AssociatePublic_explicitPrivate
=== RUN   TestAccEC2Instance_AssociatePublic_overridePublic
=== PAUSE TestAccEC2Instance_AssociatePublic_overridePublic
=== RUN   TestAccEC2Instance_AssociatePublic_overridePrivate
=== PAUSE TestAccEC2Instance_AssociatePublic_overridePrivate
=== RUN   TestAccEC2Instance_LaunchTemplate_basic
=== PAUSE TestAccEC2Instance_LaunchTemplate_basic
=== RUN   TestAccEC2Instance_LaunchTemplate_overrideTemplate
=== PAUSE TestAccEC2Instance_LaunchTemplate_overrideTemplate
=== RUN   TestAccEC2Instance_LaunchTemplate_setSpecificVersion
=== PAUSE TestAccEC2Instance_LaunchTemplate_setSpecificVersion
=== RUN   TestAccEC2Instance_LaunchTemplateModifyTemplate_defaultVersion
=== PAUSE TestAccEC2Instance_LaunchTemplateModifyTemplate_defaultVersion
=== RUN   TestAccEC2Instance_LaunchTemplate_updateTemplateVersion
=== PAUSE TestAccEC2Instance_LaunchTemplate_updateTemplateVersion
=== RUN   TestAccEC2Instance_LaunchTemplate_swapIDAndName
=== PAUSE TestAccEC2Instance_LaunchTemplate_swapIDAndName
=== RUN   TestAccEC2Instance_GetPasswordData_falseToTrue
=== PAUSE TestAccEC2Instance_GetPasswordData_falseToTrue
=== RUN   TestAccEC2Instance_GetPasswordData_trueToFalse
=== PAUSE TestAccEC2Instance_GetPasswordData_trueToFalse
=== RUN   TestAccEC2Instance_CreditSpecificationEmpty_nonBurstable
=== PAUSE TestAccEC2Instance_CreditSpecificationEmpty_nonBurstable
=== RUN   TestAccEC2Instance_CreditSpecificationUnspecifiedToEmpty_nonBurstable
=== PAUSE TestAccEC2Instance_CreditSpecificationUnspecifiedToEmpty_nonBurstable
=== RUN   TestAccEC2Instance_CreditSpecification_unspecifiedDefaultsToStandard
=== PAUSE TestAccEC2Instance_CreditSpecification_unspecifiedDefaultsToStandard
=== RUN   TestAccEC2Instance_CreditSpecification_standardCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecification_standardCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecification_unlimitedCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecification_unlimitedCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t2
=== PAUSE TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t2
=== RUN   TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3
=== PAUSE TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3
=== RUN   TestAccEC2Instance_CreditSpecification_updateCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecification_updateCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecification_isNotAppliedToNonBurstable
=== PAUSE TestAccEC2Instance_CreditSpecification_isNotAppliedToNonBurstable
=== RUN   TestAccEC2Instance_CreditSpecificationT3_unspecifiedDefaultsToUnlimited
=== PAUSE TestAccEC2Instance_CreditSpecificationT3_unspecifiedDefaultsToUnlimited
=== RUN   TestAccEC2Instance_CreditSpecificationT3_standardCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecificationT3_standardCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecificationT3_unlimitedCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecificationT3_unlimitedCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecificationT3_updateCPUCredits
=== PAUSE TestAccEC2Instance_CreditSpecificationT3_updateCPUCredits
=== RUN   TestAccEC2Instance_CreditSpecificationStandardCPUCredits_t2Tot3Taint
=== PAUSE TestAccEC2Instance_CreditSpecificationStandardCPUCredits_t2Tot3Taint
=== RUN   TestAccEC2Instance_CreditSpecificationUnlimitedCPUCredits_t2Tot3Taint
=== PAUSE TestAccEC2Instance_CreditSpecificationUnlimitedCPUCredits_t2Tot3Taint
=== RUN   TestAccEC2Instance_disappears
=== PAUSE TestAccEC2Instance_disappears
=== RUN   TestAccEC2Instance_UserData
=== PAUSE TestAccEC2Instance_UserData
=== RUN   TestAccEC2Instance_UserData_update
=== PAUSE TestAccEC2Instance_UserData_update
=== RUN   TestAccEC2Instance_UserData_stringToEncodedString
=== PAUSE TestAccEC2Instance_UserData_stringToEncodedString
=== RUN   TestAccEC2Instance_UserData_emptyStringToUnspecified
=== PAUSE TestAccEC2Instance_UserData_emptyStringToUnspecified
=== RUN   TestAccEC2Instance_UserData_unspecifiedToEmptyString
=== PAUSE TestAccEC2Instance_UserData_unspecifiedToEmptyString
=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_On
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_On
=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_Off
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_Off
=== RUN   TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== PAUSE TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
=== RUN   TestAccEC2Instance_hibernation
=== PAUSE TestAccEC2Instance_hibernation
=== RUN   TestAccEC2Instance_metadataOptions
=== PAUSE TestAccEC2Instance_metadataOptions
=== RUN   TestAccEC2Instance_enclaveOptions
=== PAUSE TestAccEC2Instance_enclaveOptions
=== RUN   TestAccEC2Instance_CapacityReservation_unspecifiedDefaultsToOpen
=== PAUSE TestAccEC2Instance_CapacityReservation_unspecifiedDefaultsToOpen
=== RUN   TestAccEC2Instance_CapacityReservationPreference_open
=== PAUSE TestAccEC2Instance_CapacityReservationPreference_open
=== RUN   TestAccEC2Instance_CapacityReservationPreference_none
=== PAUSE TestAccEC2Instance_CapacityReservationPreference_none
=== RUN   TestAccEC2Instance_CapacityReservation_targetID
=== PAUSE TestAccEC2Instance_CapacityReservation_targetID
=== RUN   TestAccEC2Instance_CapacityReservation_modifyPreference
=== PAUSE TestAccEC2Instance_CapacityReservation_modifyPreference
=== RUN   TestAccEC2Instance_CapacityReservation_modifyTarget
=== PAUSE TestAccEC2Instance_CapacityReservation_modifyTarget
=== RUN   TestAccEC2Instance_gp3RootBlockDevice
=== PAUSE TestAccEC2Instance_gp3RootBlockDevice
=== CONT  TestAccEC2Instance_inDefaultVPCBySgName
=== CONT  TestAccEC2Instance_primaryNetworkInterface
=== CONT  TestAccEC2Instance_gp3RootBlockDevice
=== CONT  TestAccEC2Instance_CapacityReservation_modifyTarget
--- PASS: TestAccEC2Instance_inDefaultVPCBySgName (93.08s)
=== CONT  TestAccEC2Instance_CapacityReservation_modifyPreference
--- PASS: TestAccEC2Instance_gp3RootBlockDevice (101.04s)
=== CONT  TestAccEC2Instance_CapacityReservation_targetID
=== CONT  TestAccEC2Instance_CapacityReservation_modifyTarget
    instance_test.go:4238: Step 3/3 error: Check failed: Check 3/4 error: aws_instance.test: Attribute 'capacity_reservation_specification.0.capacity_reservation_target.#' expected "1", got "0"
--- FAIL: TestAccEC2Instance_CapacityReservation_modifyTarget (146.86s)
=== CONT  TestAccEC2Instance_CapacityReservationPreference_none
--- PASS: TestAccEC2Instance_primaryNetworkInterface (196.68s)
=== CONT  TestAccEC2Instance_CapacityReservationPreference_open
--- PASS: TestAccEC2Instance_CapacityReservation_targetID (98.71s)
=== CONT  TestAccEC2Instance_CapacityReservation_unspecifiedDefaultsToOpen
=== CONT  TestAccEC2Instance_CapacityReservation_modifyPreference
    instance_test.go:4200: Step 3/3 error: Check failed: Check 4/4 error: aws_instance.test: Attribute 'capacity_reservation_specification.0.capacity_reservation_preference' expected "none", got "open"
--- FAIL: TestAccEC2Instance_CapacityReservation_modifyPreference (125.52s)
=== CONT  TestAccEC2Instance_enclaveOptions
--- PASS: TestAccEC2Instance_CapacityReservationPreference_none (88.01s)
=== CONT  TestAccEC2Instance_metadataOptions
--- PASS: TestAccEC2Instance_CapacityReservationPreference_open (96.01s)
=== CONT  TestAccEC2Instance_hibernation
--- PASS: TestAccEC2Instance_CapacityReservation_unspecifiedDefaultsToOpen (112.64s)
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64
--- PASS: TestAccEC2Instance_metadataOptions (132.50s)
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_Off
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64 (177.76s)
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On_Base64
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off (166.12s)
--- PASS: TestAccEC2Instance_enclaveOptions (399.56s)
=== CONT  TestAccEC2Instance_EBSRootDevice_multipleDynamicEBSBlockDevices
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On_Base64 (192.94s)
=== CONT  TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifyDeleteOnTermination
--- PASS: TestAccEC2Instance_hibernation (403.13s)
=== CONT  TestAccEC2Instance_UserDataReplaceOnChange_On
--- PASS: TestAccEC2Instance_networkInstanceRemovingAllSecurityGroups (132.76s)
=== CONT  TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifySize
--- PASS: TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifyDeleteOnTermination (107.35s)
=== CONT  TestAccEC2Instance_EBSRootDevice_modifyAll
--- PASS: TestAccEC2Instance_EBSRootDevice_multipleDynamicEBSBlockDevices (197.40s)
=== CONT  TestAccEC2Instance_EBSRootDevice_modifyDeleteOnTermination
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On (185.27s)
=== CONT  TestAccEC2Instance_EBSRootDeviceModifyThroughput_gp3
--- PASS: TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifySize (145.85s)
=== CONT  TestAccEC2Instance_UserData_unspecifiedToEmptyString
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyDeleteOnTermination (102.15s)
=== CONT  TestAccEC2Instance_EBSRootDeviceModifyIOPS_io2
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyAll (153.84s)
=== CONT  TestAccEC2Instance_UserData_emptyStringToUnspecified
--- PASS: TestAccEC2Instance_UserData_emptyStringToUnspecified (109.10s)
=== CONT  TestAccEC2Instance_EBSRootDeviceModifyIOPS_io1
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyThroughput_gp3 (172.49s)
=== CONT  TestAccEC2Instance_UserData_stringToEncodedString
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyIOPS_io2 (142.93s)
=== CONT  TestAccEC2Instance_EBSRootDevice_modifyType
--- PASS: TestAccEC2Instance_UserData_unspecifiedToEmptyString (105.90s)
=== CONT  TestAccEC2Instance_UserData_update
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyType (127.72s)
=== CONT  TestAccEC2Instance_EBSRootDevice_modifySize
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyIOPS_io1 (141.80s)
=== CONT  TestAccEC2Instance_EBSRootDevice_basic
--- PASS: TestAccEC2Instance_UserData_stringToEncodedString (201.28s)
=== CONT  TestAccEC2Instance_changeInstanceTypeAndUserDataBase64
--- PASS: TestAccEC2Instance_UserData_update (194.78s)
=== CONT  TestAccEC2Instance_UserData
--- PASS: TestAccEC2Instance_EBSRootDevice_basic (108.19s)
=== CONT  TestAccEC2Instance_changeInstanceTypeAndUserData
--- PASS: TestAccEC2Instance_EBSRootDevice_modifySize (131.33s)
=== CONT  TestAccEC2Instance_disappears
--- PASS: TestAccEC2Instance_UserData (110.26s)
=== CONT  TestAccEC2Instance_LaunchTemplateModifyTemplate_defaultVersion
--- PASS: TestAccEC2Instance_changeInstanceTypeAndUserDataBase64 (235.12s)
=== CONT  TestAccEC2Instance_changeInstanceType
--- PASS: TestAccEC2Instance_LaunchTemplateModifyTemplate_defaultVersion (121.77s)
=== CONT  TestAccEC2Instance_LaunchTemplate_setSpecificVersion
--- PASS: TestAccEC2Instance_disappears (287.07s)
=== CONT  TestAccEC2Instance_forceNewAndTagsDrift
--- PASS: TestAccEC2Instance_LaunchTemplate_setSpecificVersion (114.47s)
=== CONT  TestAccEC2Instance_LaunchTemplate_overrideTemplate
--- PASS: TestAccEC2Instance_changeInstanceTypeAndUserData (328.67s)
=== CONT  TestAccEC2Instance_rootBlockDeviceMismatch
--- PASS: TestAccEC2Instance_changeInstanceType (156.64s)
=== CONT  TestAccEC2Instance_LaunchTemplate_basic
--- PASS: TestAccEC2Instance_forceNewAndTagsDrift (162.57s)
=== CONT  TestAccEC2Instance_keyPairCheck
--- PASS: TestAccEC2Instance_rootBlockDeviceMismatch (187.10s)
=== CONT  TestAccEC2Instance_AssociatePublic_overridePrivate
--- PASS: TestAccEC2Instance_AssociatePublic_overridePrivate (102.80s)
=== CONT  TestAccEC2Instance_Empty_privateIP
--- PASS: TestAccEC2Instance_LaunchTemplate_overrideTemplate (293.10s)
=== CONT  TestAccEC2Instance_AssociatePublic_overridePublic
--- PASS: TestAccEC2Instance_LaunchTemplate_basic (302.80s)
=== CONT  TestAccEC2Instance_AssociatePublic_explicitPrivate
--- PASS: TestAccEC2Instance_keyPairCheck (217.39s)
=== CONT  TestAccEC2Instance_AssociatePublic_explicitPublic
--- PASS: TestAccEC2Instance_Empty_privateIP (91.31s)
=== CONT  TestAccEC2Instance_AssociatePublic_defaultPublic
--- PASS: TestAccEC2Instance_AssociatePublic_overridePublic (100.54s)
=== CONT  TestAccEC2Instance_AssociatePublic_defaultPrivate
--- PASS: TestAccEC2Instance_AssociatePublic_explicitPrivate (101.40s)
=== CONT  TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPsUpdate
--- PASS: TestAccEC2Instance_AssociatePublic_explicitPublic (99.27s)
=== CONT  TestAccEC2Instance_associatePublicIPAndPrivateIP
--- PASS: TestAccEC2Instance_AssociatePublic_defaultPublic (95.66s)
=== CONT  TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPs
--- PASS: TestAccEC2Instance_AssociatePublic_defaultPrivate (115.63s)
=== CONT  TestAccEC2Instance_privateIP
--- PASS: TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPs (72.36s)
=== CONT  TestAccEC2Instance_withIAMInstanceProfilePath
--- PASS: TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPsUpdate (166.43s)
=== CONT  TestAccEC2Instance_LaunchTemplate_updateTemplateVersion
--- PASS: TestAccEC2Instance_privateIP (92.72s)
=== CONT  TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPsUpdate
--- PASS: TestAccEC2Instance_associatePublicIPAndPrivateIP (202.59s)
=== CONT  TestAccEC2Instance_CreditSpecificationUnlimitedCPUCredits_t2Tot3Taint
--- PASS: TestAccEC2Instance_withIAMInstanceProfilePath (111.19s)
=== CONT  TestAccEC2Instance_CreditSpecificationStandardCPUCredits_t2Tot3Taint
--- PASS: TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPsUpdate (118.07s)
=== CONT  TestAccEC2Instance_CreditSpecificationT3_updateCPUCredits
--- PASS: TestAccEC2Instance_CreditSpecificationUnlimitedCPUCredits_t2Tot3Taint (175.23s)
=== CONT  TestAccEC2Instance_withIAMInstanceProfile
--- PASS: TestAccEC2Instance_CreditSpecificationT3_updateCPUCredits (149.79s)
=== CONT  TestAccEC2Instance_CreditSpecificationT3_unlimitedCPUCredits
--- PASS: TestAccEC2Instance_withIAMInstanceProfile (119.79s)
=== CONT  TestAccEC2Instance_CreditSpecificationT3_standardCPUCredits
--- PASS: TestAccEC2Instance_LaunchTemplate_updateTemplateVersion (399.43s)
=== CONT  TestAccEC2Instance_CreditSpecificationT3_unspecifiedDefaultsToUnlimited
--- PASS: TestAccEC2Instance_CreditSpecificationT3_unlimitedCPUCredits (131.34s)
=== CONT  TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPs
--- PASS: TestAccEC2Instance_CreditSpecificationT3_standardCPUCredits (107.41s)
=== CONT  TestAccEC2Instance_instanceProfileChange
--- PASS: TestAccEC2Instance_CreditSpecificationStandardCPUCredits_t2Tot3Taint (399.78s)
=== CONT  TestAccEC2Instance_CreditSpecification_isNotAppliedToNonBurstable
--- PASS: TestAccEC2Instance_CreditSpecificationT3_unspecifiedDefaultsToUnlimited (82.48s)
=== CONT  TestAccEC2Instance_BlockDeviceTags_ebsAndRoot
--- PASS: TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPs (113.20s)
=== CONT  TestAccEC2Instance_CreditSpecification_updateCPUCredits
--- PASS: TestAccEC2Instance_CreditSpecification_isNotAppliedToNonBurstable (112.67s)
=== CONT  TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3
--- PASS: TestAccEC2Instance_BlockDeviceTags_ebsAndRoot (137.55s)
=== CONT  TestAccEC2Instance_BlockDeviceTags_withAttachedVolume
--- PASS: TestAccEC2Instance_CreditSpecification_updateCPUCredits (138.96s)
=== CONT  TestAccEC2Instance_NewNetworkInterface_publicIPAndSecondaryPrivateIPs
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3 (92.63s)
=== CONT  TestAccEC2Instance_BlockDeviceTags_volumeTags
--- PASS: TestAccEC2Instance_instanceProfileChange (241.47s)
=== CONT  TestAccEC2Instance_addSecurityGroupNetworkInterface
--- PASS: TestAccEC2Instance_BlockDeviceTags_withAttachedVolume (164.07s)
=== CONT  TestAccEC2Instance_addSecondaryInterface
--- PASS: TestAccEC2Instance_NewNetworkInterface_publicIPAndSecondaryPrivateIPs (155.52s)
=== CONT  TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t2
--- PASS: TestAccEC2Instance_BlockDeviceTags_volumeTags (175.72s)
=== CONT  TestAccEC2Instance_primaryNetworkInterfaceSourceDestCheck
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t2 (84.55s)
=== CONT  TestAccEC2Instance_CreditSpecification_unlimitedCPUCredits
--- PASS: TestAccEC2Instance_primaryNetworkInterfaceSourceDestCheck (92.63s)
=== CONT  TestAccEC2Instance_CreditSpecification_standardCPUCredits
--- PASS: TestAccEC2Instance_CreditSpecification_unlimitedCPUCredits (109.45s)
=== CONT  TestAccEC2Instance_tags
--- PASS: TestAccEC2Instance_CreditSpecification_standardCPUCredits (122.35s)
=== CONT  TestAccEC2Instance_GetPasswordData_trueToFalse
--- PASS: TestAccEC2Instance_addSecurityGroupNetworkInterface (371.58s)
=== CONT  TestAccEC2Instance_GetPasswordData_falseToTrue
--- PASS: TestAccEC2Instance_addSecondaryInterface (338.56s)
=== CONT  TestAccEC2Instance_networkInstanceVPCSecurityGroupIDs
--- PASS: TestAccEC2Instance_tags (121.95s)
=== CONT  TestAccEC2Instance_LaunchTemplate_swapIDAndName
--- PASS: TestAccEC2Instance_networkInstanceVPCSecurityGroupIDs (104.28s)
=== CONT  TestAccEC2Instance_EBSBlockDevice_RootBlockDevice_removed
--- PASS: TestAccEC2Instance_LaunchTemplate_swapIDAndName (117.86s)
=== CONT  TestAccEC2Instance_gp2IopsDevice
--- PASS: TestAccEC2Instance_GetPasswordData_falseToTrue (205.76s)
=== CONT  TestAccEC2Instance_atLeastOneOtherEBSVolume
--- PASS: TestAccEC2Instance_GetPasswordData_trueToFalse (259.57s)
=== CONT  TestAccEC2Instance_userDataBase64_update
--- PASS: TestAccEC2Instance_gp2IopsDevice (111.14s)
=== CONT  TestAccEC2Instance_EBSBlockDevice_invalidThroughputForVolumeType
--- PASS: TestAccEC2Instance_EBSBlockDevice_invalidThroughputForVolumeType (10.11s)
=== CONT  TestAccEC2Instance_userDataBase64_updateWithZipFile
--- PASS: TestAccEC2Instance_atLeastOneOtherEBSVolume (166.97s)
=== CONT  TestAccEC2Instance_EBSBlockDevice_invalidIopsForVolumeType
--- PASS: TestAccEC2Instance_EBSBlockDevice_invalidIopsForVolumeType (9.57s)
=== CONT  TestAccEC2Instance_userDataBase64_updateWithBashFile
--- PASS: TestAccEC2Instance_EBSBlockDevice_RootBlockDevice_removed (254.69s)
=== CONT  TestAccEC2Instance_EBSBlockDevice_kmsKeyARN
--- PASS: TestAccEC2Instance_userDataBase64_update (200.45s)
=== CONT  TestAccEC2Instance_userDataBase64
--- PASS: TestAccEC2Instance_userDataBase64_updateWithZipFile (207.83s)
=== CONT  TestAccEC2Instance_inEC2Classic
    ec2_classic.go:56: this test can only run in EC2-Classic, platforms available in us-east-1: ["VPC"]
--- SKIP: TestAccEC2Instance_inEC2Classic (0.56s)
=== CONT  TestAccEC2Instance_basic
--- PASS: TestAccEC2Instance_EBSBlockDevice_kmsKeyARN (107.77s)
=== CONT  TestAccEC2Instance_outpost
    acctest.go:1293: skipping since no Outposts found
--- SKIP: TestAccEC2Instance_outpost (0.71s)
=== CONT  TestAccEC2Instance_RootBlockDevice_kmsKeyARN
--- PASS: TestAccEC2Instance_userDataBase64 (92.40s)
=== CONT  TestAccEC2Instance_networkInstanceSecurityGroups
--- PASS: TestAccEC2Instance_basic (68.78s)
=== CONT  TestAccEC2Instance_inDefaultVPCBySgID
--- PASS: TestAccEC2Instance_userDataBase64_updateWithBashFile (207.20s)
=== CONT  TestAccEC2Instance_IPv6_supportAddressCountWithIPv4
--- PASS: TestAccEC2Instance_RootBlockDevice_kmsKeyARN (126.13s)
=== CONT  TestAccEC2Instance_ipv6AddressCountAndSingleAddressCausesError
--- PASS: TestAccEC2Instance_networkInstanceSecurityGroups (216.57s)
=== CONT  TestAccEC2Instance_IPv6_supportAddressCount
--- PASS: TestAccEC2Instance_inDefaultVPCBySgID (80.53s)
=== CONT  TestAccEC2Instance_CreditSpecificationEmpty_nonBurstable
--- PASS: TestAccEC2Instance_ipv6AddressCountAndSingleAddressCausesError (24.15s)
=== CONT  TestAccEC2Instance_CreditSpecification_unspecifiedDefaultsToStandard
--- PASS: TestAccEC2Instance_IPv6_supportAddressCountWithIPv4 (101.63s)
=== CONT  TestAccEC2Instance_CreditSpecificationUnspecifiedToEmpty_nonBurstable
--- PASS: TestAccEC2Instance_CreditSpecificationEmpty_nonBurstable (75.86s)
=== CONT  TestAccEC2Instance_placementPartitionNumber
--- PASS: TestAccEC2Instance_IPv6_supportAddressCount (103.51s)
=== CONT  TestAccEC2Instance_placementGroup
--- PASS: TestAccEC2Instance_CreditSpecification_unspecifiedDefaultsToStandard (81.60s)
=== CONT  TestAccEC2Instance_dedicatedInstance
--- PASS: TestAccEC2Instance_CreditSpecificationUnspecifiedToEmpty_nonBurstable (114.57s)
=== CONT  TestAccEC2Instance_rootInstanceStore
--- PASS: TestAccEC2Instance_placementPartitionNumber (95.37s)
=== CONT  TestAccEC2Instance_noAMIEphemeralDevices
--- PASS: TestAccEC2Instance_placementGroup (83.96s)
=== CONT  TestAccEC2Instance_blockDevices
--- PASS: TestAccEC2Instance_dedicatedInstance (100.88s)
=== CONT  TestAccEC2Instance_disableAPITermination
--- PASS: TestAccEC2Instance_noAMIEphemeralDevices (67.54s)
=== CONT  TestAccEC2Instance_sourceDestCheck
--- PASS: TestAccEC2Instance_rootInstanceStore (94.10s)
=== CONT  TestAccEC2Instance_gp2WithIopsValue
--- PASS: TestAccEC2Instance_blockDevices (76.71s)
--- PASS: TestAccEC2Instance_gp2WithIopsValue (8.07s)
--- PASS: TestAccEC2Instance_disableAPITermination (121.42s)
--- PASS: TestAccEC2Instance_sourceDestCheck (179.79s)

errors unrelated to these changes

@anGie44 anGie44 merged commit 928c293 into hashicorp:main Mar 21, 2022
@github-actions
Copy link

This functionality has been released in v4.7.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!

@github-actions
Copy link

github-actions bot commented May 5, 2022

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.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. enhancement Requests to existing resources that expand the functionality or scope. service/ec2 Issues and PRs that pertain to the ec2 service. size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

aws_instance change to user_data no longer results in a destroy and re-create
2 participants