From d3bc34fc5401b2e1e8d3d529fd1cc94492c1010c Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Tue, 13 Dec 2022 10:45:48 -0500 Subject: [PATCH 1/2] Do not swallow errors in getRepoPath --- pkg/tfgen/docs.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/tfgen/docs.go b/pkg/tfgen/docs.go index 291dd510e..d48f5ad8e 100644 --- a/pkg/tfgen/docs.go +++ b/pkg/tfgen/docs.go @@ -34,6 +34,7 @@ import ( "golang.org/x/text/language" "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tf2pulumi/gen/python" + "github.com/pulumi/pulumi/sdk/v3/go/common/diag" "github.com/pulumi/pulumi/sdk/v3/go/common/tokens" "github.com/pulumi/pulumi/sdk/v3/go/common/util/contract" "github.com/spf13/afero" @@ -156,7 +157,8 @@ func getRepoPath(gitHost string, org string, provider string, version string) (s command.Dir = curWd output, err := command.CombinedOutput() if err != nil { - return "", fmt.Errorf("error running 'go mod download -json' for module: %w", err) + return "", fmt.Errorf("error running 'go mod download -json' in %q dir for module: %w\n\nOutput: %s\n", + curWd, err, output) } target := struct { @@ -178,7 +180,7 @@ func getRepoPath(gitHost string, org string, provider string, version string) (s return target.Dir, nil } -func getMarkdownDetails(org string, provider string, resourcePrefix string, kind DocKind, rawname string, +func getMarkdownDetails(sink diag.Sink, org string, provider string, resourcePrefix string, kind DocKind, rawname string, info tfbridge.ResourceOrDataSourceInfo, providerModuleVersion string, githost string) ([]byte, string, bool) { var docinfo *tfbridge.DocInfo @@ -191,6 +193,8 @@ func getMarkdownDetails(org string, provider string, resourcePrefix string, kind repoPath, err := getRepoPath(githost, org, provider, providerModuleVersion) if err != nil { + msg := "Skip getMarkdownDetails(rawname=%q) because getRepoPath(%q, %q, %q, %q) failed: %v" + sink.Debugf(&diag.Diag{Message: msg}, rawname, githost, org, provider, providerModuleVersion, err) return nil, "", false } @@ -251,7 +255,7 @@ func getDocsForProvider(g *Generator, org string, provider string, resourcePrefi return entityDocs{}, nil } - markdownBytes, markdownFileName, found := getMarkdownDetails(org, provider, resourcePrefix, kind, rawname, info, + markdownBytes, markdownFileName, found := getMarkdownDetails(g.sink, org, provider, resourcePrefix, kind, rawname, info, providerModuleVersion, githost) if !found { entitiesMissingDocs++ From b1b85c688dbabf793e87791e7e6904dbfda31a95 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 14 Dec 2022 16:22:20 -0500 Subject: [PATCH 2/2] Lint --- pkg/tfgen/docs.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/tfgen/docs.go b/pkg/tfgen/docs.go index d48f5ad8e..0c6ea43e0 100644 --- a/pkg/tfgen/docs.go +++ b/pkg/tfgen/docs.go @@ -157,8 +157,8 @@ func getRepoPath(gitHost string, org string, provider string, version string) (s command.Dir = curWd output, err := command.CombinedOutput() if err != nil { - return "", fmt.Errorf("error running 'go mod download -json' in %q dir for module: %w\n\nOutput: %s\n", - curWd, err, output) + msg := "error running 'go mod download -json' in %q dir for module: %w\n\nOutput: %s" + return "", fmt.Errorf(msg, curWd, err, output) } target := struct { @@ -180,7 +180,8 @@ func getRepoPath(gitHost string, org string, provider string, version string) (s return target.Dir, nil } -func getMarkdownDetails(sink diag.Sink, org string, provider string, resourcePrefix string, kind DocKind, rawname string, +func getMarkdownDetails(sink diag.Sink, org string, provider string, + resourcePrefix string, kind DocKind, rawname string, info tfbridge.ResourceOrDataSourceInfo, providerModuleVersion string, githost string) ([]byte, string, bool) { var docinfo *tfbridge.DocInfo @@ -255,8 +256,8 @@ func getDocsForProvider(g *Generator, org string, provider string, resourcePrefi return entityDocs{}, nil } - markdownBytes, markdownFileName, found := getMarkdownDetails(g.sink, org, provider, resourcePrefix, kind, rawname, info, - providerModuleVersion, githost) + markdownBytes, markdownFileName, found := getMarkdownDetails(g.sink, org, provider, + resourcePrefix, kind, rawname, info, providerModuleVersion, githost) if !found { entitiesMissingDocs++ msg := fmt.Sprintf("could not find docs for %v %v. Override the Docs property in the %v mapping. See "+