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

New resource to manage a project's billing account #8112

Merged
merged 9 commits into from
Aug 3, 2023

Conversation

juliocc
Copy link
Contributor

@juliocc juliocc commented Jun 7, 2023

Add new resource and data source to manage a project's billing account.

Fixes hashicorp/terraform-provider-google#3792

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

  • 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 the Release Notes Guide before writing my release note below.
  • 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).

Release Note Template for Downstream PRs (will be copied)

`google_billing_project_info`

@modular-magician
Copy link
Collaborator

Hello! I am a robot who works on Magic Modules PRs.

I've detected that you're a community contributor. @slevenick, a repository maintainer, has been assigned to assist you and help review your changes.

❓ First time contributing? Click here for more details

Your assigned reviewer will help review your code by:

  • Ensuring it's backwards compatible, covers common error cases, etc.
  • Summarizing the change into a user-facing changelog note.
  • Passes tests, either our "VCR" suite, a set of presubmit tests, or with manual test runs.

You can help make sure that review is quick by running local tests and ensuring they're passing in between each push you make to your PR's branch. Also, try to leave a comment with each push you make, as pushes generally don't generate emails.

If your reviewer doesn't get back to you within a week after your most recent change, please feel free to leave a comment on the issue asking them to take a look! In the absence of a dedicated review dashboard most maintainers manage their pending reviews through email, and those will sometimes get lost in their inbox.


@juliocc juliocc marked this pull request as ready for review June 8, 2023 00:08
@modular-magician
Copy link
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 ( 10 files changed, 732 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 10 files changed, 732 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 5 files changed, 92 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2782
Passed tests 2483
Skipped tests: 292
Affected tests: 7

Action taken

Found 7 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
TestAccComputeFirewallPolicyRule_multipleRules|TestAccApigeeKeystoresAliasesKeyCertFile_apigeeKeystoresAliasesKeyCertFileTestExample|TestAccCoreBillingProjectInfo_billingProjectInfoBasicExample|TestAccDataSourceGoogleFirebaseAndroidAppConfig|TestAccLoggingBucketConfigProject_cmekSettings|TestAccDataSourceAlloydbLocations_basic|TestAccApigeeKeystoresAliasesPkcs12_ApigeeKeystoresAliasesPkcs12Example

Get to know how VCR tests work

@modular-magician
Copy link
Collaborator

Tests passed during RECORDING mode:
TestAccApigeeKeystoresAliasesKeyCertFile_apigeeKeystoresAliasesKeyCertFileTestExample[Debug log]
TestAccCoreBillingProjectInfo_billingProjectInfoBasicExample[Debug log]
TestAccDataSourceGoogleFirebaseAndroidAppConfig[Debug log]
TestAccLoggingBucketConfigProject_cmekSettings[Debug log]
TestAccDataSourceAlloydbLocations_basic[Debug log]
TestAccApigeeKeystoresAliasesPkcs12_ApigeeKeystoresAliasesPkcs12Example[Debug log]

Tests failed during RECORDING mode:
TestAccComputeFirewallPolicyRule_multipleRules[Error message] [Debug log]

Please fix these to complete your PR
View the build log or the debug log for each test

@juliocc
Copy link
Contributor Author

juliocc commented Jun 9, 2023

This is ready for review.

I tried creating a data source too but the generated resource is in a different package and can't reuse the schema and read operations. If you know an easy way around that, I can try it again.

@juliocc
Copy link
Contributor Author

juliocc commented Jun 14, 2023

@slevenick can you confirm if the test failures are related to my changes?

Thanks

--- !ruby/object:Api::Resource
name: ProjectInfo
base_url: 'projects/{{project}}/billingInfo'
create_verb: :PUT
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this resource updatable as well? If so, can you add a handwritten update test? If not, you can add immutable: true here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is updatable.

I'll add the update test and update the PR

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@slevenick
Copy link
Contributor

@slevenick can you confirm if the test failures are related to my changes?

Thanks

The test failures are unrelated.

@modular-magician
Copy link
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 ( 13 files changed, 795 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 13 files changed, 795 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 5 files changed, 92 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2924
Passed tests 2620
Skipped tests: 302
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
TestAccBillingProjectInfo_update|TestAccLoggingBucketConfigProject_cmekSettings

Get to know how VCR tests work

@modular-magician
Copy link
Collaborator

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

Rerun these tests in REPLAYING mode to catch issues

$\textcolor{green}{\textsf{No issues found for passed tests after REPLAYING rerun.}}$


$\textcolor{red}{\textsf{Tests failed during RECORDING mode:}}$
TestAccBillingProjectInfo_update[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

@juliocc
Copy link
Contributor Author

juliocc commented Aug 3, 2023

@slevenick I tried creating an update test that creates a project, sets billing account to GetTestBillingAccountFromEnv, and then it updates it to GetTestMasterBillingAccountFromEnv. The test failed because the master billing account used in the CI pipeline cannot be associated to a non-Google project.

I decided to create the project with the regular billing account, remove it, and then set it again to the original billing account. Let me know if this enough to test the update logic.

@modular-magician
Copy link
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 ( 13 files changed, 802 insertions(+), 2 deletions(-))
Terraform Beta: Diff ( 13 files changed, 802 insertions(+), 2 deletions(-))
TF Conversion: Diff ( 5 files changed, 92 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2926
Passed tests 2623
Skipped tests: 302
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
TestAccBillingProjectInfo_update

Get to know how VCR tests work

@modular-magician
Copy link
Collaborator

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

Rerun these tests in REPLAYING mode to catch issues

$\textcolor{green}{\textsf{No issues found for passed tests after REPLAYING rerun.}}$


$\textcolor{green}{\textsf{All tests passed!}}
View the build log or the debug log for each test

Copy link
Contributor

@slevenick slevenick left a comment

Choose a reason for hiding this comment

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

Thanks! Looks like tests pass in CI

@slevenick slevenick merged commit 8c69ef4 into GoogleCloudPlatform:main Aug 3, 2023
18 checks passed
jeperetz pushed a commit to jeperetz/magic-modules that referenced this pull request Aug 10, 2023
…rm#8112)

* Add new resource to set project billing info

* Add data source to extract project billing info

* Add basic test/example to google_billing_project_info

* Add data source test

* Add documentation info

* Add data source documentation

* Remove google_billing_project_info data source

* Add handwritten test for google_billing_project_info

* Update test logic for google_billing_project_info
ron-gal pushed a commit to ron-gal/magic-modules that referenced this pull request Aug 17, 2023
…rm#8112)

* Add new resource to set project billing info

* Add data source to extract project billing info

* Add basic test/example to google_billing_project_info

* Add data source test

* Add documentation info

* Add data source documentation

* Remove google_billing_project_info data source

* Add handwritten test for google_billing_project_info

* Update test logic for google_billing_project_info
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.

Resource is required to link a project to a billing account which isnt a project itself
3 participants