Skip to content

Commit c32a9f5

Browse files
Fix test: only get workspace client when needed in template writer
1 parent c2cbbe1 commit c32a9f5

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

libs/template/writer.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ package template
22

33
import (
44
"context"
5+
"path/filepath"
56
"sort"
67
"strconv"
8+
"strings"
79

810
"github.com/databricks/cli/libs/cmdctx"
911
"github.com/databricks/cli/libs/cmdio"
12+
"github.com/databricks/cli/libs/dbr"
1013
"github.com/databricks/cli/libs/filer"
1114
"github.com/databricks/cli/libs/jsonschema"
1215
"github.com/databricks/cli/libs/telemetry"
@@ -46,7 +49,20 @@ type defaultWriter struct {
4649
func (tmpl *defaultWriter) Configure(ctx context.Context, configPath, outputDir string) error {
4750
tmpl.configPath = configPath
4851

49-
outputFiler, err := filer.NewOutputFiler(ctx, cmdctx.WorkspaceClient(ctx), outputDir)
52+
// Workspace client is only needed when running on DBR and writing to /Workspace/.
53+
// We avoid calling cmdctx.WorkspaceClient unconditionally because it panics
54+
// if the workspace client is not set in the context.
55+
var outputFiler filer.Filer
56+
var err error
57+
absOutputDir, err := filepath.Abs(outputDir)
58+
if err != nil {
59+
return err
60+
}
61+
if strings.HasPrefix(absOutputDir, "/Workspace/") && dbr.RunsOnRuntime(ctx) {
62+
outputFiler, err = filer.NewOutputFiler(ctx, cmdctx.WorkspaceClient(ctx), outputDir)
63+
} else {
64+
outputFiler, err = filer.NewLocalClient(absOutputDir)
65+
}
5066
if err != nil {
5167
return err
5268
}

0 commit comments

Comments
 (0)