Skip to content

Commit 8319ea6

Browse files
committed
simplify according to PR feedback
1 parent 716a2fb commit 8319ea6

File tree

2 files changed

+5
-114
lines changed

2 files changed

+5
-114
lines changed

cli/ssh.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -928,24 +928,18 @@ func getWorkspaceAgent(workspace codersdk.Workspace, agentName string) (workspac
928928
var (
929929
availableNames []string
930930
agents []codersdk.WorkspaceAgent
931-
subAgents []codersdk.WorkspaceAgent
932931
)
933932
for _, resource := range resources {
934933
for _, agent := range resource.Agents {
935934
availableNames = append(availableNames, agent.Name)
936-
if agent.ParentID.UUID == uuid.Nil {
937-
agents = append(agents, agent)
938-
} else {
939-
subAgents = append(subAgents, agent)
940-
}
935+
agents = append(agents, agent)
941936
}
942937
}
943938
if len(agents) == 0 {
944939
return codersdk.WorkspaceAgent{}, xerrors.Errorf("workspace %q has no agents", workspace.Name)
945940
}
946941
slices.Sort(availableNames)
947942
if agentName != "" {
948-
agents = append(agents, subAgents...)
949943
for _, otherAgent := range agents {
950944
if otherAgent.Name != agentName {
951945
continue
@@ -954,11 +948,6 @@ func getWorkspaceAgent(workspace codersdk.Workspace, agentName string) (workspac
954948
}
955949
return codersdk.WorkspaceAgent{}, xerrors.Errorf("agent not found by name %q, available agents: %v", agentName, availableNames)
956950
}
957-
if len(subAgents) == 1 {
958-
return subAgents[0], nil
959-
} else if len(subAgents) > 1 {
960-
return codersdk.WorkspaceAgent{}, xerrors.Errorf("multiple sub-agents found, please specify the agent name, available agents: %v", availableNames)
961-
}
962951
if len(agents) == 1 {
963952
return agents[0], nil
964953
}

cli/ssh_internal_test.go

Lines changed: 4 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -365,21 +365,9 @@ func Test_getWorkspaceAgent(t *testing.T) {
365365
}
366366

367367
createAgent := func(name string) codersdk.WorkspaceAgent {
368-
return codersdk.WorkspaceAgent{
369-
ID: uuid.New(),
370-
Name: name,
371-
ParentID: uuid.NullUUID{},
372-
}
373-
}
374-
375-
createSubAgent := func(name string, parentID uuid.UUID) codersdk.WorkspaceAgent {
376368
return codersdk.WorkspaceAgent{
377369
ID: uuid.New(),
378370
Name: name,
379-
ParentID: uuid.NullUUID{
380-
UUID: parentID,
381-
Valid: true,
382-
},
383371
}
384372
}
385373

@@ -394,20 +382,7 @@ func Test_getWorkspaceAgent(t *testing.T) {
394382
assert.Equal(t, "main", result.Name)
395383
})
396384

397-
t.Run("SingleSubAgent_NoNameSpecified", func(t *testing.T) {
398-
t.Parallel()
399-
parentAgent := createAgent("main")
400-
subAgent := createSubAgent("devcontainer", parentAgent.ID)
401-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{parentAgent, subAgent})
402-
403-
// Should prefer the sub-agent when no name is specified.
404-
result, err := getWorkspaceAgent(workspace, "")
405-
require.NoError(t, err)
406-
assert.Equal(t, subAgent.ID, result.ID)
407-
assert.Equal(t, "devcontainer", result.Name)
408-
})
409-
410-
t.Run("MultipleAgents_NoSubAgents_NoNameSpecified", func(t *testing.T) {
385+
t.Run("MultipleAgents_NoNameSpecified", func(t *testing.T) {
411386
t.Parallel()
412387
agent1 := createAgent("main1")
413388
agent2 := createAgent("main2")
@@ -419,20 +394,7 @@ func Test_getWorkspaceAgent(t *testing.T) {
419394
assert.Contains(t, err.Error(), "available agents: [main1 main2]")
420395
})
421396

422-
t.Run("MultipleSubAgents_NoNameSpecified", func(t *testing.T) {
423-
t.Parallel()
424-
parentAgent := createAgent("main")
425-
subAgent1 := createSubAgent("devcontainer1", parentAgent.ID)
426-
subAgent2 := createSubAgent("devcontainer2", parentAgent.ID)
427-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{parentAgent, subAgent1, subAgent2})
428-
429-
_, err := getWorkspaceAgent(workspace, "")
430-
require.Error(t, err)
431-
assert.Contains(t, err.Error(), "multiple sub-agents found")
432-
assert.Contains(t, err.Error(), "available agents: [devcontainer1 devcontainer2 main]")
433-
})
434-
435-
t.Run("AgentNameSpecified_Found_RegularAgent", func(t *testing.T) {
397+
t.Run("AgentNameSpecified_Found", func(t *testing.T) {
436398
t.Parallel()
437399
agent1 := createAgent("main1")
438400
agent2 := createAgent("main2")
@@ -444,18 +406,6 @@ func Test_getWorkspaceAgent(t *testing.T) {
444406
assert.Equal(t, "main1", result.Name)
445407
})
446408

447-
t.Run("AgentNameSpecified_Found_SubAgent", func(t *testing.T) {
448-
t.Parallel()
449-
agent := createAgent("main")
450-
subAgent := createSubAgent("devcontainer", agent.ID)
451-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent, subAgent})
452-
453-
result, err := getWorkspaceAgent(workspace, "devcontainer")
454-
require.NoError(t, err)
455-
assert.Equal(t, subAgent.ID, result.ID)
456-
assert.Equal(t, "devcontainer", result.Name)
457-
})
458-
459409
t.Run("AgentNameSpecified_NotFound", func(t *testing.T) {
460410
t.Parallel()
461411
agent1 := createAgent("main1")
@@ -477,65 +427,17 @@ func Test_getWorkspaceAgent(t *testing.T) {
477427
assert.Contains(t, err.Error(), `workspace "test-workspace" has no agents`)
478428
})
479429

480-
t.Run("MixedAgents_SubAgentPreferred", func(t *testing.T) {
481-
t.Parallel()
482-
agent := createAgent("main")
483-
subAgent := createSubAgent("devcontainer", agent.ID)
484-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent, subAgent})
485-
486-
// When no name is specified and there's one sub-agent,
487-
// it should be preferred.
488-
result, err := getWorkspaceAgent(workspace, "")
489-
require.NoError(t, err)
490-
assert.Equal(t, subAgent.ID, result.ID)
491-
assert.Equal(t, "devcontainer", result.Name)
492-
})
493-
494-
t.Run("MixedAgents_SpecificNameFound", func(t *testing.T) {
495-
t.Parallel()
496-
agent := createAgent("main")
497-
subAgent := createSubAgent("devcontainer", agent.ID)
498-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent, subAgent})
499-
500-
// Should be able to find regular agent by name.
501-
result, err := getWorkspaceAgent(workspace, "main")
502-
require.NoError(t, err)
503-
assert.Equal(t, agent.ID, result.ID)
504-
assert.Equal(t, "main", result.Name)
505-
506-
// Should be able to find sub-agent by name.
507-
result, err = getWorkspaceAgent(workspace, "devcontainer")
508-
require.NoError(t, err)
509-
assert.Equal(t, subAgent.ID, result.ID)
510-
assert.Equal(t, "devcontainer", result.Name)
511-
})
512-
513430
t.Run("AvailableAgentNames_SortedCorrectly", func(t *testing.T) {
514431
t.Parallel()
515432
// Define agents in non-alphabetical order.
516433
agent2 := createAgent("zod")
517434
agent1 := createAgent("clark")
518-
subAgent := createSubAgent("krypton", agent1.ID)
519-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent2, agent1, subAgent})
435+
agent3 := createAgent("krypton")
436+
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent2, agent1, agent3})
520437

521438
_, err := getWorkspaceAgent(workspace, "nonexistent")
522439
require.Error(t, err)
523440
// Available agents should be sorted alphabetically.
524441
assert.Contains(t, err.Error(), "available agents: [clark krypton zod]")
525442
})
526-
527-
t.Run("MultipleAgentsAndSubAgents_NoNameSpecified", func(t *testing.T) {
528-
t.Parallel()
529-
agent1 := createAgent("main1")
530-
agent2 := createAgent("main2")
531-
subAgent1 := createSubAgent("dev1", agent1.ID)
532-
subAgent2 := createSubAgent("dev2", agent1.ID)
533-
workspace := createWorkspaceWithAgents([]codersdk.WorkspaceAgent{agent1, agent2, subAgent1, subAgent2})
534-
535-
// Should error because there are multiple sub-agents.
536-
_, err := getWorkspaceAgent(workspace, "")
537-
require.Error(t, err)
538-
assert.Contains(t, err.Error(), "multiple sub-agents found")
539-
assert.Contains(t, err.Error(), "available agents: [dev1 dev2 main1 main2]")
540-
})
541443
}

0 commit comments

Comments
 (0)