Skip to content

Commit 245795e

Browse files
committed
cli: templatecreate: add CLI flags --max-ttl --min-autostart-interval
1 parent a6255d6 commit 245795e

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

cli/templatecreate.go

+17-8
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,19 @@ import (
1414

1515
"github.com/coder/coder/cli/cliui"
1616
"github.com/coder/coder/coderd/database"
17+
"github.com/coder/coder/coderd/util/ptr"
1718
"github.com/coder/coder/codersdk"
1819
"github.com/coder/coder/provisionerd"
1920
"github.com/coder/coder/provisionersdk"
2021
)
2122

2223
func templateCreate() *cobra.Command {
2324
var (
24-
directory string
25-
provisioner string
26-
parameterFile string
25+
directory string
26+
provisioner string
27+
parameterFile string
28+
maxTTL time.Duration
29+
minAutostartInterval time.Duration
2730
)
2831
cmd := &cobra.Command{
2932
Use: "create [name]",
@@ -92,11 +95,15 @@ func templateCreate() *cobra.Command {
9295
return err
9396
}
9497

95-
_, err = client.CreateTemplate(cmd.Context(), organization.ID, codersdk.CreateTemplateRequest{
96-
Name: templateName,
97-
VersionID: job.ID,
98-
ParameterValues: parameters,
99-
})
98+
createReq := codersdk.CreateTemplateRequest{
99+
Name: templateName,
100+
VersionID: job.ID,
101+
ParameterValues: parameters,
102+
MaxTTLMillis: ptr.Ref(maxTTL.Milliseconds()),
103+
MinAutostartIntervalMillis: ptr.Ref(minAutostartInterval.Milliseconds()),
104+
}
105+
106+
_, err = client.CreateTemplate(cmd.Context(), organization.ID, createReq)
100107
if err != nil {
101108
return err
102109
}
@@ -115,6 +122,8 @@ func templateCreate() *cobra.Command {
115122
cmd.Flags().StringVarP(&directory, "directory", "d", currentDirectory, "Specify the directory to create from")
116123
cmd.Flags().StringVarP(&provisioner, "test.provisioner", "", "terraform", "Customize the provisioner backend")
117124
cmd.Flags().StringVarP(&parameterFile, "parameter-file", "", "", "Specify a file path with parameter values.")
125+
cmd.Flags().DurationVarP(&maxTTL, "max-ttl", "", 168*time.Hour, "Specify a maximum TTL for worksapces created from this template.")
126+
cmd.Flags().DurationVarP(&minAutostartInterval, "min-autostart-interval", "", time.Hour, "Specify a minimum autostart interval for workspaces created from this template.")
118127
// This is for testing!
119128
err := cmd.Flags().MarkHidden("test.provisioner")
120129
if err != nil {

cli/templatecreate_test.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,16 @@ func TestTemplateCreate(t *testing.T) {
2424
Parse: echo.ParseComplete,
2525
Provision: echo.ProvisionComplete,
2626
})
27-
cmd, root := clitest.New(t, "templates", "create", "my-template", "--directory", source, "--test.provisioner", string(database.ProvisionerTypeEcho))
27+
args := []string{
28+
"templates",
29+
"create",
30+
"my-template",
31+
"--directory", source,
32+
"--test.provisioner", string(database.ProvisionerTypeEcho),
33+
"--max-ttl", "24h",
34+
"--min-autostart-interval", "2h",
35+
}
36+
cmd, root := clitest.New(t, args...)
2837
clitest.SetupConfig(t, client, root)
2938
pty := ptytest.New(t)
3039
cmd.SetIn(pty.Input())

0 commit comments

Comments
 (0)