Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8b0f53e

Browse files
committed
removing max_ttl tests
1 parent0f6f77a commit8b0f53e

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-
ifr.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:=rangecodersdk.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-
defertp.CloseIdleConnections()
633-
rp.Transport=tp
634-
rp.ServeHTTP(w,r)
635-
}))
636-
deferproxy.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-
varupdateTemplateCalledint64
683-
proxy:=httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter,r*http.Request) {
684-
ifr.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:=rangecodersdk.FeatureNames {
694-
varoneint64=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-
ifstrings.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-
varreq 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-
defertp.CloseIdleConnections()
723-
rp.Transport=tp
724-
rp.ServeHTTP(w,r)
725-
}))
726-
deferproxy.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
funcTestTemplates(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-
defercancel()
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-
varapiErr*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-
defercancel()
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)

[8]ページ先頭

©2009-2025 Movatter.jp