From 087ed3ec2f9f956cbb6053deda7f79b7cc1026db Mon Sep 17 00:00:00 2001 From: Paddy Carver Date: Thu, 12 Dec 2019 06:06:45 -0800 Subject: [PATCH] Implement provider meta schema everywher on the client. We returned the ProviderMeta schema from the client on every protocol request, but missed it on ReadResource for some reason. This rectifies that. --- plugin/grpc_provider.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugin/grpc_provider.go b/plugin/grpc_provider.go index 7287ac836b..3f29e0f108 100644 --- a/plugin/grpc_provider.go +++ b/plugin/grpc_provider.go @@ -331,6 +331,7 @@ func (p *GRPCProvider) ReadResource(r providers.ReadResourceRequest) (resp provi log.Printf("[TRACE] GRPCProvider: ReadResource") resSchema := p.getResourceSchema(r.TypeName) + metaSchema := p.getProviderMetaSchema() mp, err := msgpack.Marshal(r.PriorState, resSchema.Block.ImpliedType()) if err != nil { @@ -344,6 +345,15 @@ func (p *GRPCProvider) ReadResource(r providers.ReadResourceRequest) (resp provi Private: r.Private, } + if metaSchema.Block != nil { + metaMP, err := msgpack.Marshal(r.ProviderMeta, metaSchema.Block.ImpliedType()) + if err != nil { + resp.Diagnostics = resp.Diagnostics.Append(err) + return resp + } + protoReq.ProviderMeta = &proto.DynamicValue{Msgpack: metaMP} + } + protoResp, err := p.client.ReadResource(p.ctx, protoReq) if err != nil { resp.Diagnostics = resp.Diagnostics.Append(err)