mirror of https://github.com/databricks/cli.git
Add `--key` flag for generate commands to specify resource key (#1165)
## Changes Add --key for generate commands to specify resource key. Also, resource config files are now not prefixed anymore. ## Tests Integration tests passed --------- Co-authored-by: Pieter Noordhuis <pieter.noordhuis@databricks.com>
This commit is contained in:
parent
5fda017057
commit
b28432afed
|
@ -6,6 +6,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func newGenerateCommand() *cobra.Command {
|
func newGenerateCommand() *cobra.Command {
|
||||||
|
var key string
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "generate",
|
Use: "generate",
|
||||||
Short: "Generate bundle configuration",
|
Short: "Generate bundle configuration",
|
||||||
|
@ -15,5 +17,6 @@ func newGenerateCommand() *cobra.Command {
|
||||||
|
|
||||||
cmd.AddCommand(generate.NewGenerateJobCommand())
|
cmd.AddCommand(generate.NewGenerateJobCommand())
|
||||||
cmd.AddCommand(generate.NewGeneratePipelineCommand())
|
cmd.AddCommand(generate.NewGeneratePipelineCommand())
|
||||||
|
cmd.PersistentFlags().StringVar(&key, "key", "", `resource key to use for the generated configuration`)
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,14 +72,18 @@ func TestGeneratePipelineCommand(t *testing.T) {
|
||||||
|
|
||||||
srcDir := filepath.Join(root, "src")
|
srcDir := filepath.Join(root, "src")
|
||||||
cmd.Flag("source-dir").Value.Set(srcDir)
|
cmd.Flag("source-dir").Value.Set(srcDir)
|
||||||
|
|
||||||
|
var key string
|
||||||
|
cmd.Flags().StringVar(&key, "key", "test_pipeline", "")
|
||||||
|
|
||||||
err := cmd.RunE(cmd, []string{})
|
err := cmd.RunE(cmd, []string{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
data, err := os.ReadFile(filepath.Join(configDir, "pipeline_test_pipeline.yml"))
|
data, err := os.ReadFile(filepath.Join(configDir, "test_pipeline.yml"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, fmt.Sprintf(`resources:
|
require.Equal(t, fmt.Sprintf(`resources:
|
||||||
pipelines:
|
pipelines:
|
||||||
pipeline_test_pipeline:
|
test_pipeline:
|
||||||
name: test-pipeline
|
name: test-pipeline
|
||||||
libraries:
|
libraries:
|
||||||
- notebook:
|
- notebook:
|
||||||
|
|
|
@ -63,7 +63,11 @@ func NewGenerateJobCommand() *cobra.Command {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
jobKey := fmt.Sprintf("job_%s", textutil.NormalizeString(job.Settings.Name))
|
jobKey := cmd.Flag("key").Value.String()
|
||||||
|
if jobKey == "" {
|
||||||
|
jobKey = textutil.NormalizeString(job.Settings.Name)
|
||||||
|
}
|
||||||
|
|
||||||
result := map[string]dyn.Value{
|
result := map[string]dyn.Value{
|
||||||
"resources": dyn.V(map[string]dyn.Value{
|
"resources": dyn.V(map[string]dyn.Value{
|
||||||
"jobs": dyn.V(map[string]dyn.Value{
|
"jobs": dyn.V(map[string]dyn.Value{
|
||||||
|
|
|
@ -63,11 +63,15 @@ func NewGeneratePipelineCommand() *cobra.Command {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
jobKey := fmt.Sprintf("pipeline_%s", textutil.NormalizeString(pipeline.Name))
|
pipelineKey := cmd.Flag("key").Value.String()
|
||||||
|
if pipelineKey == "" {
|
||||||
|
pipelineKey = textutil.NormalizeString(pipeline.Name)
|
||||||
|
}
|
||||||
|
|
||||||
result := map[string]dyn.Value{
|
result := map[string]dyn.Value{
|
||||||
"resources": dyn.V(map[string]dyn.Value{
|
"resources": dyn.V(map[string]dyn.Value{
|
||||||
"pipelines": dyn.V(map[string]dyn.Value{
|
"pipelines": dyn.V(map[string]dyn.Value{
|
||||||
jobKey: v,
|
pipelineKey: v,
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
@ -77,7 +81,7 @@ func NewGeneratePipelineCommand() *cobra.Command {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
filename := filepath.Join(configDir, fmt.Sprintf("%s.yml", jobKey))
|
filename := filepath.Join(configDir, fmt.Sprintf("%s.yml", pipelineKey))
|
||||||
err = yamlsaver.SaveAsYAML(result, filename, force)
|
err = yamlsaver.SaveAsYAML(result, filename, force)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -46,7 +46,7 @@ func TestAccGenerateFromExistingJobAndDeploy(t *testing.T) {
|
||||||
_, err = os.Stat(filepath.Join(bundleRoot, "src", "test.py"))
|
_, err = os.Stat(filepath.Join(bundleRoot, "src", "test.py"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
matches, err := filepath.Glob(filepath.Join(bundleRoot, "resources", "job_generated_job_*.yml"))
|
matches, err := filepath.Glob(filepath.Join(bundleRoot, "resources", "generated_job_*.yml"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, matches, 1)
|
require.Len(t, matches, 1)
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ func TestAccGenerateFromExistingPipelineAndDeploy(t *testing.T) {
|
||||||
_, err = os.Stat(filepath.Join(bundleRoot, "src", "test.py"))
|
_, err = os.Stat(filepath.Join(bundleRoot, "src", "test.py"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
matches, err := filepath.Glob(filepath.Join(bundleRoot, "resources", "pipeline_generated_pipeline_*.yml"))
|
matches, err := filepath.Glob(filepath.Join(bundleRoot, "resources", "generated_pipeline_*.yml"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, matches, 1)
|
require.Len(t, matches, 1)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue