Skip to content

Commit 9c43ddf

Browse files
committed
fix: Remove name from workspace builds
Fixes #1561.
1 parent d46b04c commit 9c43ddf

22 files changed

+29
-221
lines changed

cli/state.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"io"
66
"os"
7+
"strconv"
78
"time"
89

910
"github.com/spf13/cobra"
@@ -22,7 +23,7 @@ func state() *cobra.Command {
2223
}
2324

2425
func statePull() *cobra.Command {
25-
var buildName string
26+
var buildNumber int
2627
cmd := &cobra.Command{
2728
Use: "pull <workspace> [file]",
2829
Args: cobra.MinimumNArgs(1),
@@ -31,15 +32,15 @@ func statePull() *cobra.Command {
3132
if err != nil {
3233
return err
3334
}
34-
workspace, err := namedWorkspace(cmd, client, args[0])
35-
if err != nil {
36-
return err
37-
}
3835
var build codersdk.WorkspaceBuild
39-
if buildName == "latest" {
36+
if buildNumber == 0 {
37+
workspace, err := namedWorkspace(cmd, client, args[0])
38+
if err != nil {
39+
return err
40+
}
4041
build = workspace.LatestBuild
4142
} else {
42-
build, err = client.WorkspaceBuildByName(cmd.Context(), workspace.ID, buildName)
43+
build, err = client.WorkspaceBuildByUsernameAndWorkspaceNameAndBuildNumber(cmd.Context(), codersdk.Me, args[0], strconv.Itoa(buildNumber))
4344
if err != nil {
4445
return err
4546
}
@@ -58,12 +59,12 @@ func statePull() *cobra.Command {
5859
return os.WriteFile(args[1], state, 0600)
5960
},
6061
}
61-
cmd.Flags().StringVarP(&buildName, "build", "b", "latest", "Specify a workspace build to target by name.")
62+
cmd.Flags().IntVarP(&buildNumber, "build", "b", 0, "Specify a workspace build to target by name.")
6263
return cmd
6364
}
6465

6566
func statePush() *cobra.Command {
66-
var buildName string
67+
var buildNumber int
6768
cmd := &cobra.Command{
6869
Use: "push <workspace> <file>",
6970
Args: cobra.ExactArgs(2),
@@ -77,10 +78,10 @@ func statePush() *cobra.Command {
7778
return err
7879
}
7980
var build codersdk.WorkspaceBuild
80-
if buildName == "latest" {
81+
if buildNumber == 0 {
8182
build = workspace.LatestBuild
8283
} else {
83-
build, err = client.WorkspaceBuildByName(cmd.Context(), workspace.ID, buildName)
84+
build, err = client.WorkspaceBuildByUsernameAndWorkspaceNameAndBuildNumber(cmd.Context(), codersdk.Me, args[0], strconv.Itoa(buildNumber))
8485
if err != nil {
8586
return err
8687
}
@@ -108,6 +109,6 @@ func statePush() *cobra.Command {
108109
return cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStderr(), client, build.ID, before)
109110
},
110111
}
111-
cmd.Flags().StringVarP(&buildName, "build", "b", "latest", "Specify a workspace build to target by name.")
112+
cmd.Flags().IntVarP(&buildNumber, "build", "b", 0, "Specify a workspace build to target by name.")
112113
return cmd
113114
}

cli/state_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"os"
66
"path/filepath"
7+
"strconv"
78
"strings"
89
"testing"
910

@@ -113,7 +114,7 @@ func TestStatePush(t *testing.T) {
113114
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
114115
workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
115116
coderdtest.AwaitWorkspaceBuildJob(t, client, workspace.LatestBuild.ID)
116-
cmd, root := clitest.New(t, "state", "push", "--build", workspace.LatestBuild.Name, workspace.Name, "-")
117+
cmd, root := clitest.New(t, "state", "push", "--build", strconv.Itoa(int(workspace.LatestBuild.BuildNumber)), workspace.Name, "-")
117118
clitest.SetupConfig(t, client, root)
118119
cmd.SetIn(strings.NewReader("some magic state"))
119120
err := cmd.Execute()

coderd/autobuild/executor/lifecycle_executor.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"time"
77

88
"github.com/google/uuid"
9-
"github.com/moby/moby/pkg/namesgenerator"
109
"golang.org/x/sync/errgroup"
1110
"golang.org/x/xerrors"
1211

@@ -290,7 +289,6 @@ func build(ctx context.Context, store database.Store, workspace database.Workspa
290289
WorkspaceID: workspace.ID,
291290
TemplateVersionID: priorHistory.TemplateVersionID,
292291
BuildNumber: priorBuildNumber + 1,
293-
Name: namesgenerator.GetRandomName(1),
294292
ProvisionerState: priorHistory.ProvisionerState,
295293
InitiatorID: workspace.OwnerID,
296294
Transition: trans,

coderd/coderd.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,6 @@ func New(options *Options) *API {
434434
r.Route("/builds", func(r chi.Router) {
435435
r.Get("/", api.workspaceBuilds)
436436
r.Post("/", api.postWorkspaceBuilds)
437-
r.Get("/{workspacebuildname}", api.workspaceBuildByName)
438437
})
439438
r.Route("/autostart", func(r chi.Router) {
440439
r.Put("/", api.putWorkspaceAutostart)

coderd/coderdtest/authtest.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ func NewAuthTester(ctx context.Context, t *testing.T, options *Options) *AuthTes
126126
"{workspace}": workspace.ID.String(),
127127
"{workspacebuild}": workspace.LatestBuild.ID.String(),
128128
"{workspacename}": workspace.Name,
129-
"{workspacebuildname}": workspace.LatestBuild.Name,
130129
"{workspaceagent}": workspaceResources[0].Agents[0].ID.String(),
131130
"{buildnumber}": strconv.FormatInt(int64(workspace.LatestBuild.BuildNumber), 10),
132131
"{template}": template.ID.String(),
@@ -211,10 +210,6 @@ func AGPLRoutes(a *AuthTester) (map[string]string, map[string]RouteCheck) {
211210
AssertObject: rbac.ResourceWorkspace,
212211
AssertAction: rbac.ActionRead,
213212
},
214-
"GET:/api/v2/workspaces/{workspace}/builds/{workspacebuildname}": {
215-
AssertAction: rbac.ActionRead,
216-
AssertObject: workspaceRBACObj,
217-
},
218213
"GET:/api/v2/workspacebuilds/{workspacebuild}": {
219214
AssertAction: rbac.ActionRead,
220215
AssertObject: workspaceRBACObj,

coderd/database/databasefake/databasefake.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -774,22 +774,6 @@ func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceID(_ context.Context,
774774
return history, nil
775775
}
776776

777-
func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceIDAndName(_ context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndNameParams) (database.WorkspaceBuild, error) {
778-
q.mutex.RLock()
779-
defer q.mutex.RUnlock()
780-
781-
for _, workspaceBuild := range q.workspaceBuilds {
782-
if workspaceBuild.WorkspaceID.String() != arg.WorkspaceID.String() {
783-
continue
784-
}
785-
if !strings.EqualFold(workspaceBuild.Name, arg.Name) {
786-
continue
787-
}
788-
return workspaceBuild, nil
789-
}
790-
return database.WorkspaceBuild{}, sql.ErrNoRows
791-
}
792-
793777
func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(_ context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild, error) {
794778
q.mutex.RLock()
795779
defer q.mutex.RUnlock()
@@ -1926,7 +1910,6 @@ func (q *fakeQuerier) InsertWorkspaceBuild(_ context.Context, arg database.Inser
19261910
CreatedAt: arg.CreatedAt,
19271911
UpdatedAt: arg.UpdatedAt,
19281912
WorkspaceID: arg.WorkspaceID,
1929-
Name: arg.Name,
19301913
TemplateVersionID: arg.TemplateVersionID,
19311914
BuildNumber: arg.BuildNumber,
19321915
Transition: arg.Transition,

coderd/database/dump.sql

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE workspace_builds
2+
ADD COLUMN name character varying(64) NOT NULL;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE workspace_builds
2+
DROP COLUMN name;

coderd/database/models.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)