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

Migrate ec2 resources to AWS SDK V2 #37568

Open
wants to merge 86 commits into
base: main
Choose a base branch
from

Conversation

DanielRieske
Copy link
Contributor

@DanielRieske DanielRieske commented May 16, 2024

Description

This PR migrates the EC2 resources, the PR is scoped to the resources listed in: #36147

Alongside of the migration the acceptance tests mentioned in #35747 will be reviewed.

The following tests are fixed mentioned in the PR above:

  • TestAccEC2AMIDataSource_localNameFilter
  • TestAccEC2AMIDataSource_natInstance -> migrated to TestAccEC2AMIDataSource_linuxInstance to test Amazon Linux AMIs
  • TestAccEC2AMIDataSource_windowsInstance
  • TestAccEC2AMIIDsDataSource_basic
  • TestAccEC2AMIIDsDataSource_sorted
  • TestAccEC2AMILaunchPermission_group
  • TestAccEC2Fleet_TargetCapacitySpecification_targetCapacityUnitType
  • TestAccEC2Fleet_TargetCapacitySpecification_totalTargetCapacity
  • TestAccEC2LaunchTemplate_instanceRequirements_acceleratorCount
  • TestAccEC2LaunchTemplate_instanceRequirements_acceleratorManufacturers
  • TestAccEC2LaunchTemplate_instanceRequirements_acceleratorNames
  • TestAccEC2LaunchTemplate_instanceRequirements_acceleratorTotalMemoryMiB
  • TestAccEC2LaunchTemplate_instanceRequirements_acceleratorTypes
  • TestAccEC2LaunchTemplate_instanceRequirements_allowedInstanceTypes
  • TestAccEC2LaunchTemplate_instanceRequirements_bareMetal
  • TestAccEC2LaunchTemplate_instanceRequirements_baselineEBSBandwidthMbps
  • TestAccEC2LaunchTemplate_instanceRequirements_burstablePerformance
  • TestAccEC2LaunchTemplate_instanceRequirements_cpuManufacturers
  • TestAccEC2LaunchTemplate_instanceRequirements_excludedInstanceTypes
  • TestAccEC2LaunchTemplate_instanceRequirements_instanceGenerations
  • TestAccEC2LaunchTemplate_instanceRequirements_localStorageTypes
  • TestAccEC2LaunchTemplate_instanceRequirements_localStorage
  • TestAccEC2LaunchTemplate_instanceRequirements_memoryGiBPerVCPU
  • TestAccEC2LaunchTemplate_instanceRequirements_memoryMiBAndVCPUCount
  • TestAccEC2LaunchTemplate_instanceRequirements_networkBandwidthGbps
  • TestAccEC2LaunchTemplate_instanceRequirements_networkInterfaceCount
  • TestAccEC2LaunchTemplate_instanceRequirements_onDemandMaxPricePercentageOverLowestPrice
  • TestAccEC2LaunchTemplate_instanceRequirements_requireHibernateSupport
  • TestAccEC2LaunchTemplate_instanceRequirements_spotMaxPricePercentageOverLowestPrice
  • TestAccEC2LaunchTemplate_instanceRequirements_totalLocalStorageGB
  • TestAccEC2SpotDatafeedSubscription_serial
  • TestAccEC2SpotFleetRequest_diversifiedAllocation
  • TestAccEC2SpotInstanceRequest_interruptHibernate
  • TestAccEC2SpotInstanceRequest_interruptUpdate
  • TestAccEC2SpotInstanceRequest_withBlockDuration - requires: [Enhancement]: deprecate block_duration_minutes from aws_spot_instance_request resource #37613

TestAccEC2SpotInstanceRequest_vpc - is more difficult to fix and requires it's own PR, it fails in the tests below but that has nothing to do with the SDKv2 migration. It fails because it cannot find an attached network_interface and a subnet_id.

This is because the underlying schema that the resource uses is from ec2_instance where you cannot set a network_interface and a subnet_id at the same time. This behaviour is consistent for this resource however several arguments within the network_interface differ and cannot be set here. Even if you override part of that schema the DescribeSpotInstance request does not return both values, therefore you need to add an additional look-up on the instance itself.
But because the schema is heavily tied to ec2_instance this goes far outside of the scope of this PR.

Relations

Closes #36147

Relates #35747
Relates #37589

References

Output from Acceptance Testing

% make testacc TESTARGS='-run=TestAccEC2AMI_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMI_ -timeout 360m
--- PASS: TestAccEC2AMI_disappears (69.44s)
--- PASS: TestAccEC2AMI_basic (72.49s)
--- PASS: TestAccEC2AMI_tpmSupport (72.71s)
--- PASS: TestAccEC2AMI_tags (100.47s)
--- PASS: TestAccEC2AMI_gp3BlockDevice (70.44s)
--- PASS: TestAccEC2AMI_imdsSupport (70.13s)
--- PASS: TestAccEC2AMI_description (92.63s)
--- PASS: TestAccEC2AMI_boot (69.80s)
    ec2_ami_test.go:409: skipping since no Outposts found
--- SKIP: TestAccEC2AMI_outpost (0.59s)
--- PASS: TestAccEC2AMI_ephemeralBlockDevices (69.64s)
--- PASS: TestAccEC2AMI_deprecateAt (117.98s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	262.744s
% make testacc TESTARGS='-run=TestAccEC2AMICopy_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMICopy_ -timeout 360m
--- PASS: TestAccEC2AMICopy_basic (140.03s)
--- PASS: TestAccEC2AMICopy_tags (167.07s)
--- PASS: TestAccEC2AMICopy_enaSupport (201.31s)
--- PASS: TestAccEC2AMICopy_description (220.60s)
    ec2_ami_copy_test.go:110: skipping since no Outposts found
--- SKIP: TestAccEC2AMICopy_destinationOutpost (1.24s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        224.889s
% make testacc TESTARGS='-run=TestAccEC2AMIDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMIDataSource_ -timeout 360m
--- PASS: TestAccEC2AMIDataSource_localNameFilter (14.92s)
--- PASS: TestAccEC2AMIDataSource_instanceStore (14.99s)
--- PASS: TestAccEC2AMIDataSource_linuxInstance (15.01s)
--- PASS: TestAccEC2AMIDataSource_windowsInstance (14.48s)
--- PASS: TestAccEC2AMIDataSource_gp3BlockDevice (67.09s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        71.353s
% make testacc TESTARGS='-run=TestAccEC2AMIFromInstance_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMIFromInstance_ -timeout 360m
--- PASS: TestAccEC2AMIFromInstance_basic (280.42s)
--- PASS: TestAccEC2AMIFromInstance_tags (295.63s)
--- PASS: TestAccEC2AMIFromInstance_disappears (404.02s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        408.257s
% make testacc TESTARGS='-run=TestAccEC2AMIIDsDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMIIDsDataSource_ -timeout 360m
--- PASS: TestAccEC2AMIIDsDataSource_basic (13.45s)
--- PASS: TestAccEC2AMIIDsDataSource_includeDeprecated (15.06s)
--- PASS: TestAccEC2AMIIDsDataSource_sorted (25.51s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        29.944s
% make testacc TESTARGS='-run=TestAccEC2AMILaunchPermission_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AMILaunchPermission_ -timeout 360m
    ec2_ami_launch_permission_test.go:172: skipping tests; this AWS account must not be an existing member of an AWS Organization
--- SKIP: TestAccEC2AMILaunchPermission_organizationalUnitARN (1.25s)
--- PASS: TestAccEC2AMILaunchPermission_disappears (91.18s)
--- PASS: TestAccEC2AMILaunchPermission_Disappears_ami (92.62s)
--- PASS: TestAccEC2AMILaunchPermission_basic (156.38s)
--- PASS: TestAccEC2AMILaunchPermission_organizationARN (154.32s)
--- PASS: TestAccEC2AMILaunchPermission_group (403.09s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        407.362s
% make testacc TESTARGS='-run=TestAccEC2AvailabilityZoneDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AvailabilityZoneDataSource_ -timeout 360m
    ec2_availability_zone_data_source_test.go:224: skipping since no Local Zones are available
--- SKIP: TestAccEC2AvailabilityZoneDataSource_localZone (1.40s)
--- PASS: TestAccEC2AvailabilityZoneDataSource_name (15.03s)
--- PASS: TestAccEC2AvailabilityZoneDataSource_allAvailabilityZones (15.03s)
--- PASS: TestAccEC2AvailabilityZoneDataSource_filter (13.77s)
--- PASS: TestAccEC2AvailabilityZoneDataSource_zoneID (15.17s)
    wavelength_carrier_gateway_test.go:197: skipping since no Wavelength Zones are available
--- SKIP: TestAccEC2AvailabilityZoneDataSource_wavelengthZone (0.68s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        19.951s
% make testacc TESTARGS='-run=TestAccEC2AvailabilityZoneGroup_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AvailabilityZoneGroup_ -timeout 360m
--- PASS: TestAccEC2AvailabilityZoneGroup_optInStatus (84.52s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        88.770s
% make testacc TESTARGS='-run=TestAccEC2AvailabilityZones' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2AvailabilityZones -timeout 360m
--- PASS: TestAccEC2AvailabilityZonesDataSource_filter (14.71s)
--- PASS: TestAccEC2AvailabilityZonesDataSource_stateFilter (14.75s)
--- PASS: TestAccEC2AvailabilityZonesDataSource_basic (14.76s)
--- PASS: TestAccEC2AvailabilityZonesDataSource_excludeNames (14.84s)
--- PASS: TestAccEC2AvailabilityZonesDataSource_allAvailabilityZones (11.93s)
--- PASS: TestAccEC2AvailabilityZonesDataSource_excludeZoneIDs (12.43s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        31.486s
% make testacc TESTARGS='-run=TestAccEC2CapacityReservation_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2CapacityReservation_ -timeout 360m
--- PASS: TestAccEC2CapacityReservation_basic (24.37s)
--- PASS: TestAccEC2CapacityReservation_endDate (37.67s)
--- PASS: TestAccEC2CapacityReservation_instanceCount (38.64s)
--- PASS: TestAccEC2CapacityReservation_tags (52.11s)
--- PASS: TestAccEC2CapacityReservation_ephemeralStorage (21.72s)
--- PASS: TestAccEC2CapacityReservation_instanceType (35.65s)
--- PASS: TestAccEC2CapacityReservation_ebsOptimized (21.72s)
--- PASS: TestAccEC2CapacityReservation_tenancy (21.58s)
--- PASS: TestAccEC2CapacityReservation_disappears (19.24s)
--- PASS: TestAccEC2CapacityReservation_instanceMatchCriteria (21.61s)
--- PASS: TestAccEC2CapacityReservation_endDateType (46.34s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	110.593s
% make testacc TESTARGS='-run=TestAccEC2Fleet_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2Fleet_ -timeout 360m
--- PASS: TestAccEC2Fleet_OnDemandOptions_CapacityReservationOptions (23.19s)
--- PASS: TestAccEC2Fleet_SpotOptions_capacityRebalance (44.84s)
--- PASS: TestAccEC2Fleet_basic (44.97s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceType (96.74s)
--- PASS: TestAccEC2Fleet_OnDemandOptions_allocationStrategy (73.33s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_subnetID (102.36s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverrideWeightedCapacity_multiple (93.71s)
--- PASS: TestAccEC2Fleet_validFrom (21.07s)
--- PASS: TestAccEC2Fleet_validUntil (37.72s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_weightedCapacity (92.61s)
--- PASS: TestAccEC2Fleet_type_instant (27.59s)
--- PASS: TestAccEC2Fleet_type (40.69s)
--- PASS: TestAccEC2Fleet_terminateInstancesWithExpiration (72.82s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_priority (92.36s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverridePriority_multiple (92.33s)
--- PASS: TestAccEC2Fleet_OnDemandOptions_SingleInstanceType (21.15s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_maxPrice (93.12s)
--- PASS: TestAccEC2Fleet_SpotOptions_allocationStrategy (73.10s)
--- PASS: TestAccEC2Fleet_OnDemandOptions_MinTargetCapacity (21.18s)
--- PASS: TestAccEC2Fleet_replaceUnhealthyInstances (73.51s)
--- PASS: TestAccEC2Fleet_OnDemandOptions_SingleAvailabilityZone (21.14s)
--- PASS: TestAccEC2Fleet_TargetCapacitySpecification_targetCapacityUnitType (409.22s)
--- PASS: TestAccEC2Fleet_TargetCapacitySpecification_defaultTargetCapacityType (69.80s)
--- PASS: TestAccEC2Fleet_TargetCapacitySpecificationDefaultTargetCapacityType_spot (41.07s)
--- PASS: TestAccEC2Fleet_TargetCapacitySpecificationDefaultTargetCapacityType_onDemand (41.91s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_bareMetal (158.08s)
--- PASS: TestAccEC2Fleet_templateMultipleNetworkInterfaces (538.64s)
--- PASS: TestAccEC2Fleet_SpotOptions_instanceInterruptionBehavior (73.16s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_spotMaxPricePercentageOverLowestPrice (40.95s)
--- PASS: TestAccEC2Fleet_SpotOptions_instancePoolsToUseCount (72.54s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_localStorageTypes (99.56s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_onDemandMaxPricePercentageOverLowestPrice (40.79s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_requireHibernateSupport (100.12s)
--- PASS: TestAccEC2Fleet_TargetCapacitySpecification_totalTargetCapacity (461.07s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_networkInterfaceCount (160.04s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_networkBandwidthGbps (159.66s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_memoryGiBPerVCPU (159.50s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_excludedInstanceTypes (100.26s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_instanceGenerations (100.69s)
--- PASS: TestAccEC2Fleet_OnDemandOptions_MaxTotalPrice (36.81s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_localStorage (159.42s)
--- PASS: TestAccEC2Fleet_capacityRebalanceInvalidType (3.15s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_cpuManufacturers (99.12s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_burstablePerformance (157.56s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_memoryMiBAndVCPUCount (99.25s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_allowedInstanceTypes (99.83s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_baselineEBSBandwidthMbps (158.20s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_acceleratorTypes (99.54s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_acceleratorNames (99.25s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_acceleratorManufacturers (99.66s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_acceleratorTotalMemoryMiB (157.91s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_acceleratorCount (158.37s)
--- PASS: TestAccEC2Fleet_LaunchTemplateLaunchTemplateSpecification_launchTemplateID (93.97s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_availabilityZone (93.23s)
--- PASS: TestAccEC2Fleet_LaunchTemplateLaunchTemplateSpecification_version (94.82s)
--- PASS: TestAccEC2Fleet_excessCapacityTerminationPolicy (30.31s)
--- PASS: TestAccEC2Fleet_disappears (38.72s)
--- PASS: TestAccEC2Fleet_tags (72.97s)
--- PASS: TestAccEC2Fleet_LaunchTemplateLaunchTemplateSpecification_launchTemplateName (94.86s)
--- PASS: TestAccEC2Fleet_LaunchTemplateOverride_instanceRequirements_totalLocalStorageGB (159.57s)
PASS
ok   	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	1641.273s
% make testacc TESTARGS='-run=TestAccEC2Host_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2Host_ -timeout 360m
--- PASS: TestAccEC2Host_instanceFamily (30.90s)
    ec2_host_test.go:205: skipping since no Outposts found
--- SKIP: TestAccEC2Host_outpost (0.51s)
    ec2_host_test.go:181: skipping since no Outposts found
--- SKIP: TestAccEC2Host_outpostAssetId (0.20s)
--- PASS: TestAccEC2Host_tags (159.09s)
=== NAME  TestAccEC2Host_basic
    ec2_host_test.go:28: Step 1/2 error: Error running apply: exit status 1
        
        Error: allocating EC2 Host: operation error EC2: AllocateHosts, exceeded maximum number of attempts, 25, https response error StatusCode: 500, RequestID: 90147c03-a545-44a3-b4d5-8353da9adf49, api error InsufficientHostCapacity: Insufficient capacity.
        
          with aws_ec2_host.test,
          on terraform_plugin_test.tf line 21, in resource "aws_ec2_host" "test":
          21: resource "aws_ec2_host" "test" {
        
--- FAIL: TestAccEC2Host_basic (3109.71s)
=== NAME  TestAccEC2Host_disappears
    ec2_host_test.go:62: Step 1/1 error: Error running apply: exit status 1
        
        Error: allocating EC2 Host: operation error EC2: AllocateHosts, exceeded maximum number of attempts, 25, https response error StatusCode: 500, RequestID: 36604fd1-5936-4a15-b3cd-43087fa38922, api error InsufficientHostCapacity: Insufficient capacity.
        
          with aws_ec2_host.test,
          on terraform_plugin_test.tf line 21, in resource "aws_ec2_host" "test":
          21: resource "aws_ec2_host" "test" {
        
--- FAIL: TestAccEC2Host_disappears (3116.23s)
FAIL
FAIL	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	3120.507s
FAIL
% make testacc TESTARGS='-run=TestAccEC2HostDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2HostDataSource_ -timeout 360m
--- PASS: TestAccEC2HostDataSource_basic (19.39s)
--- PASS: TestAccEC2HostDataSource_filter (19.44s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	23.748s
Still working on: `TestFetchRootDevice`

% make testacc TESTARGS='-run=TestAccEC2Instance_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2Instance_ -timeout 360m
--- PASS: TestAccEC2Instance_primaryNetworkInterfaceSourceDestCheck (100.32s)
--- PASS: TestAccEC2Instance_networkInstanceVPCSecurityGroupIDs (136.22s)
--- PASS: TestAccEC2Instance_basic (154.19s)
--- PASS: TestAccEC2Instance_CreditSpecification_unspecifiedDefaultsToStandard (187.28s)
--- PASS: TestAccEC2Instance_gp3RootBlockDevice (130.44s)
--- PASS: TestAccEC2Instance_EBSRootDevice_multipleDynamicEBSBlockDevices (132.93s)
--- PASS: TestAccEC2Instance_primaryNetworkInterface (232.58s)
--- PASS: TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifyDeleteOnTermination (125.21s)
--- PASS: TestAccEC2Instance_changeInstanceTypeReplace (374.48s)
--- PASS: TestAccEC2Instance_EBSRootDeviceMultipleBlockDevices_modifySize (134.77s)
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyAll (128.41s)
    ec2_instance_test.go:2179: Step 1/2 error: Error running apply: exit status 1
        
        Error: collecting instance settings: empty result
        
          with aws_instance.test,
          on terraform_plugin_test.tf line 41, in resource "aws_instance" "test":
          41: resource "aws_instance" "test" {
        
--- FAIL: TestAccEC2Instance_rootBlockDeviceMismatch (15.04s)
--- PASS: TestAccEC2Instance_keyPairCheck (95.04s)
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyDeleteOnTermination (180.60s)
--- PASS: TestAccEC2Instance_forceNewAndTagsDrift (155.68s)
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyThroughput_gp3 (148.27s)
--- PASS: TestAccEC2Instance_changeInstanceType (162.57s)
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyIOPS_io1 (148.82s)
--- PASS: TestAccEC2Instance_EBSRootDeviceModifyIOPS_io2 (201.05s)
--- PASS: TestAccEC2Instance_EBSRootDevice_modifyType (149.01s)
--- PASS: TestAccEC2Instance_EBSRootDevice_basic (96.84s)
--- PASS: TestAccEC2Instance_EBSRootDevice_modifySize (169.03s)
--- PASS: TestAccEC2Instance_rootInstanceStore (130.66s)
--- PASS: TestAccEC2Instance_changeInstanceTypeAndUserData (276.08s)
--- PASS: TestAccEC2Instance_changeInstanceTypeAndUserDataBase64 (292.67s)
--- PASS: TestAccEC2Instance_networkInstanceRemovingAllSecurityGroups (116.04s)
--- PASS: TestAccEC2Instance_PrivateDNSNameOptions_configured (236.813s)
--- PASS: TestAccEC2Instance_networkInstanceSecurityGroups (136.28s)
--- PASS: TestAccEC2Instance_ipv6AddressCountAndSingleAddressCausesError (0.98s)
--- PASS: TestAccEC2Instance_PrivateDNSNameOptions_computed (160.33s)
--- PASS: TestAccEC2Instance_IPv6AddressCount (180.46s)
--- PASS: TestAccEC2Instance_placementPartitionNumber (76.29s)
    ec2_instance_test.go:1183: skipping since no Outposts found
--- SKIP: TestAccEC2Instance_outpost (0.61s)
--- PASS: TestAccEC2Instance_IPv6_supportAddressCount (128.02s)
--- PASS: TestAccEC2Instance_IPv6_supportAddressCountWithIPv4 (252.09s)
--- PASS: TestAccEC2Instance_placementGroup (107.38s)
--- PASS: TestAccEC2Instance_disableAPITerminationFinalTrue (97.79s)
--- PASS: TestAccEC2Instance_dedicatedInstance (129.41s)
--- PASS: TestAccEC2Instance_disableAPITerminationFinalFalse (131.41s)
--- PASS: TestAccEC2Instance_disableAPIStop (130.22s)
--- PASS: TestAccEC2Instance_noAMIEphemeralDevices (60.53s)
--- PASS: TestAccEC2Instance_autoRecovery (140.59s)
--- PASS: TestAccEC2Instance_gp2WithIopsValue (7.02s)
--- PASS: TestAccEC2Instance_sourceDestCheck (166.18s)
--- PASS: TestAccEC2Instance_EBSBlockDevice_RootBlockDevice_removed (139.40s)
--- PASS: TestAccEC2Instance_blockDevices (90.69s)
--- PASS: TestAccEC2Instance_AssociatePublic_defaultPublic (129.43s)
--- PASS: TestAccEC2Instance_gp2IopsDevice (90.49s)
--- PASS: TestAccEC2Instance_LaunchTemplateModifyTemplate_defaultVersion (117.39s)
--- PASS: TestAccEC2Instance_LaunchTemplate_setSpecificVersion (100.92s)
--- PASS: TestAccEC2Instance_userDataBase64_update (174.30s)
--- PASS: TestAccEC2Instance_LaunchTemplate_overrideTemplate (46.78s)
--- PASS: TestAccEC2Instance_AssociatePublic_overridePublic (96.55s)
--- PASS: TestAccEC2Instance_AssociatePublic_overridePrivate (116.98s)
--- PASS: TestAccEC2Instance_userDataBase64_updateWithZipFile (224.34s)
--- PASS: TestAccEC2Instance_LaunchTemplate_basic (160.08s)
--- PASS: TestAccEC2Instance_AssociatePublic_explicitPublic (99.45s)
--- PASS: TestAccEC2Instance_AssociatePublic_explicitPrivate (119.71s)
--- PASS: TestAccEC2Instance_RootBlockDevice_kmsKeyARN (76.97s)
--- PASS: TestAccEC2Instance_UserData_stringToEncodedString (194.83s)
--- PASS: TestAccEC2Instance_basicWithSpot (101.59s)
--- PASS: TestAccEC2Instance_CreditSpecificationT3_unspecifiedDefaultsToUnlimited (76.90s)
=== NAME  TestAccEC2Instance_CapacityReservation_modifyTarget
    acctest.go:1588: skipping test for aws/us-west-2: Error running apply: exit status 1
        
        Error: starting EC2 Instance (i-0ebbcc63885087999): operation error EC2: StartInstances, https response error StatusCode: 400, RequestID: db415743-7613-4279-8ecc-767f354aef5b, api error ReservationCapacityExceeded: The requested reservation does not have sufficient compatible and available capacity for this request.
        
          with aws_instance.test,
          on terraform_plugin_test.tf line 50, in resource "aws_instance" "test":
          50: resource "aws_instance" "test" {
        
--- SKIP: TestAccEC2Instance_CapacityReservation_modifyTarget (183.25s)
--- PASS: TestAccEC2Instance_userDataBase64_updateWithBashFile (234.32s)
--- PASS: TestAccEC2Instance_CapacityReservation_targetID (102.13s)
--- PASS: TestAccEC2Instance_CapacityReservation_modifyPreference (241.26s)
--- PASS: TestAccEC2Instance_CapacityReservationPreference_none (110.09s)
--- PASS: TestAccEC2Instance_userDataBase64 (179.18s)
--- PASS: TestAccEC2Instance_UserData_update (264.38s)
--- PASS: TestAccEC2Instance_CreditSpecificationT3_updateCPUCredits (125.17s)
--- PASS: TestAccEC2Instance_CapacityReservationPreference_open (99.19s)
--- PASS: TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPs (59.16s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnlimitedCPUCredits_t2Tot3Taint (195.27s)
--- PASS: TestAccEC2Instance_CreditSpecificationStandardCPUCredits_t2Tot3Taint (175.49s)
--- PASS: TestAccEC2Instance_NewNetworkInterface_publicIPAndSecondaryPrivateIPs (148.31s)
--- PASS: TestAccEC2Instance_enclaveOptions (404.77s)
--- PASS: TestAccEC2Instance_metadataOptions (180.24s)
--- PASS: TestAccEC2Instance_hibernation (405.44s)
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off_Base64 (228.60s)
--- PASS: TestAccEC2Instance_CreditSpecificationT3_standardCPUCredits (138.60s)
--- PASS: TestAccEC2Instance_addSecondaryInterface (391.54s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3a (121.66s)
--- PASS: TestAccEC2Instance_CreditSpecification_isNotAppliedToNonBurstable (129.20s)
--- PASS: TestAccEC2Instance_CreditSpecification_updateCPUCredits (163.13s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t4g (100.85s)
--- PASS: TestAccEC2Instance_CreditSpecificationT3_unlimitedCPUCredits (127.63s)
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_Off (183.16s)
--- PASS: TestAccEC2Instance_associatePublicIPAndPrivateIP (77.93s)
--- PASS: TestAccEC2Instance_privateIP (90.57s)
--- PASS: TestAccEC2Instance_instanceProfileChange (222.84s)
--- PASS: TestAccEC2Instance_iamInstanceProfilePath (121.17s)
--- PASS: TestAccEC2Instance_EBSBlockDevice_invalidThroughputForVolumeType (7.47s)
--- PASS: TestAccEC2Instance_EBSBlockDevice_invalidIopsForVolumeType (7.43s)
--- PASS: TestAccEC2Instance_addSecurityGroupNetworkInterface (404.35s)
--- PASS: TestAccEC2Instance_iamInstanceProfile (139.42s)
--- PASS: TestAccEC2Instance_EBSBlockDevice_kmsKeyARN (97.47s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t2 (263.32s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnknownCPUCredits_t3 (70.10s)
--- PASS: TestAccEC2Instance_AssociatePublic_defaultPrivate (77.41s)
--- PASS: TestAccEC2Instance_atLeastOneOtherEBSVolume (223.09s)
--- PASS: TestAccEC2Instance_inDefaultVPCBySgName (97.82s)
--- PASS: TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPsUpdate (192.22s)
    ec2_instance_test.go:4031: skipping tests; AWS_DEFAULT_REGION (us-west-2) not supported. Supported: [us-east-2]
--- SKIP: TestAccEC2Instance_cpuOptionsAmdSevSnpEnabledToDisabled (0.00s)
--- PASS: TestAccEC2Instance_inDefaultVPCBySgID (97.59s)
--- PASS: TestAccEC2Instance_CreditSpecificationUnspecifiedToEmpty_nonBurstable (139.88s)
--- PASS: TestAccEC2Instance_CreditSpecificationEmpty_nonBurstable (139.88s)
--- PASS: TestAccEC2Instance_cpuOptionsCoreThreadsUnspecifiedToSpecified (105.15s)
--- PASS: TestAccEC2Instance_NewNetworkInterface_privateIPAndSecondaryPrivateIPs (131.16s)
--- PASS: TestAccEC2Instance_cpuOptionsCoreThreadsMigration (116.64s)
--- PASS: TestAccEC2Instance_cpuOptionsCoreThreads (153.33s)
--- PASS: TestAccEC2Instance_UserData_unspecifiedToEmptyString (128.40s)
    ec2_instance_test.go:4124: skipping tests; AWS_DEFAULT_REGION (us-west-2) not supported. Supported: [us-east-2]
--- SKIP: TestAccEC2Instance_cpuOptionsAmdSevSnpCoreThreads (0.00s)
    ec2_instance_test.go:4075: skipping tests; AWS_DEFAULT_REGION (us-west-2) not supported. Supported: [us-east-2]
--- SKIP: TestAccEC2Instance_cpuOptionsAmdSevSnpDisabledToEnabled (0.00s)
--- PASS: TestAccEC2Instance_UserData (117.91s)
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On (174.36s)
--- PASS: TestAccEC2Instance_UserDataReplaceOnChange_On_Base64 (196.19s)
    ec2_instance_test.go:3965: skipping tests; AWS_DEFAULT_REGION (us-west-2) not supported. Supported: [us-east-2]
--- SKIP: TestAccEC2Instance_cpuOptionsAmdSevSnpUnspecifiedToEnabledToDisabledToUnspecified (0.00s)
    ec2_instance_test.go:3898: skipping tests; AWS_DEFAULT_REGION (us-west-2) not supported. Supported: [us-east-2]
--- SKIP: TestAccEC2Instance_cpuOptionsAmdSevSnpUnspecifiedToDisabledToEnabledToUnspecified (0.00s)
--- PASS: TestAccEC2Instance_BlockDeviceTags_ebsAndRoot (166.41s)
--- PASS: TestAccEC2Instance_BlockDeviceTags_defaultTagsEBSRoot (173.01s)
--- PASS: TestAccEC2Instance_LaunchTemplate_updateTemplateVersion (197.27s)
--- PASS: TestAccEC2Instance_LaunchTemplate_vpcSecurityGroup (59.14s)
--- PASS: TestAccEC2Instance_GetPasswordData_falseToTrue (152.80s)
--- PASS: TestAccEC2Instance_GetPasswordData_trueToFalse (292.37s)
--- PASS: TestAccEC2Instance_LaunchTemplate_swapIDAndName (135.11s)
--- PASS: TestAccEC2Instance_LaunchTemplate_spotAndStop (223.44s)
--- PASS: TestAccEC2Instance_LaunchTemplate_iamInstanceProfile (216.78s)
--- PASS: TestAccEC2Instance_tags (151.14s)
--- PASS: TestAccEC2Instance_disappears (115.22s)
--- PASS: TestAccEC2Instance_UserData_emptyStringToUnspecified (118.17s)
--- PASS: TestAccEC2Instance_CapacityReservation_unspecifiedDefaultsToOpen (80.81s)
--- PASS: TestAccEC2Instance_BlockDeviceTags_attachedVolume (212.65s)
--- PASS: TestAccEC2Instance_Empty_privateIP (160.39s)
--- PASS: TestAccEC2Instance_BlockDeviceTags_volumeTags (215.77s)
--- PASS: TestAccEC2Instance_CreditSpecification_standardCPUCredits (126.01s)
--- PASS: TestAccEC2Instance_NewNetworkInterface_emptyPrivateIPAndSecondaryPrivateIPsUpdate (179.74s)
--- PASS: TestAccEC2Instance_BlockDeviceTags_defaultTagsVolumeTags (180.31s)
--- PASS: TestAccEC2Instance_CreditSpecification_unlimitedCPUCredits (136.43s)
FAIL
FAIL	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	4246.383s
FAIL
% make testacc TESTARGS='-run=TestAccEC2InstanceDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceDataSource_ -timeout 360m
--- PASS: TestAccEC2InstanceDataSource_basic (105.33s)
--- PASS: TestAccEC2InstanceDataSource_autoRecovery (156.82s)
--- PASS: TestAccEC2InstanceDataSource_placementGroup (305.51s)
--- PASS: TestAccEC2InstanceDataSource_blockDeviceTags (342.14s)
--- PASS: TestAccEC2InstanceDataSource_enclaveOptions (324.67s)
--- PASS: TestAccEC2InstanceDataSource_metadataOptions (324.82s)
--- PASS: TestAccEC2InstanceDataSource_RootBlockDevice_kmsKeyID (75.19s)
--- PASS: TestAccEC2InstanceDataSource_creditSpecification (212.39s)
--- PASS: TestAccEC2InstanceDataSource_timeout (195.71s)
--- PASS: TestAccEC2InstanceDataSource_vpc (88.88s)
--- PASS: TestAccEC2InstanceDataSource_keyPair (104.67s)
--- PASS: TestAccEC2InstanceDataSource_privateIP (109.43s)
--- PASS: TestAccEC2InstanceDataSource_secondaryPrivateIPs (202.15s)
--- PASS: TestAccEC2InstanceDataSource_ipv6Addresses (232.35s)
--- PASS: TestAccEC2InstanceDataSource_disableAPIStopTermination (104.46s)
--- PASS: TestAccEC2InstanceDataSource_gp3ThroughputDevice (64.48s)
--- PASS: TestAccEC2InstanceDataSource_EBSBlockDevice_kmsKeyID (116.65s)
--- PASS: TestAccEC2InstanceDataSource_blockDevices (105.32s)
--- PASS: TestAccEC2InstanceDataSource_gp2IopsDevice (74.75s)
--- PASS: TestAccEC2InstanceDataSource_rootInstanceStore (339.84s)
--- PASS: TestAccEC2InstanceDataSource_tags (94.14s)
--- PASS: TestAccEC2InstanceDataSource_azUserData (206.92s)
--- PASS: TestAccEC2InstanceDataSource_GetUserData_noUserData (168.65s)
--- PASS: TestAccEC2InstanceDataSource_vpcSecurityGroups (111.98s)
--- PASS: TestAccEC2InstanceDataSource_GetPasswordData_falseToTrue (190.76s)
--- PASS: TestAccEC2InstanceDataSource_getUserData (158.30s)
--- PASS: TestAccEC2InstanceDataSource_securityGroups (107.46s)
--- PASS: TestAccEC2InstanceDataSource_GetPasswordData_trueToFalse (188.60s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	1311.218s
% make testacc TESTARGS='-run=TestAccEC2InstanceState_' PKG=ec2           
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceState_ -timeout 360m
--- PASS: TestAccEC2InstanceState_basic (340.21s)
--- PASS: TestAccEC2InstanceState_disappears_Instance (380.75s)
--- PASS: TestAccEC2InstanceState_state (621.06s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        625.351s
% make testacc TESTARGS='-run=TestAccEC2InstanceTypeDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceTypeDataSource_ -timeout 360m
--- PASS: TestAccEC2InstanceTypeDataSource_gpu (14.57s)
--- PASS: TestAccEC2InstanceTypeDataSource_fpga (14.86s)
--- PASS: TestAccEC2InstanceTypeDataSource_basic (14.98s)
--- PASS: TestAccEC2InstanceTypeDataSource_metal (14.98s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        19.267s
% make testacc TESTARGS='-run=TestAccEC2InstanceTypeOfferingDataSource_' PKG=ec2  
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceTypeOfferingDataSource_ -timeout 360m
--- PASS: TestAccEC2InstanceTypeOfferingDataSource_filter (37.60s)
--- PASS: TestAccEC2InstanceTypeOfferingDataSource_preferredInstanceTypes (46.14s)
--- PASS: TestAccEC2InstanceTypeOfferingDataSource_locationType (67.06s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        71.326s
 % make testacc TESTARGS='-run=TestAccEC2InstanceTypeOfferingsDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceTypeOfferingsDataSource_ -timeout 360m
--- PASS: TestAccEC2InstanceTypeOfferingsDataSource_filter (13.33s)
--- PASS: TestAccEC2InstanceTypeOfferingsDataSource_locationType (14.11s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        18.381s
% make testacc TESTARGS='-run=TestAccEC2InstanceTypesDataSource_' PKG=ec2  
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstanceTypesDataSource_ -timeout 360m
--- PASS: TestAccEC2InstanceTypesDataSource_filter (23.17s)
--- PASS: TestAccEC2InstanceTypesDataSource_basic (23.17s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        27.413s
% make testacc TESTARGS='-run=TestAccEC2InstancesDataSource_' PKG=ec2  
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2InstancesDataSource_ -timeout 360m
--- PASS: TestAccEC2InstancesDataSource_empty (13.27s)
--- PASS: TestAccEC2InstancesDataSource_tags (312.28s)
--- PASS: TestAccEC2InstancesDataSource_timeout (320.64s)
--- PASS: TestAccEC2InstancesDataSource_instanceStateNames (343.05s)
--- PASS: TestAccEC2InstancesDataSource_basic (351.02s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        355.347s
% make testacc TESTARGS='-run=TestAccEC2LaunchTemplate_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2LaunchTemplate_ -timeout 360m
--- PASS: TestAccEC2LaunchTemplate_CreditSpecification_nonBurstable (26.19s)
--- PASS: TestAccEC2LaunchTemplate_basic (26.39s)
--- PASS: TestAccEC2LaunchTemplate_Placement_partitionNum (44.79s)
--- PASS: TestAccEC2LaunchTemplate_elasticInferenceAccelerator (37.83s)
--- PASS: TestAccEC2LaunchTemplate_NetworkInterfaces_deleteOnTermination (67.30s)
--- PASS: TestAccEC2LaunchTemplate_disappears (18.84s)
--- PASS: TestAccEC2LaunchTemplate_BlockDeviceMappingsEBS_deleteOnTermination (68.66s)
--- PASS: TestAccEC2LaunchTemplate_BlockDeviceMappingsEBS_gp3 (50.59s)
--- PASS: TestAccEC2LaunchTemplate_Name_prefix (23.14s)
--- PASS: TestAccEC2LaunchTemplate_BlockDeviceMappings_ebs (35.79s)
--- PASS: TestAccEC2LaunchTemplate_ebsOptimized (80.49s)
--- PASS: TestAccEC2LaunchTemplate_Name_generated (23.57s)
--- PASS: TestAccEC2LaunchTemplate_CapacityReservation_target (26.75s)
--- PASS: TestAccEC2LaunchTemplate_cpuOptions (37.98s)
--- PASS: TestAccEC2LaunchTemplate_CapacityReservation_preference (22.57s)
--- PASS: TestAccEC2LaunchTemplate_tags (54.23s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceCardIndex (23.16s)
--- PASS: TestAccEC2LaunchTemplate_Placement_hostResourceGroupARN (26.53s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceIPv6Prefixes (23.51s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceIPv6PrefixCount (24.12s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceIPv4Prefixes (22.20s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceIPv4PrefixCount (22.61s)
--- PASS: TestAccEC2LaunchTemplate_associateCarrierIPAddress (79.05s)
--- PASS: TestAccEC2LaunchTemplate_associatePublicIPAddress (78.40s)
--- PASS: TestAccEC2LaunchTemplate_description (37.83s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_instanceGenerations (48.34s)
--- PASS: TestAccEC2LaunchTemplate_update (72.00s)
--- PASS: TestAccEC2LaunchTemplate_defaultVersion (52.15s)
--- PASS: TestAccEC2LaunchTemplate_updateDefaultVersion (66.70s)
--- PASS: TestAccEC2LaunchTemplate_hibernation (53.46s)
--- PASS: TestAccEC2LaunchTemplate_enclaveOptions (55.89s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_spotMaxPricePercentageOverLowestPrice (27.23s)
--- PASS: TestAccEC2LaunchTemplate_metadataOptions (73.57s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_totalLocalStorageGB (71.09s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_onDemandMaxPricePercentageOverLowestPrice (25.85s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_requireHibernateSupport (49.30s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_networkInterfaceCount (71.09s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_localStorageTypes (50.76s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_networkBandwidthGbps (72.30s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_memoryGiBPerVCPU (70.21s)
--- PASS: TestAccEC2LaunchTemplate_data (28.14s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_excludedInstanceTypes (49.41s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_cpuManufacturers (49.02s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_localStorage (71.46s)
    ec2_launch_template_test.go:2895: skipping tests; missing IAM service-linked role /aws-service-role/license-manager.amazonaws.com. Please create the role and retry
--- SKIP: TestAccEC2LaunchTemplate_licenseSpecification (0.89s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_acceleratorTotalMemoryMiB (72.60s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_allowedInstanceTypes (47.92s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_burstablePerformance (71.24s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_baselineEBSBandwidthMbps (71.21s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_bareMetal (69.51s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_acceleratorTypes (48.64s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_memoryMiBAndVCPUCount (47.56s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_acceleratorNames (48.54s)
--- PASS: TestAccEC2LaunchTemplate_NetworkInterface_ipv6AddressCount (23.04s)
--- PASS: TestAccEC2LaunchTemplate_NetworkInterface_ipv6Addresses (22.46s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_acceleratorCount (70.08s)
--- PASS: TestAccEC2LaunchTemplate_IAMInstanceProfile_emptyBlock (20.98s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceType (23.45s)
--- PASS: TestAccEC2LaunchTemplate_networkInterfaceAddresses (36.80s)
--- PASS: TestAccEC2LaunchTemplate_instanceMarketOptions (72.52s)
--- PASS: TestAccEC2LaunchTemplate_CreditSpecification_t3 (24.71s)
--- PASS: TestAccEC2LaunchTemplate_networkInterface (36.45s)
--- PASS: TestAccEC2LaunchTemplate_CreditSpecification_t4g (25.23s)
--- PASS: TestAccEC2LaunchTemplate_privateDNSNameOptions (23.49s)
--- PASS: TestAccEC2LaunchTemplate_CreditSpecification_t2 (24.42s)
--- PASS: TestAccEC2LaunchTemplate_instanceRequirements_acceleratorManufacturers (48.04s)
PASS
ok    github.com/hashicorp/terraform-provider-aws/internal/service/ec2        763.609s
% make testacc TESTARGS='-run=TestAccEC2LaunchTemplateDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2LaunchTemplateDataSource_ -timeout 360m
--- PASS: TestAccEC2LaunchTemplateDataSource_filter (21.07s)
--- PASS: TestAccEC2LaunchTemplateDataSource_id (21.22s)
--- PASS: TestAccEC2LaunchTemplateDataSource_tags (21.22s)
--- PASS: TestAccEC2LaunchTemplateDataSource_name (24.15s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        28.393s
% make testacc TESTARGS='-run=TestAccEC2PlacementGroup_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2PlacementGroup_ -timeout 360m
--- PASS: TestAccEC2PlacementGroup_disappears (19.25s)
--- PASS: TestAccEC2PlacementGroup_basic (21.88s)
--- PASS: TestAccEC2PlacementGroup_partitionCount (22.28s)
--- PASS: TestAccEC2PlacementGroup_spreadLevel (19.01s)
--- PASS: TestAccEC2PlacementGroup_defaultSpreadLevel (18.91s)
--- PASS: TestAccEC2PlacementGroup_tags (46.78s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	51.134s
% make testacc TESTARGS='-run=TestAccEC2PublicIPv4PoolDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2PublicIPv4PoolDataSource_ -timeout 360m
=== RUN   TestAccEC2PublicIPv4PoolDataSource_basic
=== PAUSE TestAccEC2PublicIPv4PoolDataSource_basic
=== CONT  TestAccEC2PublicIPv4PoolDataSource_basic
    ec2_public_ipv4_pool_data_source_test.go:53: skipping since no EC2 Public IPv4 Pools found
--- SKIP: TestAccEC2PublicIPv4PoolDataSource_basic (1.17s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        5.521s
% make testacc TESTARGS='-run=TestAccEC2PublicIPv4PoolsDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2PublicIPv4PoolsDataSource_ -timeout 360m
--- PASS: TestAccEC2PublicIPv4PoolsDataSource_tags (12.34s)
--- PASS: TestAccEC2PublicIPv4PoolsDataSource_basic (12.35s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        16.641s
% make testacc TESTARGS='-run=TestAccEC2SerialConsoleAccess_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SerialConsoleAccess_ -timeout 360m
--- PASS: TestAccEC2SerialConsoleAccess_basic (27.28s)
PASS
% make testacc TESTARGS='-run=TestAccEC2SerialConsoleAccessDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SerialConsoleAccessDataSource_ -timeout 360m
--- PASS: TestAccEC2SerialConsoleAccessDataSource_basic (12.09s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        16.430s
% make testacc TESTARGS='-run=TestAccEC2SpotDatafeedSubscription_serial' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SpotDatafeedSubscription_serial -timeout 360m
--- PASS: TestAccEC2SpotDatafeedSubscription_serial (54.52s)
    --- PASS: TestAccEC2SpotDatafeedSubscription_serial/disappears (26.62s)
    --- PASS: TestAccEC2SpotDatafeedSubscription_serial/basic (27.89s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        58.892s
% make testacc TESTARGS='-run=TestAccEC2SpotFleetRequest_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SpotFleetRequest_ -timeout 360m
--- PASS: TestAccEC2SpotFleetRequest_lowestPriceAzInGivenList (123.01s)
--- PASS: TestAccEC2SpotFleetRequest_diversifiedAllocation (123.32s)
--- PASS: TestAccEC2SpotFleetRequest_basic (125.04s)
--- PASS: TestAccEC2SpotFleetRequest_withEBSDisk (124.67s)
--- PASS: TestAccEC2SpotFleetRequest_LaunchSpecificationRootBlockDevice_kmsKeyID (304.76s)
--- PASS: TestAccEC2SpotFleetRequest_launchSpecToLaunchTemplate (219.40s)
--- PASS: TestAccEC2SpotFleetRequest_LaunchSpecificationEBSBlockDevice_kmsKeyID (241.93s)
--- PASS: TestAccEC2SpotFleetRequest_lowestPriceAzOrSubnetInRegion (123.07s)
--- PASS: TestAccEC2SpotFleetRequest_iamInstanceProfileARN (119.27s)
--- PASS: TestAccEC2SpotFleetRequest_updateExcessCapacityTerminationPolicy (226.70s)
--- PASS: TestAccEC2SpotFleetRequest_changePriceForcesNewRequest (226.45s)
--- PASS: TestAccEC2SpotFleetRequest_fleetType (118.67s)
--- PASS: TestAccEC2SpotFleetRequest_instanceInterruptionBehavior (118.27s)
--- PASS: TestAccEC2SpotFleetRequest_updateTargetCapacity (326.30s)
--- PASS: TestAccEC2SpotFleetRequest_onDemandAllocationStrategy (118.57s)
--- PASS: TestAccEC2SpotFleetRequest_onDemandMaxTotalPrice (123.42s)
--- PASS: TestAccEC2SpotFleetRequest_withoutSpotPrice (124.92s)
--- PASS: TestAccEC2SpotFleetRequest_overridingSpotPrice (119.32s)
--- PASS: TestAccEC2SpotFleetRequest_multipleInstanceTypesInSameSubnet (187.47s)
--- PASS: TestAccEC2SpotFleetRequest_onDemandTargetCapacity (241.93s)
--- PASS: TestAccEC2SpotFleetRequest_noTerminateInstancesWithExpiration (118.36s)
--- PASS: TestAccEC2SpotFleetRequest_instanceStoreAMI (123.12s)
--- PASS: TestAccEC2SpotFleetRequest_capacityRebalance (123.73s)
--- PASS: TestAccEC2SpotFleetRequest_withTags (123.83s)
--- PASS: TestAccEC2SpotFleetRequest_Zero_capacity (180.96s)
--- PASS: TestAccEC2SpotFleetRequest_withTargetGroups (330.07s)
--- PASS: TestAccEC2SpotFleetRequest_placementTenancyAndGroup (63.79s)
--- PASS: TestAccEC2SpotFleetRequest_launchTemplateWithInstanceRequirementsOverrides (189.02s)
--- PASS: TestAccEC2SpotFleetRequest_withELBs (188.73s)
--- PASS: TestAccEC2SpotFleetRequest_launchTemplate (118.45s)
--- PASS: TestAccEC2SpotFleetRequest_launchTemplateWithInstanceTypeOverrides (118.72s)
--- PASS: TestAccEC2SpotFleetRequest_LaunchTemplate_multiple (119.37s)
--- PASS: TestAccEC2SpotFleetRequest_disappears (121.26s)
--- PASS: TestAccEC2SpotFleetRequest_launchTemplateToLaunchSpec (227.42s)
--- PASS: TestAccEC2SpotFleetRequest_targetCapacityUnitType (119.20s)
--- PASS: TestAccEC2SpotFleetRequest_associatePublicIPAddress (119.03s)
--- PASS: TestAccEC2SpotFleetRequest_context (21.63s)
--- PASS: TestAccEC2SpotFleetRequest_tags (150.65s)
--- PASS: TestAccEC2SpotFleetRequest_multipleInstanceTypesInSameAz (119.61s)
--- PASS: TestAccEC2SpotFleetRequest_withWeightedCapacity (184.78s)
--- PASS: TestAccEC2SpotFleetRequest_multipleInstancePools (120.25s)
--- PASS: TestAccEC2SpotFleetRequest_lowestPriceSubnetInGivenList (194.35s)
--- PASS: TestAccEC2SpotFleetRequest_LaunchSpecification_rootBlockDeviceGP3 (119.89s)
--- PASS: TestAccEC2SpotFleetRequest_LaunchSpecification_ebsBlockDeviceGP3 (118.62s)
PASS
ok       github.com/hashicorp/terraform-provider-aws/internal/service/ec2        1701.697s
% make testacc TESTARGS='-run=TestAccEC2SpotInstanceRequest_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SpotInstanceRequest_ -timeout 360m
--- PASS: TestAccEC2SpotInstanceRequest_withoutSpotPrice (305.80s)
--- PASS: TestAccEC2SpotInstanceRequest_withLaunchGroup (314.02s)
=== CONT  TestAccEC2SpotInstanceRequest_withBlockDuration
    ec2_spot_instance_request_test.go:203: Step 1/2 error: Error running apply: exit status 1
        
        Error: requesting EC2 Spot Instance: operation error EC2: RequestSpotInstances, https response error StatusCode: 400, RequestID: 2a815cd4-e3ac-40e7-bbd5-c1814000a5c7, api error InvalidParameterValue: BlockDurationMinutes is not a valid parameter.
        
          with aws_spot_instance_request.test,
          on terraform_plugin_test.tf line 41, in resource "aws_spot_instance_request" "test":
          41: resource "aws_spot_instance_request" "test" {
        
--- FAIL: TestAccEC2SpotInstanceRequest_withBlockDuration (7.90s)
=== CONT  TestAccEC2SpotInstanceRequest_tags
=== NAME  TestAccEC2SpotInstanceRequest_vpc
    ec2_spot_instance_request_test.go:235: Step 1/2 error: Check failed: Check 3/5 error: Expected exactly 1 network interface, found 0
--- FAIL: TestAccEC2SpotInstanceRequest_vpc (324.85s)
--- PASS: TestAccEC2SpotInstanceRequest_validUntil (354.83s)
--- PASS: TestAccEC2SpotInstanceRequest_basic (357.08s)
--- PASS: TestAccEC2SpotInstanceRequest_tags (135.90s)
--- PASS: TestAccEC2SpotInstanceRequest_keyName (311.06s)
--- PASS: TestAccEC2SpotInstanceRequest_interruptUpdate (179.54s)
--- PASS: TestAccEC2SpotInstanceRequest_disappears (317.85s)
--- PASS: TestAccEC2SpotInstanceRequest_interruptHibernate (7.74s)
--- PASS: TestAccEC2SpotInstanceRequest_interruptStop (351.72s)
--- PASS: TestAccEC2SpotInstanceRequest_getPasswordData (163.95s)
--- PASS: TestAccEC2SpotInstanceRequest_withInstanceProfile (335.63s)
--- PASS: TestAccEC2SpotInstanceRequest_networkInterfaceAttributes (328.26s)
--- PASS: TestAccEC2SpotInstanceRequest_subnetAndSGAndPublicIPAddress (368.79s)
FAIL
FAIL	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	1182.699s
FAIL
% make testacc TESTARGS='-run=TestAccEC2SpotPriceDataSource_' PKG=ec2 
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccEC2SpotPriceDataSource_ -timeout 360m
--- PASS: TestAccEC2SpotPriceDataSource_basic (14.14s)
--- PASS: TestAccEC2SpotPriceDataSource_filter (18.42s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        22.902s

Copy link

Community Note

Voting for Prioritization

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

For Submitters

  • Review the contribution guide relating to the type of change you are making to ensure all of the necessary steps have been taken.
  • For new resources and data sources, use skaff to generate scaffolding with comments detailing common expectations.
  • Whether or not the branch has been rebased will not impact prioritization, but doing so is always a welcome surprise.

@github-actions github-actions bot added size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/ec2 Issues and PRs that pertain to the ec2 service. labels May 16, 2024
@terraform-aws-provider terraform-aws-provider bot added needs-triage Waiting for first response or review from a maintainer. external-maintainer Contribution from a trusted external contributor. labels May 16, 2024
@DanielRieske DanielRieske changed the title Migrate ec2 resources to AWS SDK V2 [WIP] Migrate ec2 resources to AWS SDK V2 May 16, 2024
@justinretzolk justinretzolk added aws-sdk-go-migration Issues that are related to the providers migration to AWS SDK for Go v2. and removed needs-triage Waiting for first response or review from a maintainer. labels May 16, 2024
@github-actions github-actions bot added the service/wavelength Issues and PRs that pertain to the wavelength service. label May 21, 2024
@DanielRieske
Copy link
Contributor Author

DanielRieske commented May 24, 2024

The PR is as good as done, there are 2 tests I'd like a maintainer to take a look at.

They are both connected to each other and were used as a regression test for a scenario where it was possible that an instance had a root_device_name that wasn't in the block_device_mappings.
These days the API doesn't accept an AMI where this is the case but apparently a long time this was possible in certain cases.

To make sure the resource caught it we had two tests,

  • TestFetchRootDevice We mocked the API response here and forced it to return a root_device_name that wasn't in the block_device_mappings.
  • TestAccEC2Instance_rootBlockDeviceMismatch Here we allegedly had an AMI where the above was the actual case.
    I first believed this was a custom AMI with ID ami-ef5b69df that lived in the CI accounts and therefore couldn't be tested locally, after consulting with the maintainers this test was currently failing in their CI as well and I was advised to skip it.

Thanks for any help/advice when reviewing.

@DanielRieske DanielRieske marked this pull request as ready for review May 24, 2024 22:02
@DanielRieske DanielRieske changed the title [WIP] Migrate ec2 resources to AWS SDK V2 Migrate ec2 resources to AWS SDK V2 May 24, 2024
DanielRieske and others added 4 commits June 5, 2024 01:19
# Conflicts:
#	internal/service/ec2/exports_test.go
#	internal/service/ec2/find.go
#	internal/service/ec2/findv2.go
#	internal/service/ec2/status.go
#	internal/service/ec2/statusv2.go
#	internal/service/ec2/wait.go
#	internal/service/ec2/waitv2.go
@ewbankkit ewbankkit self-assigned this Jun 6, 2024
@terraform-aws-provider terraform-aws-provider bot added the prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. label Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aws-sdk-go-migration Issues that are related to the providers migration to AWS SDK for Go v2. external-maintainer Contribution from a trusted external contributor. generators Relates to code generators. prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. service/autoscaling Issues and PRs that pertain to the autoscaling service. service/ec2ebs Issues and PRs that pertain to the ec2ebs service. service/ec2 Issues and PRs that pertain to the ec2 service. service/wavelength Issues and PRs that pertain to the wavelength service. size/XL Managed by automation to categorize the size of a PR. sweeper Pertains to changes to or issues with the sweeper. 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 SDK for Go Migration] EC2 (Elastic Compute Cloud) Service
3 participants