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

Promote Billing Budgets to GA #4273

Merged

Conversation

upodroid
Copy link
Contributor

@upodroid upodroid commented Dec 1, 2020

Fixes: hashicorp/terraform-provider-google#7877
Fixes: hashicorp/terraform-provider-google#7890

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).
  • Generated Terraform, and ran make test and make lint to ensure it passes unit and linter tests.
  • 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).
  • Ran relevant acceptance tests (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.

Release Note Template for Downstream PRs (will be copied)

billing: import support for `google_billing_budget` never functioned correctly, and has been removed.
billing: promoted `google_billing_budget` to GA

@google-cla google-cla bot added the cla: yes label Dec 1, 2020
@modular-magician
Copy link
Collaborator

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

I have detected that you are a community contributor, so your PR will be assigned to someone with a commit-bit on this repo for initial review.

Thanks for your contribution! A human will be with you soon.

@rileykarson, please review this PR or find an appropriate assignee.

@upodroid
Copy link
Contributor Author

upodroid commented Dec 1, 2020

FYI, the API is bugged.

Weidly, it is close to this example https://cloud.google.com/billing/docs/how-to/budget-api#create

Beta API:

020/12/01 17:10:06 [DEBUG] Retry Transport: request attempt 0
2020/12/01 17:10:06 [DEBUG] Google API Request Details:
---[ REQUEST ]---------------------------------------
POST /v1beta1/billingAccounts/REDACTED/budgets?alt=json HTTP/1.1
Host: billingbudgets.googleapis.com
User-Agent: Terraform/0.13.2 (+https://www.terraform.io) Terraform-Plugin-SDK/2.1.0 terraform-provider-google-beta/acc
Content-Length: 539
Content-Type: application/json
X-Goog-User-Project: REDACTED
Accept-Encoding: gzip

{
 "budget": {
  "allUpdatesRule": {
   "disableDefaultIamRecipients": true,
   "monitoringNotificationChannels": [
    "projects/REDCTED/notificationChannels/10234053628872119635"
   ],
   "schemaVersion": "1.0"
  },
  "amount": {
   "specifiedAmount": {
    "currencyCode": "USD",
    "units": "100000"
   }
  },
  "budgetFilter": {
   "creditTypesTreatment": "INCLUDE_ALL_CREDITS",
   "projects": [
    "projects/REDACTED"
   ]
  },
  "displayName": "Example Billing Budgetm2tzoib1ig",
  "thresholdRules": [
   {
    "spendBasis": "CURRENT_SPEND",
    "thresholdPercent": 1
   },
   {
    "spendBasis": "FORECASTED_SPEND",
    "thresholdPercent": 1
   }
  ]
 }
}

-----------------------------------------------------
2020/12/01 17:10:08 [DEBUG] Google API Response Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Transfer-Encoding: chunked
Alt-Svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Cache-Control: private
Content-Type: application/json; charset=UTF-8
Date: Tue, 01 Dec 2020 17:10:08 GMT
Server: ESF
Vary: Origin
Vary: X-Origin
Vary: Referer
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 0

314
{
  "name": "billingAccounts/REDACTED/budgets/7e96c957-e432-4726-b340-e46f97bad598",
  "displayName": "Example Billing Budgetm2tzoib1ig",
  "budgetFilter": {
    "projects": [
"projects/550924169191"
    ],
    "creditTypesTreatment": "INCLUDE_ALL_CREDITS"
  },
  "amount": {
    "specifiedAmount": {
      "currencyCode": "USD",
      "units": "100000"
    }
  },
  "thresholdRules": [
    {
      "thresholdPercent": 1,
      "spendBasis": "CURRENT_SPEND"
    },
    {
      "thresholdPercent": 1,
      "spendBasis": "FORECASTED_SPEND"
    }
  ],
  "allUpdatesRule": {
    "monitoringNotificationChannels": [
"projects/REDACTED/notificationChannels/10234053628872119635"
    ],
    "disableDefaultIamRecipients": true
  },
  "etag": "1606842607287653"
}

0


-----------------------------------------------------
2020/12/01 17:10:08 [DEBUG] Retry Transport: Stopping retries, last request was successful
2020/12/01 17:10:08 [DEBUG] Retry Transport: Returning after 1 attempts

GA API:

020/12/01 17:08:54 [DEBUG] Retry Transport: request attempt 0
2020/12/01 17:08:54 [DEBUG] Google API Request Details:
---[ REQUEST ]---------------------------------------
POST /v1/billingAccounts/REDACTED/budgets?alt=json HTTP/1.1
Host: billingbudgets.googleapis.com
User-Agent: Terraform/0.13.2 (+https://www.terraform.io) Terraform-Plugin-SDK/2.1.0 terraform-provider-google-beta/acc
Content-Length: 542
Content-Type: application/json
X-Goog-User-Project: REDACTED
Accept-Encoding: gzip

{
 "budget": {
  "amount": {
   "specifiedAmount": {
    "currencyCode": "USD",
    "units": "100000"
   }
  },
  "budgetFilter": {
   "creditTypesTreatment": "INCLUDE_ALL_CREDITS",
   "projects": [
    "projects/REDACTED"
   ]
  },
  "displayName": "Example Billing Budget3st1ufdnwb",
  "notificationsRule": {
   "disableDefaultIamRecipients": true,
   "monitoringNotificationChannels": [
    "projects/REDACTED/notificationChannels/13963772058602676146"
   ],
   "schemaVersion": "1.0"
  },
  "thresholdRules": [
   {
    "spendBasis": "CURRENT_SPEND",
    "thresholdPercent": 1
   },
   {
    "spendBasis": "FORECASTED_SPEND",
    "thresholdPercent": 1
   }
  ]
 }
}

-----------------------------------------------------
2020/12/01 17:08:55 [DEBUG] Google API Response Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 400 Bad Request
Connection: close
Transfer-Encoding: chunked
Alt-Svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Cache-Control: private
Content-Type: application/json; charset=UTF-8
Date: Tue, 01 Dec 2020 17:08:55 GMT
Server: ESF
Vary: Origin
Vary: X-Origin
Vary: Referer
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 0

1e8
{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"budget\" at 'budget': Cannot find field.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "budget",
            "description": "Invalid JSON payload received. Unknown name \"budget\" at 'budget': Cannot find field."
          }
        ]
      }
    ]
  }
}

I opened a case with Google for answers.

@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 6 files changed, 1485 insertions(+), 8 deletions(-))
Terraform Beta: Diff ( 5 files changed, 255 insertions(+), 82 deletions(-))
TF Conversion: Diff ( 2 files changed, 354 insertions(+))

@rileykarson
Copy link
Member

Weird! Post here when you've gotten an answer.

Co-authored-by: upodroid <cy@borg.dev>
Co-authored-by: upodroid <cy@borg.dev>
@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 6 files changed, 1438 insertions(+), 11 deletions(-))
Terraform Beta: Diff ( 4 files changed, 149 insertions(+), 26 deletions(-))
TF Conversion: Diff ( 2 files changed, 354 insertions(+))

@upodroid
Copy link
Contributor Author

upodroid commented Dec 1, 2020

I figured out the bug. Basically in v1, the budget isn't nested anymore. The example was out of date.

Co-authored-by: upodroid <cy@borg.dev>
@upodroid
Copy link
Contributor Author

upodroid commented Dec 1, 2020

I'm getting a weird crash.

My diffs haven't changed the resourceBillingBudgetImport function so i'm not sure where the project is being pulled.

This is also another API that mangles project_ids and converts them to project numbers :(((((((

----------------------------------------------------
2020/12/01 22:15:06 [DEBUG] Retry Transport: Stopping retries, last request was successful
2020/12/01 22:15:06 [DEBUG] Retry Transport: Returning after 1 attempts
2020/12/01 22:15:14 [INFO] Authenticating using DefaultClient...
2020/12/01 22:15:14 [INFO]   -- Scopes: [https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloud-identity https://www.googleapis.com/auth/ndev.clouddns.readwrite https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email]
2020/12/01 22:15:14 [DEBUG] matching ID billingAccounts/REDACTED/budgets/60bf5a2e-5fe1-4c7e-adea-041b6ec6bfcf to regex (?P<name>[^ ]+).
2020/12/01 22:15:14 [DEBUG] importing name = billingAccounts/REDACTED/budgets/60bf5a2e-5fe1-4c7e-adea-041b6ec6bfcf
panic: Invalid address to set: []string{"project"}

goroutine 911 [running]:
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*ResourceData).Set(0xc00018b000, 0x3fbb0ff, 0x7, 0x38d7420, 0xc0011ab9e0, 0xc00004212f, 0xf)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/helper/schema/resource_data.go:188 +0x36f
github.com/hashicorp/terraform-provider-google-beta/google-beta.setDefaultValues(0x400ceca, 0x22, 0x46adfc0, 0xc00018b000, 0xc00118cc00, 0x0, 0x0)
	/Users/REDACTED/go/src/github.com/hashicorp/terraform-provider-google-beta/google-beta/import.go:82 +0x4dc
github.com/hashicorp/terraform-provider-google-beta/google-beta.parseImportId(0xc000b1a040, 0x2, 0x2, 0x46adfc0, 0xc00018b000, 0xc00118cc00, 0x1865960, 0xc00018b000)
	/Users/REDACTED/go/src/github.com/hashicorp/terraform-provider-google-beta/google-beta/import.go:65 +0x818
github.com/hashicorp/terraform-provider-google-beta/google-beta.resourceBillingBudgetImport(0xc00018b000, 0x3f955a0, 0xc00118cc00, 0x15, 0xc000931c28, 0xc0013b6801, 0x100fb10, 0xc000322000)
	/Users/REDACTED/go/src/github.com/hashicorp/terraform-provider-google-beta/google-beta/resource_billing_budget.go:516 +0xab
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Provider).ImportState(0xc00034a820, 0x4670040, 0xc0011a1cc0, 0xc000157a60, 0xc000176660, 0x51, 0x4103254f02cfd351, 0x3ef9d40, 0xc210368, 0x10, ...)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/helper/schema/provider.go:369 +0x328
github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/plugin.(*GRPCProviderServer).ImportResourceState(0xc00114aa00, 0x4670040, 0xc0011a1cc0, 0xc0011a1c80, 0xc00114aa00, 0xc00114aa10, 0x42750e8)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/helper/plugin/grpc_provider.go:1018 +0xe5
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ImportResourceState_Handler.func1(0x4670040, 0xc0011a1cc0, 0x3e13a60, 0xc0011a1c80, 0xc0011a1cc0, 0x3b63360, 0x1, 0xc000c6bfa0)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/tfplugin5/tfplugin5.pb.go:3330 +0x89
github.com/hashicorp/terraform-plugin-sdk/v2/plugin.Serve.func3.1(0x4670100, 0xc001193050, 0x3e13a60, 0xc0011a1c80, 0xc000c6bf80, 0xc000c6bfa0, 0xc0006e9ba0, 0x111ac86, 0x3d28860, 0xc001193050)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/plugin/serve.go:76 +0x87
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ImportResourceState_Handler(0x3f303c0, 0xc00114aa00, 0x4670100, 0xc001193050, 0xc000b92420, 0xc00114ab40, 0x4670100, 0xc001193050, 0xc000cf2150, 0x6a)
	/Users/REDACTED/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/tfplugin5/tfplugin5.pb.go:3332 +0x150
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00075c540, 0x46afca0, 0xc001429380, 0xc000f6ed00, 0xc000dc2b70, 0x581f5f8, 0x0, 0x0, 0x0)
	/Users/REDACTED/go/pkg/mod/google.golang.org/grpc@v1.31.1/server.go:1180 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc00075c540, 0x46afca0, 0xc001429380, 0xc000f6ed00, 0x0)
	/Users/REDACTED/go/pkg/mod/google.golang.org/grpc@v1.31.1/server.go:1503 +0xd05
google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc0011430f0, 0xc00075c540, 0x46afca0, 0xc001429380, 0xc000f6ed00)
	/Users/REDACTED/go/pkg/mod/google.golang.org/grpc@v1.31.1/server.go:843 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
	/Users/REDACTED/go/pkg/mod/google.golang.org/grpc@v1.31.1/server.go:841 +0x1fd
FAIL	github.com/hashicorp/terraform-provider-google-beta/google-beta	43.795s
FAIL

@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 133 files changed, 2395 insertions(+), 193 deletions(-))
Terraform Beta: Diff ( 154 files changed, 1422 insertions(+), 392 deletions(-))
TF Conversion: Diff ( 2 files changed, 338 insertions(+))

@rileykarson
Copy link
Member

I figured out the bug. Basically in v1, the budget isn't nested anymore. The example was out of date.

I think we'll want to preserve the structure of the resource as it was, and convert the message we send to the API using an encoder. Same as before- breaking changes to resources are something we'd really like to avoid (even though admittedly, this API is making it pretty hard for us)

@rileykarson
Copy link
Member

For the crash, it appears that import never worked for the resource. It's been a restriction that some beta tests can't test import, and I guess we never actually ran import on the resource. It tries to set a value on the project field which doesn't exist for the resource.

You can disable import.

@upodroid
Copy link
Contributor Author

upodroid commented Dec 3, 2020

We are good to go now. All tests are passing except the basic one.

=== CONT  TestAccBillingBudget_billingBudgetBasicExample
    provider_test.go:266: Step 1/1 error: After applying this test step, the plan was not empty.
        stdout:
        
        
        An execution plan has been generated and is shown below.
        Resource actions are indicated with the following symbols:
          ~ update in-place
        
        Terraform will perform the following actions:
        
          # google_billing_budget.budget will be updated in-place
          ~ resource "google_billing_budget" "budget" {
                billing_account = "REDACTED"
                display_name    = "Example Billing Budget08i12n8njy"
                id              = "billingAccounts/REDACTED/budgets/c8358785-4e34-4d5b-97a7-b9f169b54ba3"
                name            = "billingAccounts/REDACTED/budgets/c8358785-4e34-4d5b-97a7-b9f169b54ba3"
        
                amount {
                    last_period_amount = false
        
                    specified_amount {
                        currency_code = "USD"
                        nanos         = 0
                        units         = "100000"
                    }
                }
        
              - budget_filter {
                  - credit_types           = [] -> null
                  - credit_types_treatment = "INCLUDE_ALL_CREDITS" -> null
                  - labels                 = {} -> null
                  - projects               = [] -> null
                  - services               = [] -> null
                  - subaccounts            = [] -> null
                }
        
                threshold_rules {
                    spend_basis       = "CURRENT_SPEND"
                    threshold_percent = 0.5
                }
            }
        
        Plan: 0 to add, 1 to change, 0 to destroy.
--- FAIL: TestAccBillingBudget_billingBudgetBasicExample (33.08s)
--- PASS: TestAccBillingBudget_billingBudgetLastperiodExample (43.70s)
--- PASS: TestAccBillingBudget_billingBudgetFilterExample (45.06s)
--- PASS: TestAccBillingBudget_billingBudgetNotifyExample (51.62s)

That was happening when Computed was set on budget_filter_* and when I removed(currently commented out)

@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 134 files changed, 2349 insertions(+), 220 deletions(-))
Terraform Beta: Diff ( 154 files changed, 1400 insertions(+), 449 deletions(-))
TF Conversion: Diff ( 2 files changed, 338 insertions(+))

Copy link
Member

@rileykarson rileykarson left a comment

Choose a reason for hiding this comment

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

Ah, I see that we'd used flatten_object here so the change is actually fairly safe to bring the budget fields up to the top level.

primary_resource_id: 'budget'
vars:
display_name: 'Example Billing Budget'
test_env_vars:
billing_acct: :BILLING_ACCT
skip_test: true
Copy link
Member

Choose a reason for hiding this comment

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

Why are all these tests skipped and converted to being handwritten? Nothing seems to have changed significantly in the handwritten ones.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Import tests were failing.

Copy link
Member

Choose a reason for hiding this comment

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

Oh, huh, I guess we never actually added code to skip the import step if the resource doesn't support import. Huh! Mind commenting something to that effect?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I introduced a new field that excludes import step test from generated tests.

products/billingbudget/api.yaml Show resolved Hide resolved
Copy link
Member

@rileykarson rileykarson left a comment

Choose a reason for hiding this comment

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

Re: TestAccBillingBudget_billingBudgetBasicExample

That diff was happening when Computed was set? Making the field Optional + Computed should resolve it, in theory.

@upodroid
Copy link
Contributor Author

upodroid commented Dec 4, 2020

Re: TestAccBillingBudget_billingBudgetBasicExample

That diff was happening when Computed was set? Making the field Optional + Computed should resolve it, in theory.

I did that and it didn't solve it. run gcbrun against this branch now and you should see the same error i'm seeing.

@rileykarson
Copy link
Member

/gcbrun

@modular-magician
Copy link
Collaborator

I have triggered VCR tests based on this PR's diffs. See the results here: "https://ci-oss.hashicorp.engineering/viewQueued.html?itemId=161501"

@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 137 files changed, 2375 insertions(+), 223 deletions(-))
Terraform Beta: Diff ( 155 files changed, 1412 insertions(+), 450 deletions(-))
TF Conversion: Diff ( 2 files changed, 338 insertions(+))

1 similar comment
@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 137 files changed, 2375 insertions(+), 223 deletions(-))
Terraform Beta: Diff ( 155 files changed, 1412 insertions(+), 450 deletions(-))
TF Conversion: Diff ( 2 files changed, 338 insertions(+))

@modular-magician
Copy link
Collaborator

I have triggered VCR tests in RECORDING mode for the following tests that failed during VCR: TestAccDataSourceComposerEnvironment_basic|TestAccDataSourceComputeResourcePolicy|TestAccDataSourceSpannerInstance_basic|TestAccNotebooksInstanceIamMemberGenerated|TestAccNotebooksInstanceIamPolicyGenerated|TestAccActiveDirectoryDomainTrust_activeDirectoryDomainTrustBasicExample|TestAccBillingBudget_billingBudgetLastperiodExample|TestAccBillingBudget_billingBudgetFilterExample|TestAccBillingBudget_billingBudgetBasicExample|TestAccBigqueryDataTransferConfig|TestAccBillingBudget_billingBudgetNotifyExample|TestAccCloudSchedulerJob_schedulerJobHttpExample|TestAccComposerEnvironment_withUpdateOnCreate|TestAccComputeBackendService_backendServiceCacheExample|TestAccComputeGlobalForwardingRule_globalForwardingRuleHttpExample|TestAccComputeGlobalForwardingRule_globalForwardingRuleInternalExample|TestAccComputeManagedSslCertificate_managedSslCertificateBasicExample|TestAccComputeRegionBackendService_regionBackendServiceCacheExample|TestAccComputeTargetGrpcProxy_targetGrpcProxyBasicExample|TestAccComputeTargetGrpcProxy_update|TestAccComputeTargetHttpProxy_targetHttpProxyBasicExample|TestAccComputeTargetHttpsProxy_targetHttpsProxyBasicExample|TestAccComputeUrlMap_urlMapBasicExample|TestAccComputeUrlMap_urlMapTrafficDirectorRouteExample|TestAccComputeUrlMap_urlMapTrafficDirectorPathExample|TestAccComputeUrlMap_urlMapTrafficDirectorPathPartialExample|TestAccComputeUrlMap_urlMapTrafficDirectorRoutePartialExample|TestAccComputeUrlMap_urlMapHeaderBasedRoutingExample|TestAccComputeUrlMap_urlMapParameterBasedRoutingExample|TestAccComputeUrlMap_defaultRouteActionTrafficDirectorPathUpdate|TestAccComputeUrlMap_defaultRouteActionTrafficDirectorUpdate|TestAccComputeUrlMap_trafficDirectorPathUpdate|TestAccFirestoreDocument_firestoreDocumentBasicExample|TestAccFirestoreDocument_firestoreDocumentNestedDocumentExample|TestAccFirestoreDocument_update|TestAccFilestoreInstance_filestoreInstanceBasicExample|TestAccFilestoreInstance_update|TestAccNotebooksEnvironment_notebookEnvironmentBasicExample|TestAccNotebooksInstance_notebookInstanceBasicExample|TestAccNotebooksInstance_notebookInstanceBasicContainerExample|TestAccNotebooksInstance_notebookInstanceBasicGpuExample|TestAccNotebooksInstance_notebookInstanceFullExample|TestAccOSLoginSSHPublicKey_osLoginSshKeyExpiry|TestAccStorageBucket_lifecycleRuleStateLive|TestAccStorageBucket_lifecycleRuleStateAny You can view the result here: "https://ci-oss.hashicorp.engineering/viewQueued.html?itemId=161503"

Co-authored-by: upodroid <cy@borg.dev>
@modular-magician
Copy link
Collaborator

Hi! I'm the modular magician. Your PR generated some diffs in downstreams - here they are.

Diff report:

Terraform GA: Diff ( 139 files changed, 2405 insertions(+), 205 deletions(-))
Terraform Beta: Diff ( 157 files changed, 1430 insertions(+), 420 deletions(-))
TF Conversion: Diff ( 2 files changed, 338 insertions(+))

Copy link
Member

@rileykarson rileykarson left a comment

Choose a reason for hiding this comment

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

Tests pass and changes LGTM. Thanks @upodroid!

@slevenick: Mind doing a second review pass and merging when good? I sometimes miss things in large PRs after a lengthy review. Most notably import is dropped- that's explicit though, by my read it never could have worked.

@upodroid
Copy link
Contributor Author

Yeah, the ruby logic was counter intuitive. I wonder how many handwritten tests do we have because MM didn't support importless testing?

I remember handwriting one test a while back because you couldn't specify external providers(random), which is trivial to implement in MM.

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.

LGTM overall!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
4 participants