Using tf5server with terraform-plugin-sdk/helper/resource Does Not Use Log Sink
bflad opened this issue · comments
Brian Flad commented
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:
go mod edit -replace=github.com/hashicorp/terraform-plugin-sdk/v2=/Users/bflad/src/github.com/hashicorp/terraform-plugin-sdk@bflad-tpg-servers
go mod tidy
TF_ACC=1 go test -v ./...