~ knotless Search/
↑↓ move↵ open⇧↵ all results
0
0
main
50 lines · 1.4 KB Raw History
package status

import (
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

	"github.com/johnandersen777/socialweb-computer-kcp/internal/policyengine/models"
)

type Phase string

const (
	PhasePending   Phase = "Pending"
	PhaseRunning   Phase = "Running"
	PhaseSucceeded Phase = "Succeeded"
	PhaseFailed    Phase = "Failed"
	PhaseCancelled Phase = "Cancelled"
)

const (
	ConditionReady     = "Ready"
	ConditionComplete  = "Complete"
	ConditionFailed    = "Failed"
	ConditionSuspended = "Suspended"
	ConditionCancelled = "Cancelled"
	ConditionRestarted = "Restarted"
)

type Status struct {
	Phase         Phase              `json:"phase,omitempty"`
	RunID         string             `json:"runID,omitempty"`
	ExitStatus    models.ExitStatus  `json:"exitStatus,omitempty"`
	Outputs       models.Outputs     `json:"outputs,omitempty"`
	Cache         models.Cache       `json:"cache,omitempty"`
	ConsoleOutput string             `json:"consoleOutput,omitempty"`
	Annotations   models.Annotations `json:"annotations,omitempty"`
	Restarts      int32              `json:"restarts,omitempty"`
	Deadline      *metav1.Time       `json:"deadline,omitempty"`
	StartedAt     *metav1.Time       `json:"startedAt,omitempty"`
	CompletedAt   *metav1.Time       `json:"completedAt,omitempty"`
	Conditions    []metav1.Condition `json:"conditions,omitempty"`
}

func (p Phase) Terminal() bool {
	switch p {
	case PhaseSucceeded, PhaseFailed, PhaseCancelled:
		return true
	default:
		return false
	}
}