Skip to content

Commit c1ec0cc

Browse files
committed
add to workspace create cli command
1 parent 469228d commit c1ec0cc

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

cli/create.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ import (
2121

2222
func (r *RootCmd) create() *clibase.Cmd {
2323
var (
24-
templateName string
25-
startAt string
26-
stopAfter time.Duration
27-
workspaceName string
24+
templateName string
25+
startAt string
26+
stopAfter time.Duration
27+
defaultTTLBump time.Duration
28+
workspaceName string
2829

2930
parameterFlags workspaceParameterFlags
3031
autoUpdates string
@@ -199,12 +200,17 @@ func (r *RootCmd) create() *clibase.Cmd {
199200
if stopAfter > 0 {
200201
ttlMillis = ptr.Ref(stopAfter.Milliseconds())
201202
}
203+
var ttlBumpMillis *int64
204+
if defaultTTLBump.Milliseconds() > 0 {
205+
ttlBumpMillis = ptr.Ref(defaultTTLBump.Milliseconds())
206+
}
202207

203208
workspace, err := client.CreateWorkspace(inv.Context(), organization.ID, workspaceOwner, codersdk.CreateWorkspaceRequest{
204209
TemplateVersionID: templateVersionID,
205210
Name: workspaceName,
206211
AutostartSchedule: schedSpec,
207212
TTLMillis: ttlMillis,
213+
TTLBumpMillis: ttlBumpMillis,
208214
RichParameterValues: richParameters,
209215
AutomaticUpdates: codersdk.AutomaticUpdates(autoUpdates),
210216
})
@@ -246,6 +252,12 @@ func (r *RootCmd) create() *clibase.Cmd {
246252
Description: "Specify a duration after which the workspace should shut down (e.g. 8h).",
247253
Value: clibase.DurationOf(&stopAfter),
248254
},
255+
clibase.Option{
256+
Flag: "activity-bump",
257+
Description: "Specify a default amount of time to bump the deadline for the workspaces based on workspace activity. By default, activity will extend the deadline for a workspace by the 'stop-after' amount.",
258+
Default: "0",
259+
Value: clibase.DurationOf(&defaultTTLBump),
260+
},
249261
clibase.Option{
250262
Flag: "automatic-updates",
251263
Env: "CODER_WORKSPACE_AUTOMATIC_UPDATES",

cli/create_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ func TestCreate(t *testing.T) {
3939
"--template", template.Name,
4040
"--start-at", "9:30AM Mon-Fri US/Central",
4141
"--stop-after", "8h",
42+
"--activity-bump", "1h",
4243
"--automatic-updates", "always",
4344
}
4445
inv, root := clitest.New(t, args...)
@@ -75,6 +76,7 @@ func TestCreate(t *testing.T) {
7576
if assert.NotNil(t, ws.TTLMillis) {
7677
assert.Equal(t, *ws.TTLMillis, 8*time.Hour.Milliseconds())
7778
}
79+
assert.Equal(t, ws.TTLBumpMillis, 1*time.Hour.Milliseconds())
7880
assert.Equal(t, codersdk.AutomaticUpdatesAlways, ws.AutomaticUpdates)
7981
}
8082
})

cli/templateedit_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func TestTemplateEdit(t *testing.T) {
4444
desc := "lorem ipsum dolor sit amet et cetera"
4545
icon := "/icon/new-icon.png"
4646
defaultTTL := 12 * time.Hour
47+
defaultTTLBump := time.Hour
4748
allowUserCancelWorkspaceJobs := false
4849

4950
cmdArgs := []string{
@@ -55,6 +56,7 @@ func TestTemplateEdit(t *testing.T) {
5556
"--description", desc,
5657
"--icon", icon,
5758
"--default-ttl", defaultTTL.String(),
59+
"--default-activity-bump", defaultTTLBump.String(),
5860
"--allow-user-cancel-workspace-jobs=" + strconv.FormatBool(allowUserCancelWorkspaceJobs),
5961
}
6062
inv, root := clitest.New(t, cmdArgs...)
@@ -73,6 +75,7 @@ func TestTemplateEdit(t *testing.T) {
7375
assert.Equal(t, desc, updated.Description)
7476
assert.Equal(t, icon, updated.Icon)
7577
assert.Equal(t, defaultTTL.Milliseconds(), updated.DefaultTTLMillis)
78+
assert.Equal(t, defaultTTLBump.Milliseconds(), updated.DefaultTTLBumpMillis)
7679
assert.Equal(t, allowUserCancelWorkspaceJobs, updated.AllowUserCancelWorkspaceJobs)
7780
})
7881
t.Run("FirstEmptyThenNotModified", func(t *testing.T) {

0 commit comments

Comments
 (0)