mirror of https://github.com/databricks/cli.git
Improve error message when path is not a bundle template (#985)
Adds better error message when input path is not a bundle template before: ``` shreyas.goenka@THW32HFW6T bricks % cli bundle init ~/bricks Error: open /Users/shreyas.goenka/bricks/databricks_template_schema.json: no such file or directory ``` after: ``` shreyas.goenka@THW32HFW6T bricks % cli bundle init ~/bricks Error: expected to find a template schema file at /Users/shreyas.goenka/bricks/databricks_template_schema.json ```
This commit is contained in:
parent
48e293c72c
commit
d9fe2ab43d
|
@ -3,6 +3,7 @@ package template
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"embed"
|
"embed"
|
||||||
|
"fmt"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
@ -43,6 +44,10 @@ func Materialize(ctx context.Context, configFilePath, templateRoot, outputDir st
|
||||||
schemaPath := filepath.Join(templateRoot, schemaFileName)
|
schemaPath := filepath.Join(templateRoot, schemaFileName)
|
||||||
helpers := loadHelpers(ctx)
|
helpers := loadHelpers(ctx)
|
||||||
|
|
||||||
|
if _, err := os.Stat(schemaPath); os.IsNotExist(err) {
|
||||||
|
return fmt.Errorf("not a bundle template: expected to find a template schema file at %s", schemaPath)
|
||||||
|
}
|
||||||
|
|
||||||
config, err := newConfig(ctx, schemaPath)
|
config, err := newConfig(ctx, schemaPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package template
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/databricks/cli/cmd/root"
|
||||||
|
"github.com/databricks/databricks-sdk-go"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMaterializeForNonTemplateDirectory(t *testing.T) {
|
||||||
|
tmpDir := t.TempDir()
|
||||||
|
w, err := databricks.NewWorkspaceClient(&databricks.Config{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
ctx := root.SetWorkspaceClient(context.Background(), w)
|
||||||
|
|
||||||
|
// Try to materialize a non-template directory.
|
||||||
|
err = Materialize(ctx, "", tmpDir, "")
|
||||||
|
assert.EqualError(t, err, fmt.Sprintf("not a bundle template: expected to find a template schema file at %s", filepath.Join(tmpDir, schemaFileName)))
|
||||||
|
}
|
Loading…
Reference in New Issue