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

resource/aws_vpc_dhcp_options_association: Handle read-after-create eventual consistency #18472

Merged
merged 3 commits into from
Apr 1, 2021

Conversation

bflad
Copy link
Contributor

@bflad bflad commented Mar 29, 2021

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 #16142
Reference: #16796

Output from acceptance testing in AWS Commercial:

--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (19.27s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (25.61s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (25.84s)

Output from acceptance testing in AWS GovCloud (US):

--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (21.51s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (27.55s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (28.10s)

…ventual consistency

Reference: #16142
Reference: #16796

Output from acceptance testing in AWS Commercial:

```
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (19.27s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (25.61s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (25.84s)
```

Output from acceptance testing in AWS GovCloud (US):

```
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (21.51s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (27.55s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (28.10s)
```
@bflad bflad added the bug Addresses a defect in current functionality. label Mar 29, 2021
@bflad bflad requested a review from a team as a code owner March 29, 2021 23:08
@ghost ghost added size/S Managed by automation to categorize the size of a PR. service/ec2 Issues and PRs that pertain to the ec2 service. labels Mar 29, 2021
@YakDriver YakDriver self-assigned this Apr 1, 2021
@ghost ghost added size/M Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. and removed size/S Managed by automation to categorize the size of a PR. labels Apr 1, 2021
Copy link
Member

@YakDriver YakDriver left a comment

Choose a reason for hiding this comment

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

Looks great! 🎉

Acceptance tests on GovCloud:

--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (20.59s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears (23.82s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (26.28s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (26.60s)

Acceptance tests on commercial:

--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_vpc (16.52s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears (20.19s)
--- PASS: TestAccAWSDHCPOptionsAssociation_disappears_dhcp (21.90s)
--- PASS: TestAccAWSDHCPOptionsAssociation_basic (22.07s)

@bflad
Copy link
Contributor Author

bflad commented Apr 1, 2021

Followup adjustments look good to me 👍 I'll merge when CI thinks we're going the code right.

@YakDriver
Copy link
Member

YakDriver commented Apr 1, 2021

This PR also adjusts Delete and the CheckDestroy. Previously, on GovCloud, 7 of out 10X the TestAccAWSDHCPOptionsAssociation_disappears_dhcp test would fail with this error:

testing_new.go:63: Error running post-test destroy, there may be dangling resources: DHCP Options association is still associated to 1 VPCs.

The issue was that this line would only occasionally result in a DHCP Options ID making it to the Disappears -> Delete. Most of the time, the resource data would include dhcp_options_id = default. (Perhaps because GovCloud was so quick in deleting resources.)

testAccCheckResourceDisappears(testAccProvider, resourceAwsVpcDhcpOptions(), "aws_vpc_dhcp_options.test"),

Since aws_vpc_dhcp_options_association's Delete just associates the VPC with the default DHCP Options ID ("default"), delete wouldn't really do anything in that particular case.

In the CheckDestroy (testAccCheckDHCPOptionsAssociationDestroy), if the resource state includes dhcp_options_id = default, the options association is already deleted. But, the findVPCsByDHCPOptionsID(conn, rs.Primary.Attributes["dhcp_options_id"]) was actually findVPCsByDHCPOptionsID(conn, "default"), which is what it should look like when aws_vpc_dhcp_options_association is deleted. But, the test would error because len(vpcs) was greater than 0, because a VPC was associated with default, like any VPC will be until it is associated with VPC DHCP options.

@bflad bflad merged commit 60242c4 into main Apr 1, 2021
@bflad bflad deleted the b-aws_vpc_dhcp_options_association-IsNewResource branch April 1, 2021 18:54
@github-actions github-actions bot added this to the v3.35.0 milestone Apr 1, 2021
github-actions bot pushed a commit that referenced this pull request Apr 1, 2021
@ghost
Copy link

ghost commented Apr 1, 2021

This has been released in version 3.35.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!

@ghost
Copy link

ghost commented May 2, 2021

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 as resolved and limited conversation to collaborators May 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Addresses a defect in current functionality. service/ec2 Issues and PRs that pertain to the ec2 service. size/M 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.

Provider produced inconsistent result after apply - aws_vpc_dhcp_options_association.dns_resolver
2 participants