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

feat: Add delete config args to aws_fsx_[lustre|openzfs|windows]_file_system and aws_fsx_ontap_volume #37717

Merged

Conversation

acwwat
Copy link
Contributor

@acwwat acwwat commented May 26, 2024

Description

This PR is to add arguments related to delete configurations to aws_fsx_lustre_file_system, aws_fsx_openzfs_file_system, and aws_fsx_windows_file_system as follows:

  • The new final_backup_tags argument applies to all three file system types.
  • The skip_final_backup argument is added to aws_fsx_lustre_file_system, however it is true by default according to the specs unlike the other two file system types. As well, it is not applicable when the deployment type is Scratch - providing even an empty delete configuration object would cause a validation error.
  • The delete_options argument is added and applicable to aws_fsx_openzfs_file_system only.

In addition to file system resources, this PR also adds the final_backup_tags argument to the aws_fsx_ontap_volume resource for completeness.

For the acceptance tests, I added a new environment variable FSX_CREATE_FINAL_BACKUP to control whether the test cases that involve taking a final backup on file system deletion is run. The backups would remain after running unit tests so they must be deleted afterwards to avoid storage costs.

Due to the excessive cost and time to run all acceptance tests, I am only able to run the basic test, which should be representative of the new changes to non-related test cases, and a new deleteConfig test case for each file system type.

Relations

Closes #36399
Closes #37712
Closes #37718

References

Referred to DeleteFileSystem and DeleteVolume for specs and wordings.

Output from Acceptance Testing

For aws_fsx_lustre_file_system:

$ export FSX_CREATE_FINAL_BACKUP=true
$ make testacc TESTS="TestAccFSxLustreFileSystem_basic|TestAccFSxLustreFileSystem_deleteConfig" PKG=fsx
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/fsx/... -v -count 1 -parallel 20 -run='TestAccFSxLustreFileSystem_basic|TestAccFSxLustreFileSystem_deleteConfig'  -timeout 360m
=== RUN   TestAccFSxLustreFileSystem_basic
=== PAUSE TestAccFSxLustreFileSystem_basic
=== RUN   TestAccFSxLustreFileSystem_deleteConfig
=== PAUSE TestAccFSxLustreFileSystem_deleteConfig
=== CONT  TestAccFSxLustreFileSystem_basic
=== CONT  TestAccFSxLustreFileSystem_deleteConfig
--- PASS: TestAccFSxLustreFileSystem_basic (536.65s)
--- PASS: TestAccFSxLustreFileSystem_deleteConfig (735.57s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/fsx        735.751s

For aws_fsx_openzfs_file_system:

$ export FSX_CREATE_FINAL_BACKUP=true
$ make testacc TESTS="TestAccFSxOpenZFSFileSystem_basic|TestAccFSxOpenZFSFileSystem_deleteConfig" PKG=fsx
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/fsx/... -v -count 1 -parallel 20 -run='TestAccFSxOpenZFSFileSystem_basic|TestAccFSxOpenZFSFileSystem_deleteConfig'  -timeout 360m
=== RUN   TestAccFSxOpenZFSFileSystem_basic
=== PAUSE TestAccFSxOpenZFSFileSystem_basic
=== RUN   TestAccFSxOpenZFSFileSystem_deleteConfig
=== PAUSE TestAccFSxOpenZFSFileSystem_deleteConfig
=== CONT  TestAccFSxOpenZFSFileSystem_basic
=== CONT  TestAccFSxOpenZFSFileSystem_deleteConfig
--- PASS: TestAccFSxOpenZFSFileSystem_basic (559.31s)
--- PASS: TestAccFSxOpenZFSFileSystem_deleteConfig (687.41s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/fsx        687.682s

For aws_fsx_windows_file_system:

$ export FSX_CREATE_FINAL_BACKUP=true
$ make testacc TESTS="TestAccFSxWindowsFileSystem_basic|TestAccFSxWindowsFileSystem_deleteConfig" PKG=fsx
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/fsx/... -v -count 1 -parallel 20 -run='TestAccFSxWindowsFileSystem_basic|TestAccFSxWindowsFileSystem_deleteConfig'  -timeout 360m
=== RUN   TestAccFSxWindowsFileSystem_basic
=== PAUSE TestAccFSxWindowsFileSystem_basic
=== RUN   TestAccFSxWindowsFileSystem_deleteConfig
=== PAUSE TestAccFSxWindowsFileSystem_deleteConfig
=== CONT  TestAccFSxWindowsFileSystem_basic
=== CONT  TestAccFSxWindowsFileSystem_deleteConfig
--- PASS: TestAccFSxWindowsFileSystem_basic (3537.05s)
--- PASS: TestAccFSxWindowsFileSystem_deleteConfig (3817.48s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/fsx        3817.647s

For aws_fsx_ontap_volume:

$ export FSX_CREATE_FINAL_BACKUP=true
$ make testacc TESTS="TestAccFSxONTAPVolume_basic|TestAccFSxONTAPVolume_deleteConfig" PKG=fsx
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.2 test ./internal/service/fsx/... -v -count 1 -parallel 20 -run='TestAccFSxONTAPVolume_basic|TestAccFSxONTAPVolume_deleteConfig'  -timeout 360m
=== RUN   TestAccFSxONTAPVolume_basic
=== PAUSE TestAccFSxONTAPVolume_basic
=== RUN   TestAccFSxONTAPVolume_deleteConfig
=== PAUSE TestAccFSxONTAPVolume_deleteConfig
=== CONT  TestAccFSxONTAPVolume_basic
=== CONT  TestAccFSxONTAPVolume_deleteConfig
--- PASS: TestAccFSxONTAPVolume_basic (2890.19s)
--- PASS: TestAccFSxONTAPVolume_deleteConfig (3160.20s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/fsx        3160.408s

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. documentation Introduces or discusses updates to documentation. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/fsx Issues and PRs that pertain to the fsx service. labels May 26, 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 26, 2024
@acwwat acwwat force-pushed the f-aws_fsx_file_systems-add_delete_config branch from 4d56d1d to 6d4adcd Compare May 26, 2024 21:20
@acwwat acwwat force-pushed the f-aws_fsx_file_systems-add_delete_config branch 3 times, most recently from 5a57c78 to c0dced1 Compare May 27, 2024 01:14
@acwwat acwwat changed the title feat: Add delete config args to aws_fsx_[lustre|openzfs|windows]_file_system resources feat: Add delete config args to aws_fsx_[lustre|openzfs|windows]_file_system and aws_fsx_ontap_volume May 27, 2024
@acwwat acwwat force-pushed the f-aws_fsx_file_systems-add_delete_config branch from c0dced1 to 3acc3c7 Compare May 27, 2024 01:26
@justinretzolk justinretzolk 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 May 28, 2024
@ewbankkit ewbankkit requested a review from a team as a code owner July 18, 2024 18:26
Copy link

Thank you for your contribution! 🚀

Please note that typically Go dependency changes are handled in this repository by dependabot or the maintainers. This is to prevent pull request merge conflicts and further delay reviews of contributions. Remove any changes to the go.mod or go.sum files and commit them into this pull request.

Additional details:

  • Check open pull requests with the dependencies label to view other dependency updates.
  • If this pull request includes an update the AWS Go SDK (or any other dependency) version, only updates submitted via dependabot will be merged. This pull request will need to remove these changes and will need to be rebased after the existing dependency update via dependabot has been merged for this pull request to be reviewed.
  • If this pull request is for supporting a new AWS service:
    • Ensure the new AWS service changes are following the Contributing Guide section on new services, in particular that the dependency addition and initial provider support are in a separate pull request from other changes (e.g. new resources). Contributions not following this item will not be reviewed until the changes are split.
    • If this pull request is already a separate pull request from the above item, you can ignore this message.

Copy link

Thank you for your contribution! 🚀

Please note that typically Go dependency changes are handled in this repository by dependabot or the maintainers. This is to prevent pull request merge conflicts and further delay reviews of contributions. Remove any changes to the go.mod or go.sum files and commit them into this pull request.

Additional details:

  • Check open pull requests with the dependencies label to view other dependency updates.
  • If this pull request includes an update the AWS Go SDK (or any other dependency) version, only updates submitted via dependabot will be merged. This pull request will need to remove these changes and will need to be rebased after the existing dependency update via dependabot has been merged for this pull request to be reviewed.
  • If this pull request is for supporting a new AWS service:
    • Ensure the new AWS service changes are following the Contributing Guide section on new services, in particular that the dependency addition and initial provider support are in a separate pull request from other changes (e.g. new resources). Contributions not following this item will not be reviewed until the changes are split.
    • If this pull request is already a separate pull request from the above item, you can ignore this message.

Copy link
Contributor

@ewbankkit ewbankkit left a comment

Choose a reason for hiding this comment

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

LGTM 🚀.

% AWS_FSX_CREATE_FINAL_BACKUP=1 make testacc TESTARGS='-run=TestAccFSxLustreFileSystem_basic\|TestAccFSxLustreFileSystem_deleteConfig' PKG=fsx 
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/fsx/... -v -count 1 -parallel 20  -run=TestAccFSxLustreFileSystem_basic\|TestAccFSxLustreFileSystem_deleteConfig -timeout 360m
=== RUN   TestAccFSxLustreFileSystem_basic
=== PAUSE TestAccFSxLustreFileSystem_basic
=== RUN   TestAccFSxLustreFileSystem_deleteConfig
=== PAUSE TestAccFSxLustreFileSystem_deleteConfig
=== CONT  TestAccFSxLustreFileSystem_basic
=== CONT  TestAccFSxLustreFileSystem_deleteConfig
--- PASS: TestAccFSxLustreFileSystem_basic (653.90s)
--- PASS: TestAccFSxLustreFileSystem_deleteConfig (756.60s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/fsx	761.351s
% AWS_FSX_CREATE_FINAL_BACKUP=1 make testacc TESTARGS='-run=TestAccFSxOpenZFSFileSystem_basic\|TestAccFSxOpenZFSFileSystem_deleteConfig' PKG=fsx
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/fsx/... -v -count 1 -parallel 20  -run=TestAccFSxOpenZFSFileSystem_basic\|TestAccFSxOpenZFSFileSystem_deleteConfig -timeout 360m
=== RUN   TestAccFSxOpenZFSFileSystem_basic
=== PAUSE TestAccFSxOpenZFSFileSystem_basic
=== RUN   TestAccFSxOpenZFSFileSystem_deleteConfig
=== PAUSE TestAccFSxOpenZFSFileSystem_deleteConfig
=== CONT  TestAccFSxOpenZFSFileSystem_basic
=== CONT  TestAccFSxOpenZFSFileSystem_deleteConfig
--- PASS: TestAccFSxOpenZFSFileSystem_basic (500.45s)
--- PASS: TestAccFSxOpenZFSFileSystem_deleteConfig (685.76s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/fsx	690.417s
% AWS_FSX_CREATE_FINAL_BACKUP=1 make testacc TESTARGS='-run=TestAccFSxONTAPVolume_basic\|TestAccFSxONTAPVolume_deleteConfig\|TestAccFSxWindowsFileSystem_basic\|TestAccFSxWindowsFileSystem_deleteConfig' PKG=fsx                
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/fsx/... -v -count 1 -parallel 20  -run=TestAccFSxONTAPVolume_basic\|TestAccFSxONTAPVolume_deleteConfig\|TestAccFSxWindowsFileSystem_basic\|TestAccFSxWindowsFileSystem_deleteConfig -timeout 360m
=== RUN   TestAccFSxONTAPVolume_basic
=== PAUSE TestAccFSxONTAPVolume_basic
=== RUN   TestAccFSxONTAPVolume_deleteConfig
=== PAUSE TestAccFSxONTAPVolume_deleteConfig
=== RUN   TestAccFSxWindowsFileSystem_basic
=== PAUSE TestAccFSxWindowsFileSystem_basic
=== RUN   TestAccFSxWindowsFileSystem_deleteConfig
=== PAUSE TestAccFSxWindowsFileSystem_deleteConfig
=== CONT  TestAccFSxONTAPVolume_basic
=== CONT  TestAccFSxWindowsFileSystem_basic
=== CONT  TestAccFSxONTAPVolume_deleteConfig
=== CONT  TestAccFSxWindowsFileSystem_deleteConfig
--- PASS: TestAccFSxONTAPVolume_basic (3069.99s)
--- PASS: TestAccFSxONTAPVolume_deleteConfig (3147.06s)
--- PASS: TestAccFSxWindowsFileSystem_deleteConfig (3567.35s)
--- PASS: TestAccFSxWindowsFileSystem_basic (3833.70s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/fsx	3838.338s

@ewbankkit
Copy link
Contributor

@acwwat Thanks for the contribution 🎉 👏.

@ewbankkit ewbankkit merged commit 47c482c into hashicorp:main Jul 18, 2024
41 checks passed
@github-actions github-actions bot added this to the v5.59.0 milestone Jul 18, 2024
Copy link

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

@acwwat acwwat deleted the f-aws_fsx_file_systems-add_delete_config branch July 20, 2024 19:07
Copy link

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 Aug 20, 2024
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. external-maintainer Contribution from a trusted external contributor. service/fsx Issues and PRs that pertain to the fsx 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
3 participants