Skip to content

Enhance BigQuery table schema input validation#8460

Merged
hao-nan-li merged 2 commits into
GoogleCloudPlatform:FEATURE-BRANCH-major-release-5.0.0from
wj-chen:FEATURE-BRANCH-major-release-5.0.0
Jul 28, 2023
Merged

Enhance BigQuery table schema input validation#8460
hao-nan-li merged 2 commits into
GoogleCloudPlatform:FEATURE-BRANCH-major-release-5.0.0from
wj-chen:FEATURE-BRANCH-major-release-5.0.0

Conversation

@wj-chen

@wj-chen wj-chen commented Jul 27, 2023

Copy link
Copy Markdown
Member

Fixes hashicorp/terraform-provider-google#14659.

If this PR is for Terraform, I acknowledge that I have:

  • Searched through the issue tracker for an open issue that this either resolves or contributes to, commented on it to claim it, and written "fixes {url}" or "part of {url}" in this PR description. If there were no relevant open issues, I opened one and commented that I would like to work on it (not necessary for very small changes).
  • Ensured that all new fields I added that can be set by a user appear in at least one example (for generated resources) or third_party test (for handwritten resources or update tests).
  • Generated Terraform providers, and ran make test and make lint in the generated providers to ensure it passes unit and linter tests.
  • Ran relevant acceptance tests using my own Google Cloud project and credentials (If the acceptance tests do not yet pass or you are unable to run them, please let your reviewer know).
  • Read Write release notes before writing my release note below.

Release Note Template for Downstream PRs (will be copied)

bigquery: added more input validations for BigQuery table schema

@modular-magician

Copy link
Copy Markdown
Collaborator

Hello! I am a robot. It looks like you are a community contributor. @hao-nan-li, a repository maintainer, has been assigned to review your changes. If you have not received review feedback within 2 business days, please leave a comment on this PR asking them to take a look.

You can help make sure that review is quick by doing a self-review and by running impacted tests locally.

@modular-magician

Copy link
Copy Markdown
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 2 files changed, 160 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 2 files changed, 160 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 1 file changed, 1 insertion(+), 1 deletion(-))

@modular-magician

Copy link
Copy Markdown
Collaborator

Tests analytics

Total tests: 2873
Passed tests 2570
Skipped tests: 299
Affected tests: 4

Action taken

Found 4 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
TestAccContainerAwsNodePool_BetaBasicHandWritten|TestAccBigQueryExternalDataTable_CSV_WithSchema_InvalidSchemas|TestAccBigQueryTable_invalidSchemas|TestAccComputeFirewallPolicyRule_multipleRules

Get to know how VCR tests work

@modular-magician

Copy link
Copy Markdown
Collaborator

$\textcolor{green}{\textsf{Tests passed during RECORDING mode:}}$
TestAccBigQueryExternalDataTable_CSV_WithSchema_InvalidSchemas[Debug log]
TestAccBigQueryTable_invalidSchemas[Debug log]
TestAccComputeFirewallPolicyRule_multipleRules[Debug log]

Rerun these tests in REPLAYING mode to catch issues

$\textcolor{red}{\textsf{Tests failed when rerunning REPLAYING mode:}}$
TestAccBigQueryTable_invalidSchemas[Error message] [Debug log]

Tests failed due to non-determinism or randomness when the VCR replayed the response after the HTTP request was made.

Please fix these to complete your PR. If you believe these test failures to be incorrect or unrelated to your change, or if you have any questions, please raise the concern with your reviewer.


$\textcolor{red}{\textsf{Tests failed during RECORDING mode:}}$
TestAccContainerAwsNodePool_BetaBasicHandWritten[Error message] [Debug log]

$\textcolor{red}{\textsf{Please fix these to complete your PR.}}$
View the build log or the debug log for each test

@wj-chen

wj-chen commented Jul 27, 2023

Copy link
Copy Markdown
Member Author

Received an email about test failure:

test_utils.go:98: no cassette found on disk for TestAccBigQueryTable_invalidSchemas, please replay this testcase in recording mode - open /go/src/github.com/hashicorp/terraform-provider-google-beta/fixtures/TestAccBigQueryTable_invalidSchemas.seed: no such file or directory

Do I need to do something with the provider?

@hao-nan-li

Copy link
Copy Markdown
Contributor

Received an email about test failure:

test_utils.go:98: no cassette found on disk for TestAccBigQueryTable_invalidSchemas, please replay this testcase in recording mode - open /go/src/github.com/hashicorp/terraform-provider-google-beta/fixtures/TestAccBigQueryTable_invalidSchemas.seed: no such file or directory

Do I need to do something with the provider?

Let's re-run it. I would assume this test passed locally right?

@hao-nan-li

Copy link
Copy Markdown
Contributor

/gcbrun

@modular-magician

Copy link
Copy Markdown
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 2 files changed, 160 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 2 files changed, 160 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 1 file changed, 1 insertion(+), 1 deletion(-))

@modular-magician

Copy link
Copy Markdown
Collaborator

Tests analytics

Total tests: 2873
Passed tests 2572
Skipped tests: 299
Affected tests: 2

Action taken

Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
TestAccContainerAwsNodePool_BetaBasicHandWritten|TestAccBigQueryTable_invalidSchemas

Get to know how VCR tests work

@modular-magician

Copy link
Copy Markdown
Collaborator

$\textcolor{green}{\textsf{Tests passed during RECORDING mode:}}$
TestAccBigQueryTable_invalidSchemas[Debug log]

Rerun these tests in REPLAYING mode to catch issues

$\textcolor{red}{\textsf{Tests failed when rerunning REPLAYING mode:}}$
TestAccBigQueryTable_invalidSchemas[Error message] [Debug log]

Tests failed due to non-determinism or randomness when the VCR replayed the response after the HTTP request was made.

Please fix these to complete your PR. If you believe these test failures to be incorrect or unrelated to your change, or if you have any questions, please raise the concern with your reviewer.


$\textcolor{red}{\textsf{Tests failed during RECORDING mode:}}$
TestAccContainerAwsNodePool_BetaBasicHandWritten[Error message] [Debug log]

$\textcolor{red}{\textsf{Please fix these to complete your PR.}}$
View the build log or the debug log for each test

@wj-chen

wj-chen commented Jul 27, 2023

Copy link
Copy Markdown
Member Author

Seeing the same failure for my test TestAccBigQueryTable_invalidSchemas: "test_utils.go:98: no cassette found on disk for TestAccBigQueryTable_invalidSchemas, please replay this testcase in recording mode - open /go/src/github.com/hashicorp/terraform-provider-google-beta/fixtures/TestAccBigQueryTable_invalidSchemas.seed: no such file or directory". I don't quite understand the suggested action.

Then there is another separate failure in TestAccContainerAwsNodePool_BetaBasicHandWritten which is unrelated to this change.

@hao-nan-li

Copy link
Copy Markdown
Contributor

I talked to my team about this, this test is more a unit test rather than an acceptance test, reason why we see that error message. I would suggest the following:

  1. Paste the log of local run showing this passed.
  2. add skip_test.

And don't worry about the other failed test, it is unrelated.

@wj-chen

wj-chen commented Jul 28, 2023

Copy link
Copy Markdown
Member Author

I talked to my team about this, this test is more a unit test rather than an acceptance test, reason why we see that error message. I would suggest the following:

  1. Paste the log of local run showing this passed.
  2. add skip_test.

And don't worry about the other failed test, it is unrelated.

Thank you for the guidance! Here is the local test run result:

wjchen@wjchen:/google/src/cloud/wjchen/osconfig-agent-cider/google3/experimental/users/wjchen/terraform-provider-google$ make testacc TEST=./google TESTARGS="-run=TestAccBigQueryTable_invalidSchemas"
TF_ACC=1 TF_SCHEMA_PANIC_ON_ERROR=1 go test ./google -v -run=TestAccBigQueryTable_invalidSchemas -timeout 240m -ldflags="-X=github.com/hashicorp/terraform-provider-google/version.ProviderVersion=acc"
=== RUN   TestAccBigQueryTable_invalidSchemas
=== PAUSE TestAccBigQueryTable_invalidSchemas
=== CONT  TestAccBigQueryTable_invalidSchemas
--- PASS: TestAccBigQueryTable_invalidSchemas (0.87s)
PASS
ok      github.com/hashicorp/terraform-provider-google/google   0.996s

What's the difference between unit test and acceptance test? And by adding skip_test did you mean adding it in mmv1/products/bigquery/Table.yaml? Doesn't that only do something to the "examples"?

@hao-nan-li

Copy link
Copy Markdown
Contributor

I talked to my team about this, this test is more a unit test rather than an acceptance test, reason why we see that error message. I would suggest the following:

  1. Paste the log of local run showing this passed.
  2. add skip_test.

And don't worry about the other failed test, it is unrelated.

Thank you for the guidance! Here is the local test run result:

wjchen@wjchen:/google/src/cloud/wjchen/osconfig-agent-cider/google3/experimental/users/wjchen/terraform-provider-google$ make testacc TEST=./google TESTARGS="-run=TestAccBigQueryTable_invalidSchemas"
TF_ACC=1 TF_SCHEMA_PANIC_ON_ERROR=1 go test ./google -v -run=TestAccBigQueryTable_invalidSchemas -timeout 240m -ldflags="-X=github.com/hashicorp/terraform-provider-google/version.ProviderVersion=acc"
=== RUN   TestAccBigQueryTable_invalidSchemas
=== PAUSE TestAccBigQueryTable_invalidSchemas
=== CONT  TestAccBigQueryTable_invalidSchemas
--- PASS: TestAccBigQueryTable_invalidSchemas (0.87s)
PASS
ok      github.com/hashicorp/terraform-provider-google/google   0.996s

What's the difference between unit test and acceptance test? And by adding skip_test did you mean adding it in mmv1/products/bigquery/Table.yaml? Doesn't that only do something to the "examples"?

Thanks for sharing the log. As far as skipping the test, I think we can start with something like 366d684 to skip the VCR test.

@modular-magician

Copy link
Copy Markdown
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 2 files changed, 162 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 2 files changed, 162 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 1 file changed, 1 insertion(+), 1 deletion(-))

@modular-magician

Copy link
Copy Markdown
Collaborator

Tests analytics

Total tests: 2873
Passed tests 2572
Skipped tests: 300
Affected tests: 1

Action taken

Found 1 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
TestAccContainerAwsNodePool_BetaBasicHandWritten

Get to know how VCR tests work

@modular-magician

Copy link
Copy Markdown
Collaborator

$\textcolor{red}{\textsf{Tests failed during RECORDING mode:}}$
TestAccContainerAwsNodePool_BetaBasicHandWritten[Error message] [Debug log]

$\textcolor{red}{\textsf{Please fix these to complete your PR.}}$
View the build log or the debug log for each test

@hao-nan-li hao-nan-li merged commit ccbd669 into GoogleCloudPlatform:FEATURE-BRANCH-major-release-5.0.0 Jul 28, 2023
wj-chen added a commit to wj-chen/magic-modules that referenced this pull request Aug 1, 2023
)

* Enhance BigQuery table schema input validation

* skip TestAccBigQueryTable_invalidSchemas in VCR test
zli82016 pushed a commit that referenced this pull request Aug 4, 2023
* Enhance BigQuery table schema input validation

* skip TestAccBigQueryTable_invalidSchemas in VCR test
wj-chen added a commit to wj-chen/magic-modules that referenced this pull request Aug 10, 2023
wj-chen added a commit to wj-chen/magic-modules that referenced this pull request Aug 10, 2023
rainshen49 pushed a commit to rainshen49/magic-modules that referenced this pull request Aug 14, 2023
)

* Enhance BigQuery table schema input validation

* skip TestAccBigQueryTable_invalidSchemas in VCR test
melinath added a commit that referenced this pull request Aug 15, 2023
* add google_bigquery_table to version 5 upgrade doc for #8460

* update wording

---------

Co-authored-by: Stephen Lewis (Burrows) <stephenrlewis@google.com>
nevzheng pushed a commit to nevzheng/magic-modules that referenced this pull request Aug 16, 2023
…tform#8460 (GoogleCloudPlatform#8611)

* add google_bigquery_table to version 5 upgrade doc for GoogleCloudPlatform#8460

* update wording

---------

Co-authored-by: Stephen Lewis (Burrows) <stephenrlewis@google.com>
rainshen49 pushed a commit to rainshen49/magic-modules that referenced this pull request Aug 21, 2023
…tform#8460 (GoogleCloudPlatform#8611)

* add google_bigquery_table to version 5 upgrade doc for GoogleCloudPlatform#8460

* update wording

---------

Co-authored-by: Stephen Lewis (Burrows) <stephenrlewis@google.com>
joelkattapuram pushed a commit to joelkattapuram/magic-modules that referenced this pull request Sep 20, 2023
…tform#8460 (GoogleCloudPlatform#8611)

* add google_bigquery_table to version 5 upgrade doc for GoogleCloudPlatform#8460

* update wording

---------

Co-authored-by: Stephen Lewis (Burrows) <stephenrlewis@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants