Skip to content

Commit 2b42673

Browse files
committed
Move external-workspaces command to enterprise
1 parent 21765f9 commit 2b42673

21 files changed

+224
-133
lines changed

cli/create.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ const PresetNone = "none"
2929

3030
var ErrNoPresetFound = xerrors.New("no preset found")
3131

32-
type createOptions struct {
33-
beforeCreate func(ctx context.Context, client *codersdk.Client, template codersdk.Template, templateVersionID uuid.UUID) error
34-
afterCreate func(ctx context.Context, inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace) error
32+
type CreateOptions struct {
33+
BeforeCreate func(ctx context.Context, client *codersdk.Client, template codersdk.Template, templateVersionID uuid.UUID) error
34+
AfterCreate func(ctx context.Context, inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace) error
3535
}
3636

37-
func (r *RootCmd) create(opts createOptions) *serpent.Command {
37+
func (r *RootCmd) Create(opts CreateOptions) *serpent.Command {
3838
var (
3939
templateName string
4040
templateVersion string
@@ -310,8 +310,8 @@ func (r *RootCmd) create(opts createOptions) *serpent.Command {
310310
_, _ = fmt.Fprintf(inv.Stdout, "%s", cliui.Bold("No preset applied."))
311311
}
312312

313-
if opts.beforeCreate != nil {
314-
err = opts.beforeCreate(inv.Context(), client, template, templateVersionID)
313+
if opts.BeforeCreate != nil {
314+
err = opts.BeforeCreate(inv.Context(), client, template, templateVersionID)
315315
if err != nil {
316316
return xerrors.Errorf("before create: %w", err)
317317
}
@@ -379,8 +379,8 @@ func (r *RootCmd) create(opts createOptions) *serpent.Command {
379379
cliui.Timestamp(time.Now()),
380380
)
381381

382-
if opts.afterCreate != nil {
383-
err = opts.afterCreate(inv.Context(), inv, client, workspace)
382+
if opts.AfterCreate != nil {
383+
err = opts.AfterCreate(inv.Context(), inv, client, workspace)
384384
if err != nil {
385385
return err
386386
}

cli/exp_rpty.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func handleRPTY(inv *serpent.Invocation, client *codersdk.Client, args handleRPT
9797
reconnectID = uuid.New()
9898
}
9999

100-
ws, agt, _, err := getWorkspaceAndAgent(ctx, inv, client, true, args.NamedWorkspace)
100+
ws, agt, _, err := GetWorkspaceAndAgent(ctx, inv, client, true, args.NamedWorkspace)
101101
if err != nil {
102102
return err
103103
}

cli/list.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
// workspaceListRow is the type provided to the OutputFormatter. This is a bit
1919
// dodgy but it's the only way to do complex display code for one format vs. the
2020
// other.
21-
type workspaceListRow struct {
21+
type WorkspaceListRow struct {
2222
// For JSON format:
2323
codersdk.Workspace `table:"-"`
2424

@@ -40,7 +40,7 @@ type workspaceListRow struct {
4040
DailyCost string `json:"-" table:"daily cost"`
4141
}
4242

43-
func workspaceListRowFromWorkspace(now time.Time, workspace codersdk.Workspace) workspaceListRow {
43+
func WorkspaceListRowFromWorkspace(now time.Time, workspace codersdk.Workspace) WorkspaceListRow {
4444
status := codersdk.WorkspaceDisplayStatus(workspace.LatestBuild.Job.Status, workspace.LatestBuild.Transition)
4545

4646
lastBuilt := now.UTC().Sub(workspace.LatestBuild.Job.CreatedAt).Truncate(time.Second)
@@ -55,7 +55,7 @@ func workspaceListRowFromWorkspace(now time.Time, workspace codersdk.Workspace)
5555
favIco = "★"
5656
}
5757
workspaceName := favIco + " " + workspace.OwnerName + "/" + workspace.Name
58-
return workspaceListRow{
58+
return WorkspaceListRow{
5959
Favorite: workspace.Favorite,
6060
Workspace: workspace,
6161
WorkspaceName: workspaceName,
@@ -80,7 +80,7 @@ func (r *RootCmd) list() *serpent.Command {
8080
filter cliui.WorkspaceFilter
8181
formatter = cliui.NewOutputFormatter(
8282
cliui.TableFormat(
83-
[]workspaceListRow{},
83+
[]WorkspaceListRow{},
8484
[]string{
8585
"workspace",
8686
"template",
@@ -107,7 +107,7 @@ func (r *RootCmd) list() *serpent.Command {
107107
r.InitClient(client),
108108
),
109109
Handler: func(inv *serpent.Invocation) error {
110-
res, err := queryConvertWorkspaces(inv.Context(), client, filter.Filter(), workspaceListRowFromWorkspace)
110+
res, err := QueryConvertWorkspaces(inv.Context(), client, filter.Filter(), WorkspaceListRowFromWorkspace)
111111
if err != nil {
112112
return err
113113
}
@@ -137,9 +137,9 @@ func (r *RootCmd) list() *serpent.Command {
137137
// queryConvertWorkspaces is a helper function for converting
138138
// codersdk.Workspaces to a different type.
139139
// It's used by the list command to convert workspaces to
140-
// workspaceListRow, and by the schedule command to
140+
// WorkspaceListRow, and by the schedule command to
141141
// convert workspaces to scheduleListRow.
142-
func queryConvertWorkspaces[T any](ctx context.Context, client *codersdk.Client, filter codersdk.WorkspaceFilter, convertF func(time.Time, codersdk.Workspace) T) ([]T, error) {
142+
func QueryConvertWorkspaces[T any](ctx context.Context, client *codersdk.Client, filter codersdk.WorkspaceFilter, convertF func(time.Time, codersdk.Workspace) T) ([]T, error) {
143143
var empty []T
144144
workspaces, err := client.Workspaces(ctx, filter)
145145
if err != nil {

cli/open.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func (r *RootCmd) openVSCode() *serpent.Command {
7272
// need to wait for the agent to start.
7373
workspaceQuery := inv.Args[0]
7474
autostart := true
75-
workspace, workspaceAgent, otherWorkspaceAgents, err := getWorkspaceAndAgent(ctx, inv, client, autostart, workspaceQuery)
75+
workspace, workspaceAgent, otherWorkspaceAgents, err := GetWorkspaceAndAgent(ctx, inv, client, autostart, workspaceQuery)
7676
if err != nil {
7777
return xerrors.Errorf("get workspace and agent: %w", err)
7878
}
@@ -316,7 +316,7 @@ func (r *RootCmd) openApp() *serpent.Command {
316316
}
317317

318318
workspaceName := inv.Args[0]
319-
ws, agt, _, err := getWorkspaceAndAgent(ctx, inv, client, false, workspaceName)
319+
ws, agt, _, err := GetWorkspaceAndAgent(ctx, inv, client, false, workspaceName)
320320
if err != nil {
321321
var sdkErr *codersdk.Error
322322
if errors.As(err, &sdkErr) && sdkErr.StatusCode() == http.StatusNotFound {

cli/ping.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func (r *RootCmd) ping() *serpent.Command {
110110
defer notifyCancel()
111111

112112
workspaceName := inv.Args[0]
113-
_, workspaceAgent, _, err := getWorkspaceAndAgent(
113+
_, workspaceAgent, _, err := GetWorkspaceAndAgent(
114114
ctx, inv, client,
115115
false, // Do not autostart for a ping.
116116
workspaceName,

cli/portforward.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (r *RootCmd) portForward() *serpent.Command {
8484
return xerrors.New("no port-forwards requested")
8585
}
8686

87-
workspace, workspaceAgent, _, err := getWorkspaceAndAgent(ctx, inv, client, !disableAutostart, inv.Args[0])
87+
workspace, workspaceAgent, _, err := GetWorkspaceAndAgent(ctx, inv, client, !disableAutostart, inv.Args[0])
8888
if err != nil {
8989
return err
9090
}

cli/root.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func (r *RootCmd) CoreSubcommands() []*serpent.Command {
108108
// Workspace Commands
109109
r.autoupdate(),
110110
r.configSSH(),
111-
r.create(createOptions{}),
111+
r.Create(CreateOptions{}),
112112
r.deleteWorkspace(),
113113
r.favorite(),
114114
r.list(),
@@ -126,7 +126,6 @@ func (r *RootCmd) CoreSubcommands() []*serpent.Command {
126126
r.unfavorite(),
127127
r.update(),
128128
r.whoami(),
129-
r.externalWorkspaces(),
130129

131130
// Hidden
132131
r.connectCmd(),

cli/schedule.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func (r *RootCmd) scheduleShow() *serpent.Command {
117117
f.FilterQuery = fmt.Sprintf("owner:me name:%s", inv.Args[0])
118118
}
119119
}
120-
res, err := queryConvertWorkspaces(inv.Context(), client, f, scheduleListRowFromWorkspace)
120+
res, err := QueryConvertWorkspaces(inv.Context(), client, f, scheduleListRowFromWorkspace)
121121
if err != nil {
122122
return err
123123
}
@@ -286,7 +286,7 @@ func (r *RootCmd) scheduleExtend() *serpent.Command {
286286
}
287287

288288
func displaySchedule(ws codersdk.Workspace, out io.Writer) error {
289-
rows := []workspaceListRow{workspaceListRowFromWorkspace(time.Now(), ws)}
289+
rows := []WorkspaceListRow{WorkspaceListRowFromWorkspace(time.Now(), ws)}
290290
rendered, err := cliui.DisplayTable(rows, "workspace", []string{
291291
"workspace", "starts at", "starts next", "stops after", "stops next",
292292
})

cli/speedtest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func (r *RootCmd) speedtest() *serpent.Command {
8383
return xerrors.Errorf("--direct (-d) is incompatible with --%s", varDisableDirect)
8484
}
8585

86-
_, workspaceAgent, _, err := getWorkspaceAndAgent(ctx, inv, client, false, inv.Args[0])
86+
_, workspaceAgent, _, err := GetWorkspaceAndAgent(ctx, inv, client, false, inv.Args[0])
8787
if err != nil {
8888
return err
8989
}

cli/ssh.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ func findWorkspaceAndAgentByHostname(
754754
hostname = strings.TrimSuffix(hostname, qualifiedSuffix)
755755
}
756756
hostname = normalizeWorkspaceInput(hostname)
757-
ws, agent, _, err := getWorkspaceAndAgent(ctx, inv, client, !disableAutostart, hostname)
757+
ws, agent, _, err := GetWorkspaceAndAgent(ctx, inv, client, !disableAutostart, hostname)
758758
return ws, agent, err
759759
}
760760

@@ -827,11 +827,11 @@ startWatchLoop:
827827
}
828828
}
829829

830-
// getWorkspaceAgent returns the workspace and agent selected using either the
830+
// GetWorkspaceAndAgent returns the workspace and agent selected using either the
831831
// `<workspace>[.<agent>]` syntax via `in`. It will also return any other agents
832832
// in the workspace as a slice for use in child->parent lookups.
833833
// If autoStart is true, the workspace will be started if it is not already running.
834-
func getWorkspaceAndAgent(ctx context.Context, inv *serpent.Invocation, client *codersdk.Client, autostart bool, input string) (codersdk.Workspace, codersdk.WorkspaceAgent, []codersdk.WorkspaceAgent, error) { //nolint:revive
834+
func GetWorkspaceAndAgent(ctx context.Context, inv *serpent.Invocation, client *codersdk.Client, autostart bool, input string) (codersdk.Workspace, codersdk.WorkspaceAgent, []codersdk.WorkspaceAgent, error) { //nolint:revive
835835
var (
836836
workspace codersdk.Workspace
837837
// The input will be `owner/name.agent`
@@ -880,7 +880,7 @@ func getWorkspaceAndAgent(ctx context.Context, inv *serpent.Invocation, client *
880880
switch cerr.StatusCode() {
881881
case http.StatusConflict:
882882
_, _ = fmt.Fprintln(inv.Stderr, "Unable to start the workspace due to conflict, the workspace may be starting, retrying without autostart...")
883-
return getWorkspaceAndAgent(ctx, inv, client, false, input)
883+
return GetWorkspaceAndAgent(ctx, inv, client, false, input)
884884

885885
case http.StatusForbidden:
886886
_, err = startWorkspace(inv, client, workspace, workspaceParameterFlags{}, buildFlags{}, WorkspaceUpdate)

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