diff --git a/internal/plugin/grpc_provider.go b/internal/plugin/grpc_provider.go index 742b7d3885..254ecd2fea 100644 --- a/internal/plugin/grpc_provider.go +++ b/internal/plugin/grpc_provider.go @@ -73,14 +73,15 @@ type GRPCProvider struct { schema providers.GetProviderSchemaResponse } -func (p *GRPCProvider) GetProviderSchema() (resp providers.GetProviderSchemaResponse) { +func (p *GRPCProvider) GetProviderSchema() providers.GetProviderSchemaResponse { logger.Trace("GRPCProvider: GetProviderSchema") p.mu.Lock() defer p.mu.Unlock() // check the global cache if we can - if !p.Addr.IsZero() && resp.ServerCapabilities.GetProviderSchemaOptional { - if resp, ok := providers.SchemaCache.Get(p.Addr); ok { + if !p.Addr.IsZero() { + if resp, ok := providers.SchemaCache.Get(p.Addr); ok && resp.ServerCapabilities.GetProviderSchemaOptional { + logger.Trace("GRPCProvider: returning cached schema", p.Addr.String()) return resp } } @@ -91,6 +92,8 @@ func (p *GRPCProvider) GetProviderSchema() (resp providers.GetProviderSchemaResp return p.schema } + var resp providers.GetProviderSchemaResponse + resp.ResourceTypes = make(map[string]providers.Schema) resp.DataSources = make(map[string]providers.Schema) diff --git a/internal/plugin6/grpc_provider.go b/internal/plugin6/grpc_provider.go index ad5fc5f1cb..88112aecf1 100644 --- a/internal/plugin6/grpc_provider.go +++ b/internal/plugin6/grpc_provider.go @@ -73,14 +73,15 @@ type GRPCProvider struct { schema providers.GetProviderSchemaResponse } -func (p *GRPCProvider) GetProviderSchema() (resp providers.GetProviderSchemaResponse) { +func (p *GRPCProvider) GetProviderSchema() providers.GetProviderSchemaResponse { logger.Trace("GRPCProvider.v6: GetProviderSchema") p.mu.Lock() defer p.mu.Unlock() // check the global cache if we can - if !p.Addr.IsZero() && resp.ServerCapabilities.GetProviderSchemaOptional { - if resp, ok := providers.SchemaCache.Get(p.Addr); ok { + if !p.Addr.IsZero() { + if resp, ok := providers.SchemaCache.Get(p.Addr); ok && resp.ServerCapabilities.GetProviderSchemaOptional { + logger.Trace("GRPCProvider.v6: returning cached schema", p.Addr.String()) return resp } } @@ -91,6 +92,8 @@ func (p *GRPCProvider) GetProviderSchema() (resp providers.GetProviderSchemaResp return p.schema } + var resp providers.GetProviderSchemaResponse + resp.ResourceTypes = make(map[string]providers.Schema) resp.DataSources = make(map[string]providers.Schema)