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

r/aws_spot_fleet_request - add support for tagging + validations #12295

Merged
merged 6 commits into from
Apr 8, 2020

Conversation

DrFaust92
Copy link
Collaborator

@DrFaust92 DrFaust92 commented Mar 6, 2020

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 #12078

Release note for CHANGELOG:

resource_aws_spot_fleet_request: add support for tagging.
resource_aws_spot_fleet_request: add plan time validation to `volume_type`, `iam_instance_profile_arn`, `allocation_strategy`, `instance_interruption_behaviour`, `target_group_arns`, `placement_tenancy`.

Output from acceptance testing:

$ make testacc TESTARGS='-run=TestAccAWSSpotFleetRequest_'
--- PASS: TestAccAWSSpotFleetRequest_basic (344.44s)
--- PASS: TestAccAWSSpotFleetRequest_updateTargetCapacity (986.78s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion (364.98s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList (349.96s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList (295.24s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz (291.23s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet (302.79s)
--- PASS: TestAccAWSSpotFleetRequest_overriddingSpotPrice (281.26s)
--- PASS: TestAccAWSSpotFleetRequest_withoutSpotPrice (341.80s)
--- PASS: TestAccAWSSpotFleetRequest_diversifiedAllocation (372.79s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstancePools (362.38s)
--- PASS: TestAccAWSSpotFleetRequest_withWeightedCapacity (358.54s)
--- PASS: TestAccAWSSpotFleetRequest_withEBSDisk (313.12s)
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId (213.91s)
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId (227.32s)
--- PASS: TestAccAWSSpotFleetRequest_withTags (354.02s)
--- PASS: TestAccAWSSpotFleetRequest_placementTenancyAndGroup (106.36s)
--- PASS: TestAccAWSSpotFleetRequest_WithELBs (364.46s)
--- PASS: TestAccAWSSpotFleetRequest_WithTargetGroups (497.25s)
--- PASS: TestAccAWSSpotFleetRequest_associatePublicIpAddress (340.35s)
--- PASS: TestAccAWSSpotFleetRequest_instanceInterruptionBehavior (277.50s)
--- PASS: TestAccAWSSpotFleetRequest_fleetType (272.67s)
--- PASS: TestAccAWSSpotFleetRequest_iamInstanceProfileArn (332.60s)
--- PASS: TestAccAWSSpotFleetRequest_changePriceForcesNewRequest (480.32s)
--- PASS: TestAccAWSSpotFleetRequest_tags (346.79s)

@DrFaust92 DrFaust92 requested a review from a team March 6, 2020 20:10
@ghost ghost added size/XL Managed by automation to categorize the size of a PR. needs-triage Waiting for first response or review from a maintainer. service/ec2 Issues and PRs that pertain to the ec2 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Mar 6, 2020
@DrFaust92 DrFaust92 changed the title [WIP]r/aws_spot_fleet_request - add support for tagging + validations r/aws_spot_fleet_request - add support for tagging + validations Mar 7, 2020
@ewbankkit
Copy link
Contributor

Verified acceptance tests:

$ make testacc TEST=./aws TESTARGS='-run=TestAccAWSSpotFleetRequest_'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 2 -run=TestAccAWSSpotFleetRequest_ -timeout 120m
=== RUN   TestAccAWSSpotFleetRequest_basic
=== PAUSE TestAccAWSSpotFleetRequest_basic
=== RUN   TestAccAWSSpotFleetRequest_tags
=== PAUSE TestAccAWSSpotFleetRequest_tags
=== RUN   TestAccAWSSpotFleetRequest_associatePublicIpAddress
=== PAUSE TestAccAWSSpotFleetRequest_associatePublicIpAddress
=== RUN   TestAccAWSSpotFleetRequest_instanceInterruptionBehavior
=== PAUSE TestAccAWSSpotFleetRequest_instanceInterruptionBehavior
=== RUN   TestAccAWSSpotFleetRequest_fleetType
=== PAUSE TestAccAWSSpotFleetRequest_fleetType
=== RUN   TestAccAWSSpotFleetRequest_iamInstanceProfileArn
=== PAUSE TestAccAWSSpotFleetRequest_iamInstanceProfileArn
=== RUN   TestAccAWSSpotFleetRequest_changePriceForcesNewRequest
=== PAUSE TestAccAWSSpotFleetRequest_changePriceForcesNewRequest
=== RUN   TestAccAWSSpotFleetRequest_updateTargetCapacity
=== PAUSE TestAccAWSSpotFleetRequest_updateTargetCapacity
=== RUN   TestAccAWSSpotFleetRequest_updateExcessCapacityTerminationPolicy
=== PAUSE TestAccAWSSpotFleetRequest_updateExcessCapacityTerminationPolicy
=== RUN   TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion
=== PAUSE TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion
=== RUN   TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList
=== PAUSE TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList
=== RUN   TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList
=== PAUSE TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList
=== RUN   TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz
=== PAUSE TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz
=== RUN   TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet
=== PAUSE TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet
=== RUN   TestAccAWSSpotFleetRequest_overriddingSpotPrice
=== PAUSE TestAccAWSSpotFleetRequest_overriddingSpotPrice
=== RUN   TestAccAWSSpotFleetRequest_withoutSpotPrice
=== PAUSE TestAccAWSSpotFleetRequest_withoutSpotPrice
=== RUN   TestAccAWSSpotFleetRequest_diversifiedAllocation
=== PAUSE TestAccAWSSpotFleetRequest_diversifiedAllocation
=== RUN   TestAccAWSSpotFleetRequest_multipleInstancePools
=== PAUSE TestAccAWSSpotFleetRequest_multipleInstancePools
=== RUN   TestAccAWSSpotFleetRequest_withWeightedCapacity
=== PAUSE TestAccAWSSpotFleetRequest_withWeightedCapacity
=== RUN   TestAccAWSSpotFleetRequest_withEBSDisk
=== PAUSE TestAccAWSSpotFleetRequest_withEBSDisk
=== RUN   TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId
=== PAUSE TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId
=== RUN   TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId
=== PAUSE TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId
=== RUN   TestAccAWSSpotFleetRequest_withTags
=== PAUSE TestAccAWSSpotFleetRequest_withTags
=== RUN   TestAccAWSSpotFleetRequest_placementTenancyAndGroup
=== PAUSE TestAccAWSSpotFleetRequest_placementTenancyAndGroup
=== RUN   TestAccAWSSpotFleetRequest_WithELBs
=== PAUSE TestAccAWSSpotFleetRequest_WithELBs
=== RUN   TestAccAWSSpotFleetRequest_WithTargetGroups
=== PAUSE TestAccAWSSpotFleetRequest_WithTargetGroups
=== RUN   TestAccAWSSpotFleetRequest_WithInstanceStoreAmi
--- SKIP: TestAccAWSSpotFleetRequest_WithInstanceStoreAmi (0.00s)
    resource_aws_spot_fleet_request_test.go:768: Test fails due to test harness constraints
=== CONT  TestAccAWSSpotFleetRequest_basic
=== CONT  TestAccAWSSpotFleetRequest_overriddingSpotPrice
--- PASS: TestAccAWSSpotFleetRequest_basic (274.45s)
=== CONT  TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet
--- PASS: TestAccAWSSpotFleetRequest_overriddingSpotPrice (309.23s)
=== CONT  TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet (244.49s)
=== CONT  TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz (276.82s)
=== CONT  TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList (274.27s)
=== CONT  TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList (276.85s)
=== CONT  TestAccAWSSpotFleetRequest_updateExcessCapacityTerminationPolicy
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion (294.79s)
=== CONT  TestAccAWSSpotFleetRequest_updateTargetCapacity
--- PASS: TestAccAWSSpotFleetRequest_updateExcessCapacityTerminationPolicy (570.15s)
=== CONT  TestAccAWSSpotFleetRequest_changePriceForcesNewRequest
--- PASS: TestAccAWSSpotFleetRequest_changePriceForcesNewRequest (477.54s)
=== CONT  TestAccAWSSpotFleetRequest_iamInstanceProfileArn
--- PASS: TestAccAWSSpotFleetRequest_updateTargetCapacity (896.16s)
=== CONT  TestAccAWSSpotFleetRequest_fleetType
--- PASS: TestAccAWSSpotFleetRequest_iamInstanceProfileArn (284.87s)
=== CONT  TestAccAWSSpotFleetRequest_instanceInterruptionBehavior
--- PASS: TestAccAWSSpotFleetRequest_fleetType (274.35s)
=== CONT  TestAccAWSSpotFleetRequest_associatePublicIpAddress
--- PASS: TestAccAWSSpotFleetRequest_instanceInterruptionBehavior (263.58s)
=== CONT  TestAccAWSSpotFleetRequest_tags
--- PASS: TestAccAWSSpotFleetRequest_associatePublicIpAddress (273.09s)
=== CONT  TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId (167.28s)
=== CONT  TestAccAWSSpotFleetRequest_WithTargetGroups
--- PASS: TestAccAWSSpotFleetRequest_tags (278.02s)
=== CONT  TestAccAWSSpotFleetRequest_WithELBs
--- PASS: TestAccAWSSpotFleetRequest_WithELBs (288.81s)
=== CONT  TestAccAWSSpotFleetRequest_placementTenancyAndGroup
--- PASS: TestAccAWSSpotFleetRequest_placementTenancyAndGroup (70.96s)
=== CONT  TestAccAWSSpotFleetRequest_withTags
--- PASS: TestAccAWSSpotFleetRequest_WithTargetGroups (410.57s)
=== CONT  TestAccAWSSpotFleetRequest_withWeightedCapacity
--- PASS: TestAccAWSSpotFleetRequest_withTags (240.99s)
=== CONT  TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId
--- PASS: TestAccAWSSpotFleetRequest_withWeightedCapacity (315.53s)
=== CONT  TestAccAWSSpotFleetRequest_withEBSDisk
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId (155.60s)
=== CONT  TestAccAWSSpotFleetRequest_diversifiedAllocation
--- PASS: TestAccAWSSpotFleetRequest_withEBSDisk (316.07s)
=== CONT  TestAccAWSSpotFleetRequest_multipleInstancePools
--- PASS: TestAccAWSSpotFleetRequest_diversifiedAllocation (349.17s)
=== CONT  TestAccAWSSpotFleetRequest_withoutSpotPrice
--- PASS: TestAccAWSSpotFleetRequest_multipleInstancePools (246.58s)
--- PASS: TestAccAWSSpotFleetRequest_withoutSpotPrice (213.32s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	4055.989s

Set: schema.HashString,
Elem: &schema.Schema{
Type: schema.TypeString,
ValidateFunc: validateArn,
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure if this validation function will ever get called.

add plan time validation to the following:
`volume_type`,
`iam_instance_profile_arn`,
`allocation_strategy`
`instance_interruption_behaviour`,
`target_group_arns`

* use enums

read after update
@bflad bflad 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 Apr 8, 2020
Copy link
Contributor

@bflad bflad left a comment

Choose a reason for hiding this comment

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

Looks good, thanks @DrFaust92 🚀 Going to merge this one before #9718 (breaking change) and #4866 (existing merge conflicts that need to be fixed anyways) so we can roll some fixes into the tagging library and push them out. It looks like #4866 could really use some love if you want a challenge of taking the existing commits and getting a new pull request into a much better state to fix up pending review items.

Output from acceptance testing:

--- PASS: TestAccAWSSpotFleetRequest_associatePublicIpAddress (224.34s)
--- PASS: TestAccAWSSpotFleetRequest_basic (224.99s)
--- PASS: TestAccAWSSpotFleetRequest_changePriceForcesNewRequest (500.65s)
--- PASS: TestAccAWSSpotFleetRequest_diversifiedAllocation (354.80s)
--- PASS: TestAccAWSSpotFleetRequest_fleetType (366.59s)
--- PASS: TestAccAWSSpotFleetRequest_iamInstanceProfileArn (226.21s)
--- PASS: TestAccAWSSpotFleetRequest_instanceInterruptionBehavior (222.77s)
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_EbsBlockDevice_KmsKeyId (165.80s)
--- PASS: TestAccAWSSpotFleetRequest_LaunchSpecification_RootBlockDevice_KmsKeyId (165.13s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzInGivenList (345.03s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceAzOrSubnetInRegion (225.36s)
--- PASS: TestAccAWSSpotFleetRequest_lowestPriceSubnetInGivenList (275.88s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstancePools (344.59s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameAz (343.62s)
--- PASS: TestAccAWSSpotFleetRequest_multipleInstanceTypesInSameSubnet (276.01s)
--- PASS: TestAccAWSSpotFleetRequest_overriddingSpotPrice (342.65s)
--- PASS: TestAccAWSSpotFleetRequest_placementTenancyAndGroup (60.98s)
--- PASS: TestAccAWSSpotFleetRequest_tags (292.34s)
--- PASS: TestAccAWSSpotFleetRequest_updateExcessCapacityTerminationPolicy (500.06s)
--- PASS: TestAccAWSSpotFleetRequest_updateTargetCapacity (773.97s)
--- PASS: TestAccAWSSpotFleetRequest_withEBSDisk (226.06s)
--- PASS: TestAccAWSSpotFleetRequest_WithELBs (273.72s)
--- PASS: TestAccAWSSpotFleetRequest_withoutSpotPrice (276.74s)
--- PASS: TestAccAWSSpotFleetRequest_withTags (277.35s)
--- PASS: TestAccAWSSpotFleetRequest_WithTargetGroups (608.87s)
--- PASS: TestAccAWSSpotFleetRequest_withWeightedCapacity (343.96s)

@bflad bflad added this to the v2.57.0 milestone Apr 8, 2020
@bflad bflad merged commit 0b2f3ec into hashicorp:master Apr 8, 2020
@DrFaust92
Copy link
Collaborator Author

@bflad, sure thing ill take a look at #4866. i need something fun after the horrible FSx PRs (they forever to create!)

@bflad
Copy link
Contributor

bflad commented Apr 8, 2020

@DrFaust92 you rock. Thanks. Honestly feel free to do whatever on top of the original contributor's PR to get it up to modern standards and fixing things per usual. ❤️

bflad added a commit that referenced this pull request Apr 8, 2020
@DrFaust92
Copy link
Collaborator Author

missed that this closes also #6627

@ghost
Copy link

ghost commented Apr 10, 2020

This has been released in version 2.57.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!

@DrFaust92 DrFaust92 deleted the fleet-req-tags branch April 14, 2020 17:51
@ghost
Copy link

ghost commented May 8, 2020

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@ghost ghost locked and limited conversation to collaborators May 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
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.

r/aws_spot_fleet_request: Support tagging
3 participants