mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: rename template restart requirement to autostop requirement (#9295)
This commit is contained in:
@@ -316,8 +316,8 @@ func TestScheduleOverride(t *testing.T) {
|
||||
stdoutBuf = &bytes.Buffer{}
|
||||
)
|
||||
require.Zero(t, template.DefaultTTLMillis)
|
||||
require.Empty(t, template.RestartRequirement.DaysOfWeek)
|
||||
require.Zero(t, template.RestartRequirement.Weeks)
|
||||
require.Empty(t, template.AutostopRequirement.DaysOfWeek)
|
||||
require.Zero(t, template.AutostopRequirement.Weeks)
|
||||
|
||||
// Unset the workspace TTL
|
||||
err = client.UpdateWorkspaceTTL(ctx, workspace.ID, codersdk.UpdateWorkspaceTTLRequest{TTLMillis: nil})
|
||||
|
||||
+30
-30
@@ -15,19 +15,19 @@ import (
|
||||
|
||||
func (r *RootCmd) templateEdit() *clibase.Cmd {
|
||||
var (
|
||||
name string
|
||||
displayName string
|
||||
description string
|
||||
icon string
|
||||
defaultTTL time.Duration
|
||||
maxTTL time.Duration
|
||||
restartRequirementDaysOfWeek []string
|
||||
restartRequirementWeeks int64
|
||||
failureTTL time.Duration
|
||||
inactivityTTL time.Duration
|
||||
allowUserCancelWorkspaceJobs bool
|
||||
allowUserAutostart bool
|
||||
allowUserAutostop bool
|
||||
name string
|
||||
displayName string
|
||||
description string
|
||||
icon string
|
||||
defaultTTL time.Duration
|
||||
maxTTL time.Duration
|
||||
autostopRequirementDaysOfWeek []string
|
||||
autostopRequirementWeeks int64
|
||||
failureTTL time.Duration
|
||||
inactivityTTL time.Duration
|
||||
allowUserCancelWorkspaceJobs bool
|
||||
allowUserAutostart bool
|
||||
allowUserAutostop bool
|
||||
)
|
||||
client := new(codersdk.Client)
|
||||
|
||||
@@ -51,9 +51,9 @@ func (r *RootCmd) templateEdit() *clibase.Cmd {
|
||||
}
|
||||
}
|
||||
|
||||
unsetRestartRequirementDaysOfWeek := len(restartRequirementDaysOfWeek) == 1 && restartRequirementDaysOfWeek[0] == "none"
|
||||
requiresEntitlement := (len(restartRequirementDaysOfWeek) > 0 && !unsetRestartRequirementDaysOfWeek) ||
|
||||
restartRequirementWeeks > 0 ||
|
||||
unsetAutostopRequirementDaysOfWeek := len(autostopRequirementDaysOfWeek) == 1 && autostopRequirementDaysOfWeek[0] == "none"
|
||||
requiresEntitlement := (len(autostopRequirementDaysOfWeek) > 0 && !unsetAutostopRequirementDaysOfWeek) ||
|
||||
autostopRequirementWeeks > 0 ||
|
||||
!allowUserAutostart ||
|
||||
!allowUserAutostop ||
|
||||
maxTTL != 0 ||
|
||||
@@ -84,11 +84,11 @@ func (r *RootCmd) templateEdit() *clibase.Cmd {
|
||||
|
||||
// Copy the default value if the list is empty, or if the user
|
||||
// specified the "none" value clear the list.
|
||||
if len(restartRequirementDaysOfWeek) == 0 {
|
||||
restartRequirementDaysOfWeek = template.RestartRequirement.DaysOfWeek
|
||||
if len(autostopRequirementDaysOfWeek) == 0 {
|
||||
autostopRequirementDaysOfWeek = template.AutostopRequirement.DaysOfWeek
|
||||
}
|
||||
if unsetRestartRequirementDaysOfWeek {
|
||||
restartRequirementDaysOfWeek = []string{}
|
||||
if unsetAutostopRequirementDaysOfWeek {
|
||||
autostopRequirementDaysOfWeek = []string{}
|
||||
}
|
||||
|
||||
// NOTE: coderd will ignore empty fields.
|
||||
@@ -99,9 +99,9 @@ func (r *RootCmd) templateEdit() *clibase.Cmd {
|
||||
Icon: icon,
|
||||
DefaultTTLMillis: defaultTTL.Milliseconds(),
|
||||
MaxTTLMillis: maxTTL.Milliseconds(),
|
||||
RestartRequirement: &codersdk.TemplateRestartRequirement{
|
||||
DaysOfWeek: restartRequirementDaysOfWeek,
|
||||
Weeks: restartRequirementWeeks,
|
||||
AutostopRequirement: &codersdk.TemplateAutostopRequirement{
|
||||
DaysOfWeek: autostopRequirementDaysOfWeek,
|
||||
Weeks: autostopRequirementWeeks,
|
||||
},
|
||||
FailureTTLMillis: failureTTL.Milliseconds(),
|
||||
TimeTilDormantMillis: inactivityTTL.Milliseconds(),
|
||||
@@ -151,28 +151,28 @@ func (r *RootCmd) templateEdit() *clibase.Cmd {
|
||||
Value: clibase.DurationOf(&maxTTL),
|
||||
},
|
||||
{
|
||||
Flag: "restart-requirement-weekdays",
|
||||
Description: "Edit the template restart requirement weekdays - workspaces created from this template must be restarted on the given weekdays. To unset this value for the template (and disable the restart requirement for the template), pass 'none'.",
|
||||
Flag: "autostop-requirement-weekdays",
|
||||
Description: "Edit the template autostop requirement weekdays - workspaces created from this template must be restarted on the given weekdays. To unset this value for the template (and disable the autostop requirement for the template), pass 'none'.",
|
||||
// TODO(@dean): unhide when we delete max_ttl
|
||||
Hidden: true,
|
||||
Value: clibase.Validate(clibase.StringArrayOf(&restartRequirementDaysOfWeek), func(value *clibase.StringArray) error {
|
||||
Value: clibase.Validate(clibase.StringArrayOf(&autostopRequirementDaysOfWeek), func(value *clibase.StringArray) error {
|
||||
v := value.GetSlice()
|
||||
if len(v) == 1 && v[0] == "none" {
|
||||
return nil
|
||||
}
|
||||
_, err := codersdk.WeekdaysToBitmap(v)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("invalid restart requirement days of week %q: %w", strings.Join(v, ","), err)
|
||||
return xerrors.Errorf("invalid autostop requirement days of week %q: %w", strings.Join(v, ","), err)
|
||||
}
|
||||
return nil
|
||||
}),
|
||||
},
|
||||
{
|
||||
Flag: "restart-requirement-weeks",
|
||||
Description: "Edit the template restart requirement weeks - workspaces created from this template must be restarted on an n-weekly basis.",
|
||||
Flag: "autostop-requirement-weeks",
|
||||
Description: "Edit the template autostop requirement weeks - workspaces created from this template must be restarted on an n-weekly basis.",
|
||||
// TODO(@dean): unhide when we delete max_ttl
|
||||
Hidden: true,
|
||||
Value: clibase.Int64Of(&restartRequirementWeeks),
|
||||
Value: clibase.Int64Of(&autostopRequirementWeeks),
|
||||
},
|
||||
{
|
||||
Flag: "failure-ttl",
|
||||
|
||||
+27
-27
@@ -242,7 +242,7 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, "", updated.Icon)
|
||||
assert.Equal(t, "", updated.DisplayName)
|
||||
})
|
||||
t.Run("RestartRequirement", func(t *testing.T) {
|
||||
t.Run("AutostopRequirement", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
t.Run("BlockedAGPL", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
@@ -252,7 +252,7 @@ func TestTemplateEdit(t *testing.T) {
|
||||
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
|
||||
ctr.DefaultTTLMillis = nil
|
||||
ctr.RestartRequirement = nil
|
||||
ctr.AutostopRequirement = nil
|
||||
})
|
||||
|
||||
cases := []struct {
|
||||
@@ -263,20 +263,20 @@ func TestTemplateEdit(t *testing.T) {
|
||||
{
|
||||
name: "Weekdays",
|
||||
flags: []string{
|
||||
"--restart-requirement-weekdays", "monday",
|
||||
"--autostop-requirement-weekdays", "monday",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "WeekdaysNoneAllowed",
|
||||
flags: []string{
|
||||
"--restart-requirement-weekdays", "none",
|
||||
"--autostop-requirement-weekdays", "none",
|
||||
},
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
name: "Weeks",
|
||||
flags: []string{
|
||||
"--restart-requirement-weeks", "1",
|
||||
"--autostop-requirement-weeks", "1",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -312,8 +312,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -326,7 +326,7 @@ func TestTemplateEdit(t *testing.T) {
|
||||
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
|
||||
ctr.DefaultTTLMillis = nil
|
||||
ctr.RestartRequirement = nil
|
||||
ctr.AutostopRequirement = nil
|
||||
})
|
||||
|
||||
// Make a proxy server that will return a valid entitlements
|
||||
@@ -377,20 +377,20 @@ func TestTemplateEdit(t *testing.T) {
|
||||
{
|
||||
name: "Weekdays",
|
||||
flags: []string{
|
||||
"--restart-requirement-weekdays", "monday",
|
||||
"--autostop-requirement-weekdays", "monday",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "WeekdaysNoneAllowed",
|
||||
flags: []string{
|
||||
"--restart-requirement-weekdays", "none",
|
||||
"--autostop-requirement-weekdays", "none",
|
||||
},
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
name: "Weeks",
|
||||
flags: []string{
|
||||
"--restart-requirement-weeks", "1",
|
||||
"--autostop-requirement-weeks", "1",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -426,8 +426,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -439,7 +439,7 @@ func TestTemplateEdit(t *testing.T) {
|
||||
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
|
||||
ctr.DefaultTTLMillis = nil
|
||||
ctr.RestartRequirement = nil
|
||||
ctr.AutostopRequirement = nil
|
||||
})
|
||||
|
||||
// Make a proxy server that will return a valid entitlements
|
||||
@@ -475,8 +475,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
var req codersdk.UpdateTemplateMeta
|
||||
err = json.Unmarshal(body, &req)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, req.RestartRequirement.DaysOfWeek, []string{"monday", "tuesday"})
|
||||
assert.EqualValues(t, req.RestartRequirement.Weeks, 3)
|
||||
assert.Equal(t, req.AutostopRequirement.DaysOfWeek, []string{"monday", "tuesday"})
|
||||
assert.EqualValues(t, req.AutostopRequirement.Weeks, 3)
|
||||
|
||||
r.Body = io.NopCloser(bytes.NewReader(body))
|
||||
atomic.AddInt64(&updateTemplateCalled, 1)
|
||||
@@ -504,8 +504,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
"templates",
|
||||
"edit",
|
||||
template.Name,
|
||||
"--restart-requirement-weekdays", "monday,tuesday",
|
||||
"--restart-requirement-weeks", "3",
|
||||
"--autostop-requirement-weekdays", "monday,tuesday",
|
||||
"--autostop-requirement-weeks", "3",
|
||||
}
|
||||
inv, root := clitest.New(t, cmdArgs...)
|
||||
clitest.SetupConfig(t, proxyClient, root)
|
||||
@@ -525,8 +525,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
})
|
||||
})
|
||||
// TODO(@dean): remove this test when we remove max_ttl
|
||||
@@ -750,7 +750,7 @@ func TestTemplateEdit(t *testing.T) {
|
||||
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
|
||||
ctr.DefaultTTLMillis = nil
|
||||
ctr.RestartRequirement = nil
|
||||
ctr.AutostopRequirement = nil
|
||||
ctr.FailureTTLMillis = nil
|
||||
ctr.TimeTilDormantMillis = nil
|
||||
})
|
||||
@@ -793,8 +793,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
|
||||
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
|
||||
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
|
||||
@@ -887,8 +887,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
|
||||
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
|
||||
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
|
||||
@@ -985,8 +985,8 @@ func TestTemplateEdit(t *testing.T) {
|
||||
assert.Equal(t, template.Icon, updated.Icon)
|
||||
assert.Equal(t, template.DisplayName, updated.DisplayName)
|
||||
assert.Equal(t, template.DefaultTTLMillis, updated.DefaultTTLMillis)
|
||||
assert.Equal(t, template.RestartRequirement.DaysOfWeek, updated.RestartRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.RestartRequirement.Weeks, updated.RestartRequirement.Weeks)
|
||||
assert.Equal(t, template.AutostopRequirement.DaysOfWeek, updated.AutostopRequirement.DaysOfWeek)
|
||||
assert.Equal(t, template.AutostopRequirement.Weeks, updated.AutostopRequirement.Weeks)
|
||||
assert.Equal(t, template.AllowUserAutostart, updated.AllowUserAutostart)
|
||||
assert.Equal(t, template.AllowUserAutostop, updated.AllowUserAutostop)
|
||||
assert.Equal(t, template.FailureTTLMillis, updated.FailureTTLMillis)
|
||||
|
||||
Reference in New Issue
Block a user