-
Notifications
You must be signed in to change notification settings - Fork 9.1k
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 timeout support for EBS Snapshot copies #20912
Add timeout support for EBS Snapshot copies #20912
Conversation
These copies can take an exorbitant amount of time to run, and if a snapshot requires a custom timeout configuration, chances are extremely high that any attempt to copy that snapshot will also exceed the default 10-minute timeout. Thankfully, the API is very similar between the base snapshot resource and the copy resource, so we can borrow the logic almost wholesale from the EBS snapshot to support this configuration block appropriately. Resolves hashicorp#14354.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Welcome @ahorner 👋
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! 😃
You beat me to it! This was crippling my company after switching to encrypted snapshots. To compile from source: mv terraform-provider-aws ~/.terraform.d/plugins/your.domain/yourCompany/aws/3.42.0/linux_amd64/terraform-provider-aws Path/terraform/providers.tf: terraform { |
Pull request #21306 has significantly refactored the AWS Provider codebase. As a result, most PRs opened prior to the refactor now have merge conflicts that must be resolved before proceeding. Specifically, PR #21306 relocated the code for all AWS resources and data sources from a single We recognize that many pull requests have been open for some time without yet being addressed by our maintainers. Therefore, we want to make it clear that resolving these conflicts in no way affects the prioritization of a particular pull request. Once a pull request has been prioritized for review, the necessary changes will be made by a maintainer -- either directly or in collaboration with the pull request author. For a more complete description of this refactor, including examples of how old filepaths and function names correspond to their new counterparts: please refer to issue #20000. For a quick guide on how to amend your pull request to resolve the merge conflicts resulting from this refactor and bring it in line with our new code patterns: please refer to our Service Package Refactor Pull Request Guide. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀.
% make testacc TESTARGS='-run=TestAccEC2EBSSnapshotCopy_' PKG=ec2 ACCTEST_PARALLELISM=2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 2 -run=TestAccEC2EBSSnapshotCopy_ -timeout 180m
=== RUN TestAccEC2EBSSnapshotCopy_basic
=== PAUSE TestAccEC2EBSSnapshotCopy_basic
=== RUN TestAccEC2EBSSnapshotCopy_disappears
=== PAUSE TestAccEC2EBSSnapshotCopy_disappears
=== RUN TestAccEC2EBSSnapshotCopy_tags
=== PAUSE TestAccEC2EBSSnapshotCopy_tags
=== RUN TestAccEC2EBSSnapshotCopy_withDescription
=== PAUSE TestAccEC2EBSSnapshotCopy_withDescription
=== RUN TestAccEC2EBSSnapshotCopy_withRegions
=== PAUSE TestAccEC2EBSSnapshotCopy_withRegions
=== RUN TestAccEC2EBSSnapshotCopy_withKMS
=== PAUSE TestAccEC2EBSSnapshotCopy_withKMS
=== RUN TestAccEC2EBSSnapshotCopy_storageTier
=== PAUSE TestAccEC2EBSSnapshotCopy_storageTier
=== CONT TestAccEC2EBSSnapshotCopy_basic
=== CONT TestAccEC2EBSSnapshotCopy_withRegions
--- PASS: TestAccEC2EBSSnapshotCopy_basic (75.74s)
=== CONT TestAccEC2EBSSnapshotCopy_withDescription
--- PASS: TestAccEC2EBSSnapshotCopy_withRegions (79.96s)
=== CONT TestAccEC2EBSSnapshotCopy_tags
--- PASS: TestAccEC2EBSSnapshotCopy_withDescription (73.59s)
=== CONT TestAccEC2EBSSnapshotCopy_disappears
--- PASS: TestAccEC2EBSSnapshotCopy_tags (105.01s)
=== CONT TestAccEC2EBSSnapshotCopy_storageTier
--- PASS: TestAccEC2EBSSnapshotCopy_disappears (70.64s)
=== CONT TestAccEC2EBSSnapshotCopy_withKMS
--- PASS: TestAccEC2EBSSnapshotCopy_withKMS (69.57s)
--- PASS: TestAccEC2EBSSnapshotCopy_storageTier (145.05s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/ec2 341.614s
@ahorner Thanks for the contribution 🎉 👏. |
% make providerlint golangci-lint
==> Checking source code with providerlint...
==> Checking source code with golangci-lint... |
This functionality has been released in v4.18.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! |
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. |
Community Note
Description
These copies can take an exorbitant amount of time to run, and if a
snapshot requires a custom timeout configuration, chances are
extremely high that any attempt to copy that snapshot will also exceed
the default 10-minute timeout.
Thankfully, the API is very similar between the base snapshot resource
and the copy resource, so we can borrow the logic almost wholesale
from the EBS snapshot to support this configuration block
appropriately.
Closes #14354.
Closes #17186.
Output from acceptance testing: