Skip to content

Using tf5server with terraform-plugin-sdk/helper/resource Does Not Use Log Sink #152

@bflad

Description

@bflad

terraform-plugin-go version

v0.7.0

Relevant provider source code

Reference: https://github.com/hashicorp/terraform-provider-corner/tree/main/internal/sdkv2provider
Reference: tf5server implementation via hashicorp/terraform-plugin-sdk#857

Terraform Configuration Files

Any will do.

Expected Behavior

TF_ACC=1 go test -timeout=1m -v ./internal/sdkv2provider
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccTests
=== RUN   TestAccTests/corner_regions_cty
=== RUN   TestAccTests/corner_user
=== RUN   TestAccTests/corner_regions
=== RUN   TestAccTests/corner_bigint_data
=== RUN   TestAccTests/corner_bigint
=== RUN   TestAccTests/corner_user_cty
--- PASS: TestAccTests (6.76s)
    --- PASS: TestAccTests/corner_regions_cty (1.24s)
    --- PASS: TestAccTests/corner_user (1.02s)
    --- PASS: TestAccTests/corner_regions (0.92s)
    --- PASS: TestAccTests/corner_bigint_data (0.92s)
    --- PASS: TestAccTests/corner_bigint (0.97s)
    --- PASS: TestAccTests/corner_user_cty (1.69s)
PASS
ok      github.com/hashicorp/terraform-provider-corner/internal/sdkv2provider   7.510s

Actual Behavior

TF_ACC=1 go test -timeout=1m -v ./internal/sdkv2provider
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccTests
=== RUN   TestAccTests/corner_user
{"@caller":"/Users/bflad/go/pkg/mod/github.com/hashicorp/terraform-plugin-go@v0.7.0/internal/logging/protocol.go:21","@level":"trace","@message":"Received request","@module":"sdk.proto","@timestamp":"2022-02-04T16:28:52.602080-05:00","EXTRA_VALUE_AT_END":null,"tf_proto_version":"5.2","tf_provider_addr":"","tf_req_id":"a24b8a29-628a-01c2-0516-08b260627109","tf_rpc":"GetProviderSchema"}
{"@caller":"/Users/bflad/go/pkg/mod/github.com/hashicorp/terraform-plugin-go@v0.7.0/internal/logging/protocol.go:21","@level":"trace","@message":"Calling downstream","@module":"sdk.proto","@timestamp":"2022-02-04T16:28:52.602157-05:00","EXTRA_VALUE_AT_END":null,"tf_proto_version":"5.2","tf_provider_addr":"","tf_req_id":"a24b8a29-628a-01c2-0516-08b260627109","tf_rpc":"GetProviderSchema"}
{"@caller":"/Users/bflad/go/pkg/mod/github.com/hashicorp/terraform-plugin-go@v0.7.0/internal/logging/protocol.go:21","@level":"trace","@message":"Called downstream","@module":"sdk.proto","@timestamp":"2022-02-04T16:28:52.602257-05:00","EXTRA_VALUE_AT_END":null,"tf_proto_version":"5.2","tf_provider_addr":"","tf_req_id":"a24b8a29-628a-01c2-0516-08b260627109","tf_rpc":"GetProviderSchema"}
{"@caller":"/Users/bflad/go/pkg/mod/github.com/hashicorp/terraform-plugin-go@v0.7.0/internal/logging/protocol.go:21","@level":"trace","@message":"Served request","@module":"sdk.proto","@timestamp":"2022-02-04T16:28:52.602299-05:00","EXTRA_VALUE_AT_END":null,"tf_proto_version":"5.2","tf_provider_addr":"","tf_req_id":"a24b8a29-628a-01c2-0516-08b260627109","tf_rpc":"GetProviderSchema"}
{"@caller":"/Users/bflad/go/pkg/mod/github.com/hashicorp/terraform-plugin-go@v0.7.0/internal/logging/protocol.go:21","@level":"trace","@message":"Received request","@module":"sdk.proto","@timestamp":"2022-02-04T16:28:52.666614-05:00","EXTRA_VALUE_AT_END":null,"tf_proto_version":"5.2","tf_provider_addr":"","tf_req_id":"97a74410-24d3-4d4e-c61c-9062200c75e8","tf_rpc":"GetProviderSchema"}
... many more ...

The ServeOpts are not being passed into the GRPCProviderPlugin.Opts in the Serve function, therefore options like our using our logging sink implementation cannot take affect.

Steps to Reproduce

In a terraform-plugin-sdk/v2 provider:

  1. go mod edit -replace=github.com/hashicorp/terraform-plugin-sdk/v2=/Users/bflad/src/github.com/hashicorp/terraform-plugin-sdk@bflad-tpg-servers
  2. go mod tidy
  3. TF_ACC=1 go test -v ./...

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions