Skip to content

Commit 6bc263a

Browse files
committed
removing max_ttl tests
1 parent b25cef5 commit 6bc263a

File tree

3 files changed

+0
-327
lines changed

3 files changed

+0
-327
lines changed

cli/templateedit_test.go

Lines changed: 0 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -552,213 +552,7 @@ func TestTemplateEdit(t *testing.T) {
552552
assert.Equal(t, template.AutostartRequirement.DaysOfWeek, updated.AutostartRequirement.DaysOfWeek)
553553
})
554554
})
555-
// TODO(@dean): remove this test when we remove max_ttl
556-
t.Run("MaxTTL", func(t *testing.T) {
557-
t.Parallel()
558-
t.Run("BlockedAGPL", func(t *testing.T) {
559-
t.Parallel()
560-
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
561-
owner := coderdtest.CreateFirstUser(t, client)
562-
templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
563-
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
564-
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
565-
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
566-
ctr.DefaultTTLMillis = nil
567-
})
568-
569-
// Test the cli command.
570-
cmdArgs := []string{
571-
"templates",
572-
"edit",
573-
template.Name,
574-
"--max-ttl", "1h",
575-
}
576-
inv, root := clitest.New(t, cmdArgs...)
577-
clitest.SetupConfig(t, templateAdmin, root)
578555

579-
ctx := testutil.Context(t, testutil.WaitLong)
580-
err := inv.WithContext(ctx).Run()
581-
require.Error(t, err)
582-
require.ErrorContains(t, err, "appears to be an AGPL deployment")
583-
584-
// Assert that the template metadata did not change.
585-
updated, err := client.Template(context.Background(), template.ID)
586-
require.NoError(t, err)
587-
assert.Equal(t, template.Name, updated.Name)
588-
assert.Equal(t, template.Description, updated.Description)
589-
assert.Equal(t, template.Icon, updated.Icon)
590-
assert.Equal(t, template.DisplayName, updated.DisplayName)
591-
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
592-
})
593-
594-
t.Run("BlockedNotEntitled", func(t *testing.T) {
595-
t.Parallel()
596-
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
597-
owner := coderdtest.CreateFirstUser(t, client)
598-
templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
599-
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
600-
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
601-
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
602-
ctr.DefaultTTLMillis = nil
603-
})
604-
605-
// Make a proxy server that will return a valid entitlements
606-
// response, but without advanced scheduling entitlement.
607-
proxy := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
608-
if r.URL.Path == "/api/v2/entitlements" {
609-
res := codersdk.Entitlements{
610-
Features: map[codersdk.FeatureName]codersdk.Feature{},
611-
Warnings: []string{},
612-
Errors: []string{},
613-
HasLicense: true,
614-
Trial: true,
615-
RequireTelemetry: false,
616-
}
617-
for _, feature := range codersdk.FeatureNames {
618-
res.Features[feature] = codersdk.Feature{
619-
Entitlement: codersdk.EntitlementNotEntitled,
620-
Enabled: false,
621-
Limit: nil,
622-
Actual: nil,
623-
}
624-
}
625-
httpapi.Write(r.Context(), w, http.StatusOK, res)
626-
return
627-
}
628-
629-
// Otherwise, proxy the request to the real API server.
630-
rp := httputil.NewSingleHostReverseProxy(client.URL)
631-
tp := &http.Transport{}
632-
defer tp.CloseIdleConnections()
633-
rp.Transport = tp
634-
rp.ServeHTTP(w, r)
635-
}))
636-
defer proxy.Close()
637-
638-
// Create a new client that uses the proxy server.
639-
proxyURL, err := url.Parse(proxy.URL)
640-
require.NoError(t, err)
641-
proxyClient := codersdk.New(proxyURL)
642-
proxyClient.SetSessionToken(templateAdmin.SessionToken())
643-
t.Cleanup(proxyClient.HTTPClient.CloseIdleConnections)
644-
645-
// Test the cli command.
646-
cmdArgs := []string{
647-
"templates",
648-
"edit",
649-
template.Name,
650-
"--max-ttl", "1h",
651-
}
652-
inv, root := clitest.New(t, cmdArgs...)
653-
clitest.SetupConfig(t, proxyClient, root)
654-
655-
ctx := testutil.Context(t, testutil.WaitLong)
656-
err = inv.WithContext(ctx).Run()
657-
require.Error(t, err)
658-
require.ErrorContains(t, err, "license is not entitled")
659-
660-
// Assert that the template metadata did not change.
661-
updated, err := client.Template(context.Background(), template.ID)
662-
require.NoError(t, err)
663-
assert.Equal(t, template.Name, updated.Name)
664-
assert.Equal(t, template.Description, updated.Description)
665-
assert.Equal(t, template.Icon, updated.Icon)
666-
assert.Equal(t, template.DisplayName, updated.DisplayName)
667-
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
668-
})
669-
t.Run("Entitled", func(t *testing.T) {
670-
t.Parallel()
671-
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
672-
owner := coderdtest.CreateFirstUser(t, client)
673-
templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
674-
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
675-
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
676-
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
677-
ctr.DefaultTTLMillis = nil
678-
})
679-
680-
// Make a proxy server that will return a valid entitlements
681-
// response, including a valid advanced scheduling entitlement.
682-
var updateTemplateCalled int64
683-
proxy := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
684-
if r.URL.Path == "/api/v2/entitlements" {
685-
res := codersdk.Entitlements{
686-
Features: map[codersdk.FeatureName]codersdk.Feature{},
687-
Warnings: []string{},
688-
Errors: []string{},
689-
HasLicense: true,
690-
Trial: true,
691-
RequireTelemetry: false,
692-
}
693-
for _, feature := range codersdk.FeatureNames {
694-
var one int64 = 1
695-
res.Features[feature] = codersdk.Feature{
696-
Entitlement: codersdk.EntitlementNotEntitled,
697-
Enabled: true,
698-
Limit: &one,
699-
Actual: &one,
700-
}
701-
}
702-
httpapi.Write(r.Context(), w, http.StatusOK, res)
703-
return
704-
}
705-
if strings.HasPrefix(r.URL.Path, "/api/v2/templates/") {
706-
body, err := io.ReadAll(r.Body)
707-
require.NoError(t, err)
708-
_ = r.Body.Close()
709-
710-
var req codersdk.UpdateTemplateMeta
711-
err = json.Unmarshal(body, &req)
712-
require.NoError(t, err)
713-
714-
r.Body = io.NopCloser(bytes.NewReader(body))
715-
atomic.AddInt64(&updateTemplateCalled, 1)
716-
// We still want to call the real route.
717-
}
718-
719-
// Otherwise, proxy the request to the real API server.
720-
rp := httputil.NewSingleHostReverseProxy(client.URL)
721-
tp := &http.Transport{}
722-
defer tp.CloseIdleConnections()
723-
rp.Transport = tp
724-
rp.ServeHTTP(w, r)
725-
}))
726-
defer proxy.Close()
727-
728-
// Create a new client that uses the proxy server.
729-
proxyURL, err := url.Parse(proxy.URL)
730-
require.NoError(t, err)
731-
proxyClient := codersdk.New(proxyURL)
732-
proxyClient.SetSessionToken(templateAdmin.SessionToken())
733-
t.Cleanup(proxyClient.HTTPClient.CloseIdleConnections)
734-
735-
// Test the cli command.
736-
cmdArgs := []string{
737-
"templates",
738-
"edit",
739-
template.Name,
740-
"--max-ttl", "1h",
741-
}
742-
inv, root := clitest.New(t, cmdArgs...)
743-
clitest.SetupConfig(t, proxyClient, root)
744-
745-
ctx := testutil.Context(t, testutil.WaitLong)
746-
err = inv.WithContext(ctx).Run()
747-
require.NoError(t, err)
748-
749-
require.EqualValues(t, 1, atomic.LoadInt64(&updateTemplateCalled))
750-
751-
// Assert that the template metadata did not change. We verify the
752-
// correct request gets sent to the server already.
753-
updated, err := client.Template(context.Background(), template.ID)
754-
require.NoError(t, err)
755-
assert.Equal(t, template.Name, updated.Name)
756-
assert.Equal(t, template.Description, updated.Description)
757-
assert.Equal(t, template.Icon, updated.Icon)
758-
assert.Equal(t, template.DisplayName, updated.DisplayName)
759-
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
760-
})
761-
})
762556
t.Run("AllowUserScheduling", func(t *testing.T) {
763557
t.Parallel()
764558
t.Run("BlockedAGPL", func(t *testing.T) {

enterprise/cli/templateedit_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ func TestTemplateEdit(t *testing.T) {
181181
expectedDescription = "My description"
182182
expectedIcon = "icon.pjg"
183183
expectedDefaultTTLMillis = time.Hour.Milliseconds()
184-
expectedMaxTTLMillis = (time.Hour * 24).Milliseconds()
185184
expectedAllowAutostart = false
186185
expectedAllowAutostop = false
187186
expectedFailureTTLMillis = time.Minute.Milliseconds()
@@ -204,7 +203,6 @@ func TestTemplateEdit(t *testing.T) {
204203
assert.Equal(t, expectedDescription, tpl.Description)
205204
assert.Equal(t, expectedIcon, tpl.Icon)
206205
assert.Equal(t, expectedDefaultTTLMillis, tpl.DefaultTTLMillis)
207-
assert.Equal(t, expectedMaxTTLMillis, tpl.MaxTTLMillis)
208206
assert.Equal(t, expectedAllowAutostart, tpl.AllowUserAutostart)
209207
assert.Equal(t, expectedAllowAutostop, tpl.AllowUserAutostop)
210208
assert.Equal(t, expectedFailureTTLMillis, tpl.FailureTTLMillis)
@@ -225,7 +223,6 @@ func TestTemplateEdit(t *testing.T) {
225223
Description: expectedDescription,
226224
Icon: expectedIcon,
227225
DefaultTTLMillis: expectedDefaultTTLMillis,
228-
MaxTTLMillis: expectedMaxTTLMillis,
229226
AllowUserAutostop: expectedAllowAutostop,
230227
AllowUserAutostart: expectedAllowAutostart,
231228
FailureTTLMillis: expectedFailureTTLMillis,
@@ -267,7 +264,6 @@ func TestTemplateEdit(t *testing.T) {
267264
expectedAutostartDaysOfWeek = []string{"monday", "wednesday", "friday"}
268265
expectedAutoStopDaysOfWeek = []string{"tuesday", "thursday"}
269266
expectedAutoStopWeeks = 2
270-
expectedMaxTTLMillis = 0
271267

272268
template, err = ownerClient.UpdateTemplateMeta(ctx, dbtemplate.ID, codersdk.UpdateTemplateMeta{
273269
Name: expectedName,

enterprise/coderd/templates_test.go

Lines changed: 0 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -29,69 +29,6 @@ import (
2929
func TestTemplates(t *testing.T) {
3030
t.Parallel()
3131

32-
// TODO(@dean): remove legacy max_ttl tests
33-
t.Run("CreateUpdateWorkspaceMaxTTL", func(t *testing.T) {
34-
t.Parallel()
35-
client, user := coderdenttest.New(t, &coderdenttest.Options{
36-
Options: &coderdtest.Options{
37-
IncludeProvisionerDaemon: true,
38-
},
39-
LicenseOptions: &coderdenttest.LicenseOptions{
40-
Features: license.Features{
41-
codersdk.FeatureAdvancedTemplateScheduling: 1,
42-
},
43-
},
44-
})
45-
anotherClient, _ := coderdtest.CreateAnotherUser(t, client, user.OrganizationID)
46-
47-
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
48-
exp := 24 * time.Hour.Milliseconds()
49-
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
50-
ctr.DefaultTTLMillis = &exp
51-
ctr.MaxTTLMillis = &exp
52-
})
53-
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
54-
55-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
56-
defer cancel()
57-
58-
// No TTL provided should use template default
59-
req := codersdk.CreateWorkspaceRequest{
60-
TemplateID: template.ID,
61-
Name: "testing",
62-
}
63-
ws, err := anotherClient.CreateWorkspace(ctx, template.OrganizationID, codersdk.Me, req)
64-
require.NoError(t, err)
65-
require.NotNil(t, ws.TTLMillis)
66-
require.EqualValues(t, exp, *ws.TTLMillis)
67-
68-
// Editing a workspace to have a higher TTL than the template's max
69-
// should error
70-
exp = exp + time.Minute.Milliseconds()
71-
err = anotherClient.UpdateWorkspaceTTL(ctx, ws.ID, codersdk.UpdateWorkspaceTTLRequest{
72-
TTLMillis: &exp,
73-
})
74-
require.Error(t, err)
75-
var apiErr *codersdk.Error
76-
require.ErrorAs(t, err, &apiErr)
77-
require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
78-
require.Len(t, apiErr.Validations, 1)
79-
require.Equal(t, apiErr.Validations[0].Field, "ttl_ms")
80-
require.Contains(t, apiErr.Validations[0].Detail, "time until shutdown must be less than or equal to the template's maximum TTL")
81-
82-
// Creating workspace with TTL higher than max should error
83-
req.Name = "testing2"
84-
req.TTLMillis = &exp
85-
ws, err = anotherClient.CreateWorkspace(ctx, template.OrganizationID, codersdk.Me, req)
86-
require.Error(t, err)
87-
apiErr = nil
88-
require.ErrorAs(t, err, &apiErr)
89-
require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
90-
require.Len(t, apiErr.Validations, 1)
91-
require.Equal(t, apiErr.Validations[0].Field, "ttl_ms")
92-
require.Contains(t, apiErr.Validations[0].Detail, "time until shutdown must be less than or equal to the template's maximum TTL")
93-
})
94-
9532
t.Run("Deprecated", func(t *testing.T) {
9633
t.Parallel()
9734

@@ -249,60 +186,6 @@ func TestTemplates(t *testing.T) {
249186
require.Empty(t, wpsr.Shares)
250187
})
251188

252-
t.Run("BlockDisablingAutoOffWithMaxTTL", func(t *testing.T) {
253-
t.Parallel()
254-
client, user := coderdenttest.New(t, &coderdenttest.Options{
255-
Options: &coderdtest.Options{
256-
IncludeProvisionerDaemon: true,
257-
},
258-
LicenseOptions: &coderdenttest.LicenseOptions{
259-
Features: license.Features{
260-
codersdk.FeatureAdvancedTemplateScheduling: 1,
261-
},
262-
},
263-
})
264-
anotherClient, _ := coderdtest.CreateAnotherUser(t, client, user.OrganizationID)
265-
266-
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
267-
exp := 24 * time.Hour.Milliseconds()
268-
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
269-
ctr.MaxTTLMillis = &exp
270-
})
271-
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
272-
273-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
274-
defer cancel()
275-
276-
// No TTL provided should use template default
277-
req := codersdk.CreateWorkspaceRequest{
278-
TemplateID: template.ID,
279-
Name: "testing",
280-
}
281-
ws, err := anotherClient.CreateWorkspace(ctx, template.OrganizationID, codersdk.Me, req)
282-
require.NoError(t, err)
283-
require.NotNil(t, ws.TTLMillis)
284-
require.EqualValues(t, exp, *ws.TTLMillis)
285-
286-
// Editing a workspace to disable the TTL should do nothing
287-
err = anotherClient.UpdateWorkspaceTTL(ctx, ws.ID, codersdk.UpdateWorkspaceTTLRequest{
288-
TTLMillis: nil,
289-
})
290-
require.NoError(t, err)
291-
ws, err = anotherClient.Workspace(ctx, ws.ID)
292-
require.NoError(t, err)
293-
require.EqualValues(t, exp, *ws.TTLMillis)
294-
295-
// Editing a workspace to have a TTL of 0 should do nothing
296-
zero := int64(0)
297-
err = anotherClient.UpdateWorkspaceTTL(ctx, ws.ID, codersdk.UpdateWorkspaceTTLRequest{
298-
TTLMillis: &zero,
299-
})
300-
require.NoError(t, err)
301-
ws, err = anotherClient.Workspace(ctx, ws.ID)
302-
require.NoError(t, err)
303-
require.EqualValues(t, exp, *ws.TTLMillis)
304-
})
305-
306189
t.Run("SetAutostartRequirement", func(t *testing.T) {
307190
t.Parallel()
308191

0 commit comments

Comments
 (0)