Skip to content

Commit 6ee1229

Browse files
committed
remove more max ttl tests
1 parent fbce990 commit 6ee1229

File tree

3 files changed

+4
-229
lines changed

3 files changed

+4
-229
lines changed

coderd/activitybump_test.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@ func TestWorkspaceActivityBump(t *testing.T) {
3131
setupActivityTest := func(t *testing.T, deadline ...time.Duration) (client *codersdk.Client, workspace codersdk.Workspace, assertBumped func(want bool)) {
3232
t.Helper()
3333
const ttl = time.Hour
34-
maxTTL := time.Duration(0)
35-
if len(deadline) > 0 {
36-
maxTTL = deadline[0]
37-
}
3834

3935
db, pubsub := dbtestutil.NewDB(t)
4036
client = coderdtest.New(t, &coderdtest.Options{
@@ -73,8 +69,8 @@ func TestWorkspaceActivityBump(t *testing.T) {
7369

7470
var maxDeadline time.Time
7571
// Update the max deadline.
76-
if maxTTL != 0 {
77-
maxDeadline = dbtime.Now().Add(maxTTL)
72+
if len(deadline) > 0 {
73+
maxDeadline = dbtime.Now().Add(deadline[0])
7874
}
7975

8076
err := db.UpdateWorkspaceBuildDeadlineByID(ctx, database.UpdateWorkspaceBuildDeadlineByIDParams{
@@ -99,9 +95,9 @@ func TestWorkspaceActivityBump(t *testing.T) {
9995
)
10096
firstDeadline := workspace.LatestBuild.Deadline.Time
10197

102-
if maxTTL != 0 {
98+
if !maxDeadline.IsZero() {
10399
require.WithinDuration(t,
104-
time.Now().Add(maxTTL),
100+
maxDeadline,
105101
workspace.LatestBuild.MaxDeadline.Time,
106102
testutil.WaitMedium,
107103
)

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 0 additions & 217 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,223 +1039,6 @@ func TestCompleteJob(t *testing.T) {
10391039
require.False(t, job.Error.Valid)
10401040
})
10411041

1042-
// TODO(@dean): remove this legacy test for MaxTTL
1043-
t.Run("WorkspaceBuildLegacy", func(t *testing.T) {
1044-
t.Parallel()
1045-
1046-
cases := []struct {
1047-
name string
1048-
templateAllowAutostop bool
1049-
templateDefaultTTL time.Duration
1050-
workspaceTTL time.Duration
1051-
transition database.WorkspaceTransition
1052-
// The TTL is actually a deadline time on the workspace_build row,
1053-
// so during the test this will be compared to be within 15 seconds
1054-
// of the expected value.
1055-
expectedTTL time.Duration
1056-
}{
1057-
{
1058-
name: "OK",
1059-
templateAllowAutostop: true,
1060-
templateDefaultTTL: 0,
1061-
workspaceTTL: 0,
1062-
transition: database.WorkspaceTransitionStart,
1063-
expectedTTL: 0,
1064-
},
1065-
{
1066-
name: "Delete",
1067-
templateAllowAutostop: true,
1068-
templateDefaultTTL: 0,
1069-
workspaceTTL: 0,
1070-
transition: database.WorkspaceTransitionDelete,
1071-
expectedTTL: 0,
1072-
},
1073-
{
1074-
name: "WorkspaceTTL",
1075-
templateAllowAutostop: true,
1076-
templateDefaultTTL: 0,
1077-
workspaceTTL: time.Hour,
1078-
transition: database.WorkspaceTransitionStart,
1079-
expectedTTL: time.Hour,
1080-
},
1081-
{
1082-
name: "TemplateDefaultTTLIgnored",
1083-
templateAllowAutostop: true,
1084-
templateDefaultTTL: time.Hour,
1085-
workspaceTTL: 0,
1086-
transition: database.WorkspaceTransitionStart,
1087-
expectedTTL: 0,
1088-
},
1089-
{
1090-
name: "WorkspaceTTLOverridesTemplateDefaultTTL",
1091-
templateAllowAutostop: true,
1092-
templateDefaultTTL: 2 * time.Hour,
1093-
workspaceTTL: time.Hour,
1094-
transition: database.WorkspaceTransitionStart,
1095-
expectedTTL: time.Hour,
1096-
},
1097-
{
1098-
name: "TemplateMaxTTL",
1099-
templateAllowAutostop: true,
1100-
templateDefaultTTL: 0,
1101-
workspaceTTL: 0,
1102-
transition: database.WorkspaceTransitionStart,
1103-
expectedTTL: 0,
1104-
},
1105-
{
1106-
name: "TemplateMaxTTLOverridesWorkspaceTTL",
1107-
templateAllowAutostop: true,
1108-
templateDefaultTTL: 0,
1109-
workspaceTTL: 3 * time.Hour,
1110-
transition: database.WorkspaceTransitionStart,
1111-
expectedTTL: 3 * time.Hour,
1112-
},
1113-
{
1114-
name: "TemplateMaxTTLOverridesTemplateDefaultTTL",
1115-
templateAllowAutostop: true,
1116-
templateDefaultTTL: 3 * time.Hour,
1117-
workspaceTTL: 0,
1118-
transition: database.WorkspaceTransitionStart,
1119-
expectedTTL: 0,
1120-
},
1121-
{
1122-
name: "TemplateBlockWorkspaceTTL",
1123-
templateAllowAutostop: false,
1124-
templateDefaultTTL: 3 * time.Hour,
1125-
workspaceTTL: 4 * time.Hour,
1126-
transition: database.WorkspaceTransitionStart,
1127-
expectedTTL: 3 * time.Hour,
1128-
},
1129-
}
1130-
1131-
for _, c := range cases {
1132-
c := c
1133-
1134-
t.Run(c.name, func(t *testing.T) {
1135-
t.Parallel()
1136-
1137-
tss := &atomic.Pointer[schedule.TemplateScheduleStore]{}
1138-
srv, db, ps, pd := setup(t, false, &overrides{templateScheduleStore: tss})
1139-
1140-
var store schedule.TemplateScheduleStore = schedule.MockTemplateScheduleStore{
1141-
GetFn: func(_ context.Context, _ database.Store, _ uuid.UUID) (schedule.TemplateScheduleOptions, error) {
1142-
return schedule.TemplateScheduleOptions{
1143-
UserAutostartEnabled: false,
1144-
UserAutostopEnabled: c.templateAllowAutostop,
1145-
DefaultTTL: c.templateDefaultTTL,
1146-
}, nil
1147-
},
1148-
}
1149-
tss.Store(&store)
1150-
1151-
user := dbgen.User(t, db, database.User{})
1152-
template := dbgen.Template(t, db, database.Template{
1153-
Name: "template",
1154-
Provisioner: database.ProvisionerTypeEcho,
1155-
OrganizationID: pd.OrganizationID,
1156-
})
1157-
version := dbgen.TemplateVersion(t, db, database.TemplateVersion{
1158-
OrganizationID: pd.OrganizationID,
1159-
TemplateID: uuid.NullUUID{
1160-
UUID: template.ID,
1161-
Valid: true,
1162-
},
1163-
JobID: uuid.New(),
1164-
})
1165-
err := db.UpdateTemplateScheduleByID(ctx, database.UpdateTemplateScheduleByIDParams{
1166-
ID: template.ID,
1167-
UpdatedAt: dbtime.Now(),
1168-
AllowUserAutostart: c.templateAllowAutostop,
1169-
DefaultTTL: int64(c.templateDefaultTTL),
1170-
})
1171-
require.NoError(t, err)
1172-
file := dbgen.File(t, db, database.File{CreatedBy: user.ID})
1173-
workspaceTTL := sql.NullInt64{}
1174-
if c.workspaceTTL != 0 {
1175-
workspaceTTL = sql.NullInt64{
1176-
Int64: int64(c.workspaceTTL),
1177-
Valid: true,
1178-
}
1179-
}
1180-
workspace := dbgen.Workspace(t, db, database.Workspace{
1181-
TemplateID: template.ID,
1182-
Ttl: workspaceTTL,
1183-
OrganizationID: pd.OrganizationID,
1184-
})
1185-
build := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
1186-
WorkspaceID: workspace.ID,
1187-
TemplateVersionID: version.ID,
1188-
Transition: c.transition,
1189-
Reason: database.BuildReasonInitiator,
1190-
})
1191-
job := dbgen.ProvisionerJob(t, db, ps, database.ProvisionerJob{
1192-
OrganizationID: pd.OrganizationID,
1193-
FileID: file.ID,
1194-
Type: database.ProvisionerJobTypeWorkspaceBuild,
1195-
Input: must(json.Marshal(provisionerdserver.WorkspaceProvisionJob{
1196-
WorkspaceBuildID: build.ID,
1197-
})),
1198-
})
1199-
_, err = db.AcquireProvisionerJob(ctx, database.AcquireProvisionerJobParams{
1200-
OrganizationID: pd.OrganizationID,
1201-
WorkerID: uuid.NullUUID{
1202-
UUID: pd.ID,
1203-
Valid: true,
1204-
},
1205-
Types: []database.ProvisionerType{database.ProvisionerTypeEcho},
1206-
})
1207-
require.NoError(t, err)
1208-
1209-
publishedWorkspace := make(chan struct{})
1210-
closeWorkspaceSubscribe, err := ps.Subscribe(codersdk.WorkspaceNotifyChannel(build.WorkspaceID), func(_ context.Context, _ []byte) {
1211-
close(publishedWorkspace)
1212-
})
1213-
require.NoError(t, err)
1214-
defer closeWorkspaceSubscribe()
1215-
publishedLogs := make(chan struct{})
1216-
closeLogsSubscribe, err := ps.Subscribe(provisionersdk.ProvisionerJobLogsNotifyChannel(job.ID), func(_ context.Context, _ []byte) {
1217-
close(publishedLogs)
1218-
})
1219-
require.NoError(t, err)
1220-
defer closeLogsSubscribe()
1221-
1222-
_, err = srv.CompleteJob(ctx, &proto.CompletedJob{
1223-
JobId: job.ID.String(),
1224-
Type: &proto.CompletedJob_WorkspaceBuild_{
1225-
WorkspaceBuild: &proto.CompletedJob_WorkspaceBuild{
1226-
State: []byte{},
1227-
Resources: []*sdkproto.Resource{{
1228-
Name: "example",
1229-
Type: "aws_instance",
1230-
}},
1231-
},
1232-
},
1233-
})
1234-
require.NoError(t, err)
1235-
1236-
<-publishedWorkspace
1237-
<-publishedLogs
1238-
1239-
workspace, err = db.GetWorkspaceByID(ctx, workspace.ID)
1240-
require.NoError(t, err)
1241-
require.Equal(t, c.transition == database.WorkspaceTransitionDelete, workspace.Deleted)
1242-
1243-
workspaceBuild, err := db.GetWorkspaceBuildByID(ctx, build.ID)
1244-
require.NoError(t, err)
1245-
1246-
if c.expectedTTL == 0 {
1247-
require.True(t, workspaceBuild.Deadline.IsZero())
1248-
} else {
1249-
require.WithinDuration(t, time.Now().Add(c.expectedTTL), workspaceBuild.Deadline, 15*time.Second, "deadline does not match expected")
1250-
}
1251-
1252-
// Legacy TTL does not use scheduling requirements that will set
1253-
// a max deadline.
1254-
require.True(t, workspaceBuild.MaxDeadline.IsZero())
1255-
})
1256-
}
1257-
})
1258-
12591042
t.Run("WorkspaceBuild", func(t *testing.T) {
12601043
t.Parallel()
12611044

enterprise/coderd/schedule/template_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,6 @@ func TestTemplateUpdateBuildDeadlines(t *testing.T) {
293293
UserAutostartEnabled: false,
294294
UserAutostopEnabled: false,
295295
DefaultTTL: 0,
296-
MaxTTL: 0,
297-
UseMaxTTL: false,
298296
AutostopRequirement: autostopReq,
299297
FailureTTL: 0,
300298
TimeTilDormant: 0,
@@ -571,8 +569,6 @@ func TestTemplateUpdateBuildDeadlinesSkip(t *testing.T) {
571569
UserAutostartEnabled: false,
572570
UserAutostopEnabled: false,
573571
DefaultTTL: 0,
574-
MaxTTL: 0,
575-
UseMaxTTL: false,
576572
AutostopRequirement: agplschedule.TemplateAutostopRequirement{
577573
// Every day
578574
DaysOfWeek: 0b01111111,

0 commit comments

Comments
 (0)