rpcproviders: Trace logging

We might remove this or change it to more structured logging later, but
for now this is just to help understand what's being called as I continue
to fill out all of these client proxy stubs.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
This commit is contained in:
Martin Atkins
2025-07-24 13:33:30 -07:00
parent 09edebf713
commit 0ccf731bc4
5 changed files with 22 additions and 0 deletions

View File

@@ -7,16 +7,19 @@ package rpcproviders
import (
"context"
"log"
"github.com/opentofu/opentofu/internal/providers"
)
// ReadDataSource implements providers.Interface.
func (r rpcProvider) ReadDataSource(ctx context.Context, req providers.ReadDataSourceRequest) providers.ReadDataSourceResponse {
log.Printf("[TRACE] rpcProvider.ReadDataSource")
panic("unimplemented")
}
// ValidateDataResourceConfig implements providers.Interface.
func (r rpcProvider) ValidateDataResourceConfig(ctx context.Context, req providers.ValidateDataResourceConfigRequest) providers.ValidateDataResourceConfigResponse {
log.Printf("[TRACE] rpcProvider.ValidateDataResourceConfig")
panic("unimplemented")
}

View File

@@ -9,6 +9,7 @@ import (
"context"
"errors"
"fmt"
"log"
"github.com/apparentlymart/opentofu-providers/tofuprovider/providerops"
"github.com/apparentlymart/opentofu-providers/tofuprovider/providerschema"
@@ -19,6 +20,7 @@ import (
// CallFunction implements providers.Interface.
func (r rpcProvider) CallFunction(ctx context.Context, req providers.CallFunctionRequest) providers.CallFunctionResponse {
log.Printf("[TRACE] rpcProvider.CallFunction")
var resp providers.CallFunctionResponse
spec, diags := r.schema.GetFunction(ctx, req.Name)

View File

@@ -7,41 +7,49 @@ package rpcproviders
import (
"context"
"log"
"github.com/opentofu/opentofu/internal/providers"
)
// ApplyResourceChange implements providers.Interface.
func (r rpcProvider) ApplyResourceChange(ctx context.Context, req providers.ApplyResourceChangeRequest) providers.ApplyResourceChangeResponse {
log.Printf("[TRACE] rpcProvider.ApplyResourceChange")
panic("unimplemented")
}
// ImportResourceState implements providers.Interface.
func (r rpcProvider) ImportResourceState(ctx context.Context, req providers.ImportResourceStateRequest) providers.ImportResourceStateResponse {
log.Printf("[TRACE] rpcProvider.ImportResourceState")
panic("unimplemented")
}
// MoveResourceState implements providers.Interface.
func (r rpcProvider) MoveResourceState(ctx context.Context, req providers.MoveResourceStateRequest) providers.MoveResourceStateResponse {
log.Printf("[TRACE] rpcProvider.MoveResourceState")
panic("unimplemented")
}
// PlanResourceChange implements providers.Interface.
func (r rpcProvider) PlanResourceChange(ctx context.Context, req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
log.Printf("[TRACE] rpcProvider.PlanResourceChange")
panic("unimplemented")
}
// ReadResource implements providers.Interface.
func (r rpcProvider) ReadResource(ctx context.Context, req providers.ReadResourceRequest) providers.ReadResourceResponse {
log.Printf("[TRACE] rpcProvider.ReadResource")
panic("unimplemented")
}
// UpgradeResourceState implements providers.Interface.
func (r rpcProvider) UpgradeResourceState(ctx context.Context, req providers.UpgradeResourceStateRequest) providers.UpgradeResourceStateResponse {
log.Printf("[TRACE] rpcProvider.UpgradeResourceState")
panic("unimplemented")
}
// ValidateResourceConfig implements providers.Interface.
func (r rpcProvider) ValidateResourceConfig(crx context.Context, req providers.ValidateResourceConfigRequest) providers.ValidateResourceConfigResponse {
log.Printf("[TRACE] rpcProvider.ValidateResourceConfig")
panic("unimplemented")
}

View File

@@ -8,6 +8,7 @@ package rpcproviders
import (
"context"
"io"
"log"
"github.com/apparentlymart/opentofu-providers/tofuprovider"
"github.com/apparentlymart/opentofu-providers/tofuprovider/providerops"
@@ -65,6 +66,7 @@ func NewProvider(client tofuprovider.Provider) providers.Interface {
// ConfigureProvider implements providers.Interface.
func (r rpcProvider) ConfigureProvider(ctx context.Context, req providers.ConfigureProviderRequest) providers.ConfigureProviderResponse {
log.Printf("[TRACE] rpcProvider.ConfigureProvider")
var resp providers.ConfigureProviderResponse
schema, diags := r.schema.GetProviderConfig(ctx)
@@ -98,6 +100,7 @@ func (r rpcProvider) ConfigureProvider(ctx context.Context, req providers.Config
// ValidateProviderConfig implements providers.Interface.
func (r rpcProvider) ValidateProviderConfig(ctx context.Context, req providers.ValidateProviderConfigRequest) providers.ValidateProviderConfigResponse {
log.Printf("[TRACE] rpcProvider.ValidateProviderConfig")
var resp providers.ValidateProviderConfigResponse
schema, diags := r.schema.GetProviderConfig(ctx)

View File

@@ -26,6 +26,8 @@ import (
// GetProviderSchema implements providers.Interface.
func (r rpcProvider) GetProviderSchema(ctx context.Context) providers.GetProviderSchemaResponse {
log.Printf("[TRACE] rpcProvider.GetProviderSchema")
// Whenever someone calls this directly we'll ignore our existing cache
// and re-fetch everything, but we'll use the result to update the
// cache so other future calls can benefit.
@@ -41,6 +43,8 @@ func (r rpcProvider) GetProviderSchema(ctx context.Context) providers.GetProvide
// GetFunctions implements providers.Interface.
func (r rpcProvider) GetFunctions(ctx context.Context) providers.GetFunctionsResponse {
log.Printf("[TRACE] rpcProvider.GetFunctions")
// Whenever someone calls this directly we'll ignore our existing cache
// and re-fetch everything, but we'll use the result to update the
// cache so other future calls can benefit.
@@ -226,6 +230,7 @@ func (c *schemaCache) ensureFunctions(ctx context.Context) tfdiags.Diagnostics {
// not offer more granular schema request methods. We hope to use this less
// over time.
func (c *schemaCache) fetchEverything(ctx context.Context) tfdiags.Diagnostics {
log.Printf("[TRACE] rpcProvider: schemaCache.fetchEverything")
var diags tfdiags.Diagnostics
resp, err := c.client.GetProviderSchema(ctx, &providerops.GetProviderSchemaRequest{})
diags = appendDiags(diags, resp, err)
@@ -262,6 +267,7 @@ func (c *schemaCache) fetchEverything(ctx context.Context) tfdiags.Diagnostics {
// Callers should call this only after checking whether the information they
// need is already cached, to avoid making redundant requests.
func (c *schemaCache) fetchFunctions(ctx context.Context) tfdiags.Diagnostics {
log.Printf("[TRACE] rpcProvider: schemaCache.fetchFunctions")
// FIXME: OpenTofu chose to slightly tweak the provider protocol (as
// compared to Terraform's reference implementation) by asking the
// provider for its functions only after it's already configured so