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_ec2_network_insights_analysis - new resource #23532

Conversation

george-richardson
Copy link
Contributor

@george-richardson george-richardson commented Mar 6, 2022

Adds a new resource aws_ec2_network_insights_analysis.

This is a minimal useful implementation that can be used to get a boolean result of the analysis. Much more information is accessible in the API, but I'm not sure how to translate to the Terraform schema as there are a lot of nested objects. If someone can give me some pointers here, I would be happy to open another PR adding more attributes.

Example config:

resource "aws_ec2_network_insights_path" "path" {
  source      = aws_network_interface.source.id
  destination = aws_network_interface.destination.id
  protocol    = "tcp"
}
resource "aws_ec2_network_insights_analysis" "analysis" {
  network_insights_path_id = aws_ec2_network_insights_path.path.id
}

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 #16715.

Output from acceptance testing:

$ make testacc TESTS=TestAccNetworkInsightsAnalysis PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 1 -run='TestAccNetworkInsightsAnalysis'  -timeout 180m
=== RUN   TestAccNetworkInsightsAnalysis_basic
=== PAUSE TestAccNetworkInsightsAnalysis_basic
=== RUN   TestAccNetworkInsightsAnalysis_disappears
=== PAUSE TestAccNetworkInsightsAnalysis_disappears
=== RUN   TestAccNetworkInsightsAnalysis_tags
=== PAUSE TestAccNetworkInsightsAnalysis_tags
=== RUN   TestAccNetworkInsightsAnalysis_filterInARNs
=== PAUSE TestAccNetworkInsightsAnalysis_filterInARNs
=== RUN   TestAccNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccNetworkInsightsAnalysis_basic
--- PASS: TestAccNetworkInsightsAnalysis_basic (55.53s)
=== CONT  TestAccNetworkInsightsAnalysis_filterInARNs
--- PASS: TestAccNetworkInsightsAnalysis_filterInARNs (101.12s)
=== CONT  TestAccNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccNetworkInsightsAnalysis_waitForCompletion (46.31s)
=== CONT  TestAccNetworkInsightsAnalysis_tags
--- PASS: TestAccNetworkInsightsAnalysis_tags (89.93s)
=== CONT  TestAccNetworkInsightsAnalysis_disappears
--- PASS: TestAccNetworkInsightsAnalysis_disappears (50.93s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        345.776s

(reduced parallelism because I was hitting VPC limits in my test account)

@github-actions github-actions bot added needs-triage Waiting for first response or review from a maintainer. size/XL Managed by automation to categorize the size of a PR. documentation Introduces or discusses updates to documentation. provider Pertains to the provider itself, rather than any interaction with AWS. 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, 2022
@george-richardson george-richardson force-pushed the f-aws_ec2_network_insights_analysis-new-resource branch from 832443a to 8135461 Compare March 6, 2022 13:44
@george-richardson george-richardson marked this pull request as ready for review March 6, 2022 16:05
@justinretzolk justinretzolk added new-resource Introduces a new resource. and removed needs-triage Waiting for first response or review from a maintainer. labels Mar 7, 2022
Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsPath_' 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=TestAccVPCNetworkInsightsPath_ -timeout 180m
=== RUN   TestAccVPCNetworkInsightsPath_basic
=== PAUSE TestAccVPCNetworkInsightsPath_basic
=== RUN   TestAccVPCNetworkInsightsPath_disappears
=== PAUSE TestAccVPCNetworkInsightsPath_disappears
=== RUN   TestAccVPCNetworkInsightsPath_tags
=== PAUSE TestAccVPCNetworkInsightsPath_tags
=== RUN   TestAccVPCNetworkInsightsPath_sourceIP
=== PAUSE TestAccVPCNetworkInsightsPath_sourceIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationIP
=== PAUSE TestAccVPCNetworkInsightsPath_destinationIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationPort
=== PAUSE TestAccVPCNetworkInsightsPath_destinationPort
=== CONT  TestAccVPCNetworkInsightsPath_basic
=== CONT  TestAccVPCNetworkInsightsPath_sourceIP
--- PASS: TestAccVPCNetworkInsightsPath_basic (32.94s)
=== CONT  TestAccVPCNetworkInsightsPath_tags
--- PASS: TestAccVPCNetworkInsightsPath_sourceIP (53.66s)
=== CONT  TestAccVPCNetworkInsightsPath_disappears
--- PASS: TestAccVPCNetworkInsightsPath_disappears (27.09s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationPort
--- PASS: TestAccVPCNetworkInsightsPath_tags (68.74s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationIP
--- PASS: TestAccVPCNetworkInsightsPath_destinationPort (49.29s)
--- PASS: TestAccVPCNetworkInsightsPath_destinationIP (49.52s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	158.503s
Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis_' 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=TestAccVPCNetworkInsightsAnalysis_ -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysis_basic
=== PAUSE TestAccVPCNetworkInsightsAnalysis_basic
=== RUN   TestAccVPCNetworkInsightsAnalysis_disappears
=== PAUSE TestAccVPCNetworkInsightsAnalysis_disappears
=== RUN   TestAccVPCNetworkInsightsAnalysis_tags
=== PAUSE TestAccVPCNetworkInsightsAnalysis_tags
=== RUN   TestAccVPCNetworkInsightsAnalysis_filterInARNs
=== PAUSE TestAccVPCNetworkInsightsAnalysis_filterInARNs
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysis_basic
=== CONT  TestAccVPCNetworkInsightsAnalysis_filterInARNs
--- PASS: TestAccVPCNetworkInsightsAnalysis_basic (55.37s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (40.52s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_tags
--- PASS: TestAccVPCNetworkInsightsAnalysis_filterInARNs (107.52s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_disappears
--- PASS: TestAccVPCNetworkInsightsAnalysis_disappears (49.21s)
--- PASS: TestAccVPCNetworkInsightsAnalysis_tags (80.52s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	180.868s
@github-actions github-actions bot added service/vpc Issues and PRs that pertain to the vpc service. and removed service/ec2 Issues and PRs that pertain to the ec2 service. labels Aug 22, 2022
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 🚀.

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis' 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=TestAccVPCNetworkInsightsAnalysis -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysisDataSource_basic
=== PAUSE TestAccVPCNetworkInsightsAnalysisDataSource_basic
=== RUN   TestAccVPCNetworkInsightsAnalysis_basic
=== PAUSE TestAccVPCNetworkInsightsAnalysis_basic
=== RUN   TestAccVPCNetworkInsightsAnalysis_disappears
=== PAUSE TestAccVPCNetworkInsightsAnalysis_disappears
=== RUN   TestAccVPCNetworkInsightsAnalysis_tags
=== PAUSE TestAccVPCNetworkInsightsAnalysis_tags
=== RUN   TestAccVPCNetworkInsightsAnalysis_filterInARNs
=== PAUSE TestAccVPCNetworkInsightsAnalysis_filterInARNs
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysisDataSource_basic
=== CONT  TestAccVPCNetworkInsightsAnalysis_tags
--- PASS: TestAccVPCNetworkInsightsAnalysisDataSource_basic (51.00s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_tags (85.14s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_filterInARNs
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (45.97s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_disappears
--- PASS: TestAccVPCNetworkInsightsAnalysis_disappears (47.93s)
=== CONT  TestAccVPCNetworkInsightsAnalysis_basic
--- PASS: TestAccVPCNetworkInsightsAnalysis_filterInARNs (93.61s)
--- PASS: TestAccVPCNetworkInsightsAnalysis_basic (53.21s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	202.369s
% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsPath' 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=TestAccVPCNetworkInsightsPath -timeout 180m
=== RUN   TestAccVPCNetworkInsightsPathDataSource_basic
=== PAUSE TestAccVPCNetworkInsightsPathDataSource_basic
=== RUN   TestAccVPCNetworkInsightsPath_basic
=== PAUSE TestAccVPCNetworkInsightsPath_basic
=== RUN   TestAccVPCNetworkInsightsPath_disappears
=== PAUSE TestAccVPCNetworkInsightsPath_disappears
=== RUN   TestAccVPCNetworkInsightsPath_tags
=== PAUSE TestAccVPCNetworkInsightsPath_tags
=== RUN   TestAccVPCNetworkInsightsPath_sourceIP
=== PAUSE TestAccVPCNetworkInsightsPath_sourceIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationIP
=== PAUSE TestAccVPCNetworkInsightsPath_destinationIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationPort
=== PAUSE TestAccVPCNetworkInsightsPath_destinationPort
=== CONT  TestAccVPCNetworkInsightsPathDataSource_basic
=== CONT  TestAccVPCNetworkInsightsPath_sourceIP
--- PASS: TestAccVPCNetworkInsightsPathDataSource_basic (22.16s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationPort
--- PASS: TestAccVPCNetworkInsightsPath_sourceIP (39.05s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationIP
--- PASS: TestAccVPCNetworkInsightsPath_destinationPort (39.46s)
=== CONT  TestAccVPCNetworkInsightsPath_disappears
--- PASS: TestAccVPCNetworkInsightsPath_destinationIP (39.54s)
=== CONT  TestAccVPCNetworkInsightsPath_tags
--- PASS: TestAccVPCNetworkInsightsPath_disappears (21.01s)
=== CONT  TestAccVPCNetworkInsightsPath_basic
--- PASS: TestAccVPCNetworkInsightsPath_basic (23.00s)
--- PASS: TestAccVPCNetworkInsightsPath_tags (53.21s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	135.938s

@ewbankkit
Copy link
Contributor

@george-richardson Thanks for the contribution 🎉 👏.

…bute.

Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (40.52s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	44.715s
Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (38.82s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	44.213s
…tribute.

Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (42.20s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	46.587s
…ribute.

Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsAnalysis_waitForCompletion -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== PAUSE TestAccVPCNetworkInsightsAnalysis_waitForCompletion
=== CONT  TestAccVPCNetworkInsightsAnalysis_waitForCompletion
--- PASS: TestAccVPCNetworkInsightsAnalysis_waitForCompletion (40.25s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	45.050s
… ACCTEST_PARALLELISM=2

==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 2  -run=TestAccVPCNetworkInsightsPath_ -timeout 180m
=== RUN   TestAccVPCNetworkInsightsPath_basic
=== PAUSE TestAccVPCNetworkInsightsPath_basic
=== RUN   TestAccVPCNetworkInsightsPath_disappears
=== PAUSE TestAccVPCNetworkInsightsPath_disappears
=== RUN   TestAccVPCNetworkInsightsPath_tags
=== PAUSE TestAccVPCNetworkInsightsPath_tags
=== RUN   TestAccVPCNetworkInsightsPath_sourceIP
=== PAUSE TestAccVPCNetworkInsightsPath_sourceIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationIP
=== PAUSE TestAccVPCNetworkInsightsPath_destinationIP
=== RUN   TestAccVPCNetworkInsightsPath_destinationPort
=== PAUSE TestAccVPCNetworkInsightsPath_destinationPort
=== CONT  TestAccVPCNetworkInsightsPath_basic
=== CONT  TestAccVPCNetworkInsightsPath_sourceIP
--- PASS: TestAccVPCNetworkInsightsPath_basic (25.86s)
=== CONT  TestAccVPCNetworkInsightsPath_tags
--- PASS: TestAccVPCNetworkInsightsPath_sourceIP (41.87s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationPort
--- PASS: TestAccVPCNetworkInsightsPath_tags (51.12s)
=== CONT  TestAccVPCNetworkInsightsPath_destinationIP
--- PASS: TestAccVPCNetworkInsightsPath_destinationPort (37.96s)
=== CONT  TestAccVPCNetworkInsightsPath_disappears
--- PASS: TestAccVPCNetworkInsightsPath_disappears (21.85s)
--- PASS: TestAccVPCNetworkInsightsPath_destinationIP (41.15s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	122.264s
Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsPathDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsPathDataSource_ -timeout 180m
=== RUN   TestAccVPCNetworkInsightsPathDataSource_basic
=== PAUSE TestAccVPCNetworkInsightsPathDataSource_basic
=== CONT  TestAccVPCNetworkInsightsPathDataSource_basic
--- PASS: TestAccVPCNetworkInsightsPathDataSource_basic (24.09s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	28.145s
Acceptance test output:

% make testacc TESTARGS='-run=TestAccVPCNetworkInsightsAnalysisDataSource_' PKG=ec2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./internal/service/ec2/... -v -count 1 -parallel 20  -run=TestAccVPCNetworkInsightsAnalysisDataSource_ -timeout 180m
=== RUN   TestAccVPCNetworkInsightsAnalysisDataSource_basic
=== PAUSE TestAccVPCNetworkInsightsAnalysisDataSource_basic
=== CONT  TestAccVPCNetworkInsightsAnalysisDataSource_basic
--- PASS: TestAccVPCNetworkInsightsAnalysisDataSource_basic (51.24s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	55.998s
@ewbankkit ewbankkit added the new-data-source Introduces a new data source. label Aug 23, 2022
@ewbankkit ewbankkit merged commit ba986c9 into hashicorp:main Aug 23, 2022
@github-actions github-actions bot added this to the v4.28.0 milestone Aug 23, 2022
@github-actions
Copy link

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

@github-actions
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 Sep 26, 2022
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. new-data-source Introduces a new data source. new-resource Introduces a new resource. provider Pertains to the provider itself, rather than any interaction with AWS. service/vpc Issues and PRs that pertain to the vpc 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.

VPC Reachability Analyzer / EC2 Network Insights
3 participants