diff --git a/go.mod b/go.mod index feb8e9f89..dab51abf7 100644 --- a/go.mod +++ b/go.mod @@ -34,9 +34,9 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 github.com/pkg/errors v0.9.1 github.com/pulumi/pulumi-java/pkg v0.6.0 - github.com/pulumi/pulumi-yaml v1.0.2 - github.com/pulumi/pulumi/pkg/v3 v3.46.1 - github.com/pulumi/pulumi/sdk/v3 v3.46.1 + github.com/pulumi/pulumi-yaml v1.0.3 + github.com/pulumi/pulumi/pkg/v3 v3.48.1-0.20221129095827-e43e98e5a7ab + github.com/pulumi/pulumi/sdk/v3 v3.48.1-0.20221129095827-e43e98e5a7ab github.com/pulumi/schema-tools v0.1.0 github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e github.com/russross/blackfriday/v2 v2.1.0 diff --git a/go.sum b/go.sum index b41ec80dc..3a5aaa3f6 100644 --- a/go.sum +++ b/go.sum @@ -1546,12 +1546,16 @@ github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGO github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pulumi/pulumi-java/pkg v0.6.0 h1:haiSQJlhrQIBBcR0r0aQCIF8i69e4znzRnHpaNQUchE= github.com/pulumi/pulumi-java/pkg v0.6.0/go.mod h1:xSK2B792P8zjwYZTHYapMM1RJdue2BpRFQNYObWO0C8= -github.com/pulumi/pulumi-yaml v1.0.2 h1:8fuoFNJlYJm1ni1Fff8QsIvef3E+ilroTPDrYKyy088= -github.com/pulumi/pulumi-yaml v1.0.2/go.mod h1:FKly+y0x5onXHEZALNnFglr6ZZnro4Y/jlN4sYLKYeM= -github.com/pulumi/pulumi/pkg/v3 v3.46.1 h1:YwEAckUmXUM/ELWiPRk9/ZuPv9bogJgDLh11x6VdGtI= -github.com/pulumi/pulumi/pkg/v3 v3.46.1/go.mod h1:Rebr+SHHGtTu2w7VURQZDEUYDhtvjECoovIfh9TYHQU= -github.com/pulumi/pulumi/sdk/v3 v3.46.1 h1:z9I0dLP2FPGTrNSIuUtShTNe1SZLSK0//tmWrjDfFrI= -github.com/pulumi/pulumi/sdk/v3 v3.46.1/go.mod h1:n5EPRVFDh+EFwYZ+oaZmEtwgVN1A6NnI82B7ks/bmTU= +github.com/pulumi/pulumi-yaml v1.0.3 h1:JDRQfGcQYxwJETIepa7T3B7wTV7Bk2P7uApmWvQZeL4= +github.com/pulumi/pulumi-yaml v1.0.3/go.mod h1:KLFTyADnoNoPU9djMyRvXymrTH2SCBg9wnXaapuggEA= +github.com/pulumi/pulumi/pkg/v3 v3.48.0 h1:AHzLLX8bSAVlqE6WZk3kYPJmP9kpkFtMqjaFpgtN8UM= +github.com/pulumi/pulumi/pkg/v3 v3.48.0/go.mod h1:9f7Mbv0amXUNDbvG6jHJ4SaGLMEhXseW2KwjDTqvRAo= +github.com/pulumi/pulumi/pkg/v3 v3.48.1-0.20221129095827-e43e98e5a7ab h1:i6J8IQtcabo0PQzFpOC5NcbdtELAWR33jCOk+PZSdDU= +github.com/pulumi/pulumi/pkg/v3 v3.48.1-0.20221129095827-e43e98e5a7ab/go.mod h1:9f7Mbv0amXUNDbvG6jHJ4SaGLMEhXseW2KwjDTqvRAo= +github.com/pulumi/pulumi/sdk/v3 v3.48.0 h1:Uf7Cq7oyzEOT+d+/RSfMldtN4MWWtJhOkOwSZnbr4CE= +github.com/pulumi/pulumi/sdk/v3 v3.48.0/go.mod h1:n5EPRVFDh+EFwYZ+oaZmEtwgVN1A6NnI82B7ks/bmTU= +github.com/pulumi/pulumi/sdk/v3 v3.48.1-0.20221129095827-e43e98e5a7ab h1:i/huPIYO6KRrdDWLzJhu2siEJi1sZr2/XNXbP0EGe+w= +github.com/pulumi/pulumi/sdk/v3 v3.48.1-0.20221129095827-e43e98e5a7ab/go.mod h1:n5EPRVFDh+EFwYZ+oaZmEtwgVN1A6NnI82B7ks/bmTU= github.com/pulumi/schema-tools v0.1.0 h1:o1nVQaJEnmcA+3trxe+0sIDlrILxEIOvgUQ2Ze4OFsk= github.com/pulumi/schema-tools v0.1.0/go.mod h1:feL1siLWdcCNUm+irXoHyNHbGaqoX7pfYojpGZe2ziY= github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Dik4Qe/+xguB8JagPyXNlbOnRiXGmq/PSPQTGunYnTk= diff --git a/pkg/tfbridge/provider.go b/pkg/tfbridge/provider.go index b3f068f6f..13432919c 100644 --- a/pkg/tfbridge/provider.go +++ b/pkg/tfbridge/provider.go @@ -1250,6 +1250,20 @@ func (p *Provider) Cancel(ctx context.Context, req *pbempty.Empty) (*pbempty.Emp return &pbempty.Empty{}, nil } +func (p *Provider) GetMapping( + ctx context.Context, req *pulumirpc.GetMappingRequest) (*pulumirpc.GetMappingResponse, error) { + + info := MarshalProviderInfo(&p.info) + mapping, err := json.Marshal(info) + if err != nil { + return nil, err + } + return &pulumirpc.GetMappingResponse{ + Provider: p.info.Name, + Data: mapping, + }, nil +} + func initializationError(id string, props *pbstruct.Struct, reasons []string) error { contract.Assertf(len(reasons) > 0, "initializationError must be passed at least one reason") detail := pulumirpc.ErrorResourceInitFailed{ diff --git a/pkg/tfgen/pluginHost.go b/pkg/tfgen/pluginHost.go index 7fd9181fd..a2e076f8a 100644 --- a/pkg/tfgen/pluginHost.go +++ b/pkg/tfgen/pluginHost.go @@ -15,6 +15,7 @@ package tfgen import ( + "encoding/json" "fmt" "sync" @@ -53,6 +54,15 @@ func (p *inmemoryProvider) GetSchema(version int) ([]byte, error) { return p.schema, nil } +func (p *inmemoryProvider) GetMapping(key string) ([]byte, string, error) { + info := tfbridge.MarshalProviderInfo(&p.info) + mapping, err := json.Marshal(info) + if err != nil { + return nil, "", err + } + return mapping, p.info.Name, nil +} + func (p *inmemoryProvider) GetPluginInfo() (workspace.PluginInfo, error) { var version *semver.Version if p.info.Version != "" {