mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
fix: Test flake in TestWorkspaceStatus
(#4333)
This also changes the status to be on the workspace build, since that's where the true value is calculated. This exposed a bug where jobs could never enter the canceled state unless fetched by a provisioner daemon, which was nice to fix! See: https://github.com/coder/coder/actions/runs/3175304200/jobs/5173479506
This commit is contained in:
@ -19,6 +19,21 @@ const (
|
||||
WorkspaceTransitionDelete WorkspaceTransition = "delete"
|
||||
)
|
||||
|
||||
type WorkspaceStatus string
|
||||
|
||||
const (
|
||||
WorkspaceStatusPending WorkspaceStatus = "pending"
|
||||
WorkspaceStatusStarting WorkspaceStatus = "starting"
|
||||
WorkspaceStatusRunning WorkspaceStatus = "running"
|
||||
WorkspaceStatusStopping WorkspaceStatus = "stopping"
|
||||
WorkspaceStatusStopped WorkspaceStatus = "stopped"
|
||||
WorkspaceStatusFailed WorkspaceStatus = "failed"
|
||||
WorkspaceStatusCanceling WorkspaceStatus = "canceling"
|
||||
WorkspaceStatusCanceled WorkspaceStatus = "canceled"
|
||||
WorkspaceStatusDeleting WorkspaceStatus = "deleting"
|
||||
WorkspaceStatusDeleted WorkspaceStatus = "deleted"
|
||||
)
|
||||
|
||||
type BuildReason string
|
||||
|
||||
const (
|
||||
@ -52,6 +67,7 @@ type WorkspaceBuild struct {
|
||||
Reason BuildReason `db:"reason" json:"reason"`
|
||||
Resources []WorkspaceResource `json:"resources"`
|
||||
Deadline NullTime `json:"deadline,omitempty"`
|
||||
Status WorkspaceStatus `json:"status"`
|
||||
}
|
||||
|
||||
// WorkspaceBuild returns a single workspace build for a workspace.
|
||||
|
@ -15,38 +15,22 @@ import (
|
||||
// Workspace is a deployment of a template. It references a specific
|
||||
// version and can be updated.
|
||||
type Workspace struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
OwnerID uuid.UUID `json:"owner_id"`
|
||||
OwnerName string `json:"owner_name"`
|
||||
TemplateID uuid.UUID `json:"template_id"`
|
||||
TemplateName string `json:"template_name"`
|
||||
TemplateIcon string `json:"template_icon"`
|
||||
LatestBuild WorkspaceBuild `json:"latest_build"`
|
||||
Outdated bool `json:"outdated"`
|
||||
Name string `json:"name"`
|
||||
AutostartSchedule *string `json:"autostart_schedule,omitempty"`
|
||||
TTLMillis *int64 `json:"ttl_ms,omitempty"`
|
||||
LastUsedAt time.Time `json:"last_used_at"`
|
||||
Status WorkspaceStatus `json:"status"`
|
||||
ID uuid.UUID `json:"id"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
OwnerID uuid.UUID `json:"owner_id"`
|
||||
OwnerName string `json:"owner_name"`
|
||||
TemplateID uuid.UUID `json:"template_id"`
|
||||
TemplateName string `json:"template_name"`
|
||||
TemplateIcon string `json:"template_icon"`
|
||||
LatestBuild WorkspaceBuild `json:"latest_build"`
|
||||
Outdated bool `json:"outdated"`
|
||||
Name string `json:"name"`
|
||||
AutostartSchedule *string `json:"autostart_schedule,omitempty"`
|
||||
TTLMillis *int64 `json:"ttl_ms,omitempty"`
|
||||
LastUsedAt time.Time `json:"last_used_at"`
|
||||
}
|
||||
|
||||
type WorkspaceStatus string
|
||||
|
||||
const (
|
||||
WorkspaceStatusPending WorkspaceStatus = "pending"
|
||||
WorkspaceStatusStarting WorkspaceStatus = "starting"
|
||||
WorkspaceStatusRunning WorkspaceStatus = "running"
|
||||
WorkspaceStatusStopping WorkspaceStatus = "stopping"
|
||||
WorkspaceStatusStopped WorkspaceStatus = "stopped"
|
||||
WorkspaceStatusFailed WorkspaceStatus = "failed"
|
||||
WorkspaceStatusCanceling WorkspaceStatus = "canceling"
|
||||
WorkspaceStatusCanceled WorkspaceStatus = "canceled"
|
||||
WorkspaceStatusDeleting WorkspaceStatus = "deleting"
|
||||
WorkspaceStatusDeleted WorkspaceStatus = "deleted"
|
||||
)
|
||||
|
||||
// CreateWorkspaceBuildRequest provides options to update the latest workspace build.
|
||||
type CreateWorkspaceBuildRequest struct {
|
||||
TemplateVersionID uuid.UUID `json:"template_version_id,omitempty"`
|
||||
|
Reference in New Issue
Block a user