Files
orca/internal/model/job.go
T

51 lines
1.4 KiB
Go

package model
import "time"
type JobStatus string
const (
JobStatusPending JobStatus = "pending"
JobStatusRunning JobStatus = "running"
JobStatusComplete JobStatus = "complete"
JobStatusFailed JobStatus = "failed"
JobStatusStopped JobStatus = "stopped"
)
type Job struct {
ID string `json:"id"`
Name string `json:"name"`
Spec string `json:"spec"`
Status JobStatus `json:"status"`
CreatedAt time.Time `json:"created_at"`
StartedAt *time.Time `json:"started_at,omitempty"`
EndedAt *time.Time `json:"ended_at,omitempty"`
ExitCode int `json:"exit_code"`
}
type TaskStatus string
const (
TaskStatusPending TaskStatus = "pending"
TaskStatusRunning TaskStatus = "running"
TaskStatusComplete TaskStatus = "complete"
TaskStatusFailed TaskStatus = "failed"
TaskStatusKilled TaskStatus = "killed"
)
type Task struct {
ID string `json:"id"`
JobID string `json:"job_id"`
Command string `json:"command"`
Args []string `json:"args"`
Env []string `json:"env,omitempty"`
PID int `json:"pid"`
ExitCode int `json:"exit_code"`
Status TaskStatus `json:"status"`
CreatedAt time.Time `json:"created_at"`
StartedAt *time.Time `json:"started_at,omitempty"`
EndedAt *time.Time `json:"ended_at,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
}