From 8a025d5ffeea820728ca59d829098c82609dcdbd Mon Sep 17 00:00:00 2001 From: Presley Pizzo Date: Tue, 22 Nov 2022 21:48:35 +0000 Subject: [PATCH] Don't override 0 ttl with template default --- coderd/workspaces.go | 11 ++--------- coderd/workspaces_test.go | 8 +++++++- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/coderd/workspaces.go b/coderd/workspaces.go index 67fdd76981445..b5cfe3e643525 100644 --- a/coderd/workspaces.go +++ b/coderd/workspaces.go @@ -670,15 +670,8 @@ func (api *API) putWorkspaceTTL(rw http.ResponseWriter, r *http.Request) { var dbTTL sql.NullInt64 err := api.Database.InTx(func(s database.Store) error { - template, err := s.GetTemplateByID(ctx, workspace.TemplateID) - if err != nil { - httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ - Message: "Error fetching workspace template!", - }) - return xerrors.Errorf("fetch workspace template: %w", err) - } - - dbTTL, err = validWorkspaceTTLMillis(req.TTLMillis, template.DefaultTTL) + // don't override 0 ttl with template default here because it indicates disabled auto-stop + dbTTL, err := validWorkspaceTTLMillis(req.TTLMillis, 0) if err != nil { return codersdk.ValidationError{Field: "ttl_ms", Detail: err.Error()} } diff --git a/coderd/workspaces_test.go b/coderd/workspaces_test.go index 1c9c9fb991726..4f7b067074447 100644 --- a/coderd/workspaces_test.go +++ b/coderd/workspaces_test.go @@ -302,7 +302,7 @@ func TestPostWorkspacesByOrganization(t *testing.T) { template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) { ctr.DefaultTTLMillis = ptr.Ref(int64(0)) }) - // Given: the template has no max TTL set + // Given: the template has no default TTL set require.Zero(t, template.DefaultTTLMillis) coderdtest.AwaitTemplateVersionJob(t, client, version.ID) @@ -1175,11 +1175,17 @@ func TestWorkspaceUpdateTTL(t *testing.T) { name: "disable ttl", ttlMillis: nil, expectedError: "", + modifyTemplate: func(ctr *codersdk.CreateTemplateRequest) { + ctr.DefaultTTLMillis = ptr.Ref((8 * time.Hour).Milliseconds()) + }, }, { name: "update ttl", ttlMillis: ptr.Ref(12 * time.Hour.Milliseconds()), expectedError: "", + modifyTemplate: func(ctr *codersdk.CreateTemplateRequest) { + ctr.DefaultTTLMillis = ptr.Ref((8 * time.Hour).Milliseconds()) + }, }, { name: "below minimum ttl",