coder/codersdk/workspacedisplaystatus.go
Kyle Carberry b97043850b fix: Remove action from build cancelation names (#4930)
This looked weird in the UI and didn't conform to our other states.
2022-11-08 17:12:06 +00:00

49 lines
1.4 KiB
Go

package codersdk
// Maps workspace transition to display status for Running job status
var runningStatusFromTransition = map[WorkspaceTransition]string{
WorkspaceTransitionStart: "Starting",
WorkspaceTransitionStop: "Stopping",
WorkspaceTransitionDelete: "Deleting",
}
// Maps workspace transition to display status for Succeeded job status
var succeededStatusFromTransition = map[WorkspaceTransition]string{
WorkspaceTransitionStart: "Started",
WorkspaceTransitionStop: "Stopped",
WorkspaceTransitionDelete: "Deleted",
}
const unknownStatus = "Unknown"
// WorkspaceDisplayStatus computes a status to display on CLI/UI based on
// the workspace transition and the status of the provisioner job.
// This code is in sync with how we compute the status on frontend.
// Ref: site/src/util/workspace.ts (getWorkspaceStatus)
func WorkspaceDisplayStatus(jobStatus ProvisionerJobStatus, transition WorkspaceTransition) string {
switch jobStatus {
case ProvisionerJobSucceeded:
status, ok := succeededStatusFromTransition[transition]
if !ok {
return unknownStatus
}
return status
case ProvisionerJobRunning:
status, ok := runningStatusFromTransition[transition]
if !ok {
return unknownStatus
}
return status
case ProvisionerJobPending:
return "Queued"
case ProvisionerJobCanceling:
return "Canceling"
case ProvisionerJobCanceled:
return "Canceled"
case ProvisionerJobFailed:
return "Failed"
default:
return unknownStatus
}
}