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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy