diff --git a/internal/builtin/providers/terraform/provider.go b/internal/builtin/providers/terraform/provider.go index 1da4a21223..caec0e22d4 100644 --- a/internal/builtin/providers/terraform/provider.go +++ b/internal/builtin/providers/terraform/provider.go @@ -10,6 +10,7 @@ import ( tfaddr "github.com/hashicorp/terraform-registry-address" "github.com/zclconf/go-cty/cty" + "github.com/hashicorp/terraform/internal/configs/configschema" "github.com/hashicorp/terraform/internal/providers" ) @@ -26,7 +27,7 @@ func NewProvider() providers.Interface { // GetSchema returns the complete schema for the provider. func (p *Provider) GetProviderSchema() providers.GetProviderSchemaResponse { resp := providers.GetProviderSchemaResponse{ - Provider: providers.Schema{}, + Provider: providers.Schema{Body: &configschema.Block{}}, ServerCapabilities: providers.ServerCapabilities{ MoveResourceState: true, }, diff --git a/internal/builtin/providers/terraform/provider_test.go b/internal/builtin/providers/terraform/provider_test.go index 555e796b28..cd3c64c675 100644 --- a/internal/builtin/providers/terraform/provider_test.go +++ b/internal/builtin/providers/terraform/provider_test.go @@ -67,3 +67,13 @@ func TestMoveResourceState_NonExistentResource(t *testing.T) { t.Fatal("expected diagnostics") } } + +func TestGetProviderSchema_ProviderConfigNotNil(t *testing.T) { + provider := &Provider{} + resp := provider.GetProviderSchema() + + if resp.Provider.Body == nil { + t.Fatal("provider config schema body should not be nil; a nil body causes " + + "a spurious ERROR-level log message in AttachSchemaTransformer") + } +}