Skip to content

Commit ced1383

Browse files
committed
fix merge issues
1 parent f92dc1a commit ced1383

2 files changed

Lines changed: 30 additions & 10 deletions

File tree

experimental/ssh/internal/client/client.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ func fetchServerErrorLogs(ctx context.Context, client *databricks.WorkspaceClien
585585

586586
// Assemble the SubmitRun request that bootstraps the SSH server.
587587
// Extracted from submitSSHTunnelJob so this logic can be unit tested.
588-
func buildSSHServerSubmitRun(version, secretScopeName, jobNotebookPath string, opts ClientOptions) jobs.SubmitRun {
588+
func buildSSHServerSubmitRun(version, secretScopeName, jobNotebookPath, baseEnvironment string, opts ClientOptions) jobs.SubmitRun {
589589
sessionID := opts.SessionIdentifier()
590590

591591
baseParams := map[string]string{
@@ -632,11 +632,7 @@ func buildSSHServerSubmitRun(version, secretScopeName, jobNotebookPath string, o
632632
// base_environment and environment_version are mutually exclusive: a custom
633633
// base environment carries its own version, so we don't also set one.
634634
var spec compute.Environment
635-
if opts.BaseEnvironment != "" {
636-
baseEnvironment, err := resolveBaseEnvironment(ctx, client, opts.BaseEnvironment)
637-
if err != nil {
638-
return 0, err
639-
}
635+
if baseEnvironment != "" {
640636
spec.BaseEnvironment = baseEnvironment
641637
} else {
642638
spec.EnvironmentVersion = strconv.Itoa(max(opts.EnvironmentVersion, minEnvironmentVersion))
@@ -687,7 +683,15 @@ func submitSSHTunnelJob(ctx context.Context, client *databricks.WorkspaceClient,
687683
log.Infof(ctx, "Using accelerator: %s", opts.Accelerator)
688684
}
689685

690-
submitRequest := buildSSHServerSubmitRun(version, secretScopeName, jobNotebookPath, opts)
686+
var baseEnvironment string
687+
if opts.IsServerlessMode() && opts.BaseEnvironment != "" {
688+
baseEnvironment, err = resolveBaseEnvironment(ctx, client, opts.BaseEnvironment)
689+
if err != nil {
690+
return 0, err
691+
}
692+
}
693+
694+
submitRequest := buildSSHServerSubmitRun(version, secretScopeName, jobNotebookPath, baseEnvironment, opts)
691695

692696
waiter, err := client.Jobs.Submit(ctx, submitRequest)
693697
if err != nil {

experimental/ssh/internal/client/submit_internal_test.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/databricks/databricks-sdk-go/service/compute"
88
"github.com/stretchr/testify/assert"
9+
"github.com/stretchr/testify/require"
910
)
1011

1112
func TestBuildSSHServerSubmitRun(t *testing.T) {
@@ -18,7 +19,7 @@ func TestBuildSSHServerSubmitRun(t *testing.T) {
1819
ServerTimeout: time.Hour,
1920
EnvironmentVersion: 4,
2021
}
21-
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, opts)
22+
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, "", opts)
2223

2324
// Usage policy flows onto the run and into the base params the server reads.
2425
assert.Equal(t, "pol-1", got.BudgetPolicyId)
@@ -38,17 +39,32 @@ func TestBuildSSHServerSubmitRun(t *testing.T) {
3839
Accelerator: "GPU_1xA10",
3940
ServerTimeout: time.Hour,
4041
}
41-
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, opts)
42+
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, "", opts)
4243

4344
assert.Equal(t, compute.HardwareAcceleratorType("GPU_1xA10"), got.Tasks[0].Compute.HardwareAccelerator)
4445
})
4546

47+
t.Run("serverless with base environment", func(t *testing.T) {
48+
opts := ClientOptions{
49+
ConnectionName: "conn",
50+
ServerTimeout: time.Hour,
51+
EnvironmentVersion: 4,
52+
BaseEnvironment: "my-env",
53+
}
54+
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, "workspace-base-environments/dbe_123", opts)
55+
56+
// A resolved base environment carries its own version, so environment_version is not set.
57+
require.Len(t, got.Environments, 1)
58+
assert.Equal(t, "workspace-base-environments/dbe_123", got.Environments[0].Spec.BaseEnvironment)
59+
assert.Empty(t, got.Environments[0].Spec.EnvironmentVersion)
60+
})
61+
4662
t.Run("dedicated cluster", func(t *testing.T) {
4763
opts := ClientOptions{
4864
ClusterID: "abc-123",
4965
ServerTimeout: time.Hour,
5066
}
51-
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, opts)
67+
got := buildSSHServerSubmitRun("v1", "scope", notebookPath, "", opts)
5268

5369
// Usage policy is serverless-only; a dedicated run carries none and targets the cluster.
5470
assert.Empty(t, got.BudgetPolicyId)

0 commit comments

Comments
 (0)