Documentation
¶
Index ¶
- Constants
- func ChainPredecessor(jobID domaintypes.JobID, jobsByID map[domaintypes.JobID]store.Job) *store.Job
- func DeriveWaveStatus(counts *domaintypes.RunCounts) string
- func IsGateJobType(jobType domaintypes.JobType) bool
- func IsTerminalRunStatus(status domaintypes.RunStatus) bool
- func IsTerminalWaveStatus(status domaintypes.WaveStatus) bool
- func JobStatusFromExitCode(exitCode int) domaintypes.JobStatus
- func JobStatusFromExitCodeForJobType(jobType domaintypes.JobType, exitCode int) domaintypes.JobStatus
- func JobStatusFromRunError(err error) domaintypes.JobStatus
- func StackExpectationFromMigStack(stack contracts.MigStack) *contracts.StackExpectation
- type ClaimDecision
- type CompletionChainAction
- type CompletionDecision
- type RunCompletionEval
Constants ¶
const ( // DerivedStatusPending indicates no runs have started (all queued or no runs). DerivedStatusPending = "pending" // DerivedStatusRunning indicates at least one run is currently running. DerivedStatusRunning = "running" // DerivedStatusCompleted indicates all runs finished with no failures. DerivedStatusCompleted = "completed" // DerivedStatusFailed indicates at least one run failed (and none running). DerivedStatusFailed = "failed" // DerivedStatusCancelled indicates the wave was stopped and runs were cancelled. DerivedStatusCancelled = "cancelled" )
Derived wave status constants representing the wave-level state computed from run statuses.
Variables ¶
This section is empty.
Functions ¶
func ChainPredecessor ¶
func ChainPredecessor(jobID domaintypes.JobID, jobsByID map[domaintypes.JobID]store.Job) *store.Job
ChainPredecessor returns the job in jobsByID whose NextID points to jobID, or nil if no such job exists.
func DeriveWaveStatus ¶
func DeriveWaveStatus(counts *domaintypes.RunCounts) string
DeriveWaveStatus computes a single wave-level status from run counts. Precedence order: cancelled > running > failed > completed > pending.
func IsGateJobType ¶
func IsGateJobType(jobType domaintypes.JobType) bool
IsGateJobType reports whether jobType is a gate variant (pre or post).
func IsTerminalRunStatus ¶
func IsTerminalRunStatus(status domaintypes.RunStatus) bool
IsTerminalRunStatus reports whether the run status is terminal.
func IsTerminalWaveStatus ¶
func IsTerminalWaveStatus(status domaintypes.WaveStatus) bool
IsTerminalWaveStatus reports whether the wave status is terminal.
func JobStatusFromExitCode ¶
func JobStatusFromExitCode(exitCode int) domaintypes.JobStatus
JobStatusFromExitCode maps a completed process exit code to terminal status. 0 => Success, 1 => Fail, any other value => Error.
func JobStatusFromExitCodeForJobType ¶
func JobStatusFromExitCodeForJobType(jobType domaintypes.JobType, exitCode int) domaintypes.JobStatus
JobStatusFromExitCodeForJobType maps process exit codes to terminal status with job-type-specific overrides.
func JobStatusFromRunError ¶
func JobStatusFromRunError(err error) domaintypes.JobStatus
JobStatusFromRunError maps a job execution error to the appropriate terminal job status. context.Canceled and context.DeadlineExceeded produce Cancelled; all other errors produce Error. This is the canonical status-from-error mapping consumed across all nodeagent execution paths.
func StackExpectationFromMigStack ¶
func StackExpectationFromMigStack(stack contracts.MigStack) *contracts.StackExpectation
StackExpectationFromMigStack converts a detected MigStack to a StackExpectation, or returns nil for unknown stacks.
Types ¶
type ClaimDecision ¶
type ClaimDecision struct {
// AdvanceRunToRunning is true when the run should be transitioned
// from Queued to Running.
AdvanceRunToRunning bool
}
ClaimDecision is the pure output of claim transition evaluation.
func EvaluateClaimDecision ¶
func EvaluateClaimDecision(jobType domaintypes.JobType, runStatus domaintypes.RunStatus) ClaimDecision
EvaluateClaimDecision computes whether the run should advance to Running.
type CompletionChainAction ¶
type CompletionChainAction int
CompletionChainAction is the chain management action required after a job completes.
const ( // CompletionChainNoAction means no chain management is needed (e.g. success with no successor). CompletionChainNoAction CompletionChainAction = iota // CompletionChainCancelRemainder cancels remaining non-terminal jobs in the chain. CompletionChainCancelRemainder // CompletionChainAdvanceNext promotes the next linked job for execution. CompletionChainAdvanceNext )
type CompletionDecision ¶
type CompletionDecision struct {
ChainAction CompletionChainAction
}
CompletionDecision is the pure output of completion transition evaluation.
func EvaluateCompletionDecision ¶
func EvaluateCompletionDecision( jobType domaintypes.JobType, jobStatus domaintypes.JobStatus, hasNext bool, ) CompletionDecision
EvaluateCompletionDecision computes the chain management action required after a job completes. It is pure: no I/O is performed. hasNext should be true when the completed job has a linked successor (NextID != nil).
type RunCompletionEval ¶
RunCompletionEval is the pure evaluation result for run completion.
func EvaluateWaveCompletionFromRunCounts ¶
func EvaluateWaveCompletionFromRunCounts(counts []store.CountRunsByWaveStatusRow) RunCompletionEval
EvaluateWaveCompletionFromRunCounts determines whether a wave can be marked Finished. Returns ShouldFinish=true when all runs are in terminal states, along with the derived run state (succeeded, failed, or cancelled).