mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add name to workspace agent devcontainers (#17089)
In the presence of multiple devcontainers, it would be nice to differentiate them by name. This change inherits the resource name from terraform. Refs #17076
This commit is contained in:
@@ -2110,22 +2110,25 @@ func InsertWorkspaceResource(ctx context.Context, db database.Store, jobID uuid.
|
||||
|
||||
if devcontainers := prAgent.GetDevcontainers(); len(devcontainers) > 0 {
|
||||
var (
|
||||
devContainerIDs = make([]uuid.UUID, 0, len(devcontainers))
|
||||
devContainerWorkspaceFolders = make([]string, 0, len(devcontainers))
|
||||
devContainerConfigPaths = make([]string, 0, len(devcontainers))
|
||||
devcontainerIDs = make([]uuid.UUID, 0, len(devcontainers))
|
||||
devcontainerNames = make([]string, 0, len(devcontainers))
|
||||
devcontainerWorkspaceFolders = make([]string, 0, len(devcontainers))
|
||||
devcontainerConfigPaths = make([]string, 0, len(devcontainers))
|
||||
)
|
||||
for _, dc := range devcontainers {
|
||||
devContainerIDs = append(devContainerIDs, uuid.New())
|
||||
devContainerWorkspaceFolders = append(devContainerWorkspaceFolders, dc.WorkspaceFolder)
|
||||
devContainerConfigPaths = append(devContainerConfigPaths, dc.ConfigPath)
|
||||
devcontainerIDs = append(devcontainerIDs, uuid.New())
|
||||
devcontainerNames = append(devcontainerNames, dc.Name)
|
||||
devcontainerWorkspaceFolders = append(devcontainerWorkspaceFolders, dc.WorkspaceFolder)
|
||||
devcontainerConfigPaths = append(devcontainerConfigPaths, dc.ConfigPath)
|
||||
}
|
||||
|
||||
_, err = db.InsertWorkspaceAgentDevcontainers(ctx, database.InsertWorkspaceAgentDevcontainersParams{
|
||||
WorkspaceAgentID: agentID,
|
||||
CreatedAt: dbtime.Now(),
|
||||
ID: devContainerIDs,
|
||||
WorkspaceFolder: devContainerWorkspaceFolders,
|
||||
ConfigPath: devContainerConfigPaths,
|
||||
ID: devcontainerIDs,
|
||||
Name: devcontainerNames,
|
||||
WorkspaceFolder: devcontainerWorkspaceFolders,
|
||||
ConfigPath: devcontainerConfigPaths,
|
||||
})
|
||||
if err != nil {
|
||||
return xerrors.Errorf("insert agent devcontainer: %w", err)
|
||||
|
||||
@@ -2204,8 +2204,8 @@ func TestInsertWorkspaceResource(t *testing.T) {
|
||||
Agents: []*sdkproto.Agent{{
|
||||
Name: "dev",
|
||||
Devcontainers: []*sdkproto.Devcontainer{
|
||||
{WorkspaceFolder: "/workspace1"},
|
||||
{WorkspaceFolder: "/workspace2", ConfigPath: "/workspace2/.devcontainer/devcontainer.json"},
|
||||
{Name: "foo", WorkspaceFolder: "/workspace1"},
|
||||
{Name: "bar", WorkspaceFolder: "/workspace2", ConfigPath: "/workspace2/.devcontainer/devcontainer.json"},
|
||||
},
|
||||
}},
|
||||
})
|
||||
@@ -2220,7 +2220,10 @@ func TestInsertWorkspaceResource(t *testing.T) {
|
||||
devcontainers, err := db.GetWorkspaceAgentDevcontainersByAgentID(ctx, agent.ID)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, devcontainers, 2)
|
||||
require.Equal(t, "foo", devcontainers[0].Name)
|
||||
require.Equal(t, "/workspace1", devcontainers[0].WorkspaceFolder)
|
||||
require.Equal(t, "", devcontainers[0].ConfigPath)
|
||||
require.Equal(t, "bar", devcontainers[1].Name)
|
||||
require.Equal(t, "/workspace2", devcontainers[1].WorkspaceFolder)
|
||||
require.Equal(t, "/workspace2/.devcontainer/devcontainer.json", devcontainers[1].ConfigPath)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user