@@ -21,59 +21,92 @@ const (
2121
2222// InitialStatus creates an initial Status object for the given DAG
2323func InitialStatus (dag * core.DAG ) DAGRunStatus {
24+ var (
25+ autoRetryLimit int
26+ autoRetryInterval time.Duration
27+ autoRetryBackoff float64
28+ autoRetryMaxInterval time.Duration
29+ procGroup string
30+ suspendFlagName string
31+ )
32+ if dag != nil {
33+ procGroup = dag .ProcGroup ()
34+ suspendFlagName = dag .SuspendFlagName ()
35+ if dag .RetryPolicy != nil {
36+ autoRetryLimit = dag .RetryPolicy .Limit
37+ autoRetryInterval = dag .RetryPolicy .Interval
38+ autoRetryBackoff = dag .RetryPolicy .Backoff
39+ autoRetryMaxInterval = dag .RetryPolicy .MaxInterval
40+ }
41+ }
42+
2443 return DAGRunStatus {
25- Name : dag .Name ,
26- Status : core .NotStarted ,
27- PID : PID (0 ),
28- Nodes : NewNodesFromSteps (dag .Steps ),
29- OnInit : NewNodeOrNil (dag .HandlerOn .Init ),
30- OnExit : NewNodeOrNil (dag .HandlerOn .Exit ),
31- OnSuccess : NewNodeOrNil (dag .HandlerOn .Success ),
32- OnFailure : NewNodeOrNil (dag .HandlerOn .Failure ),
33- OnAbort : NewNodeOrNil (dag .HandlerOn .Abort ),
34- OnWait : NewNodeOrNil (dag .HandlerOn .Wait ),
35- Params : strings .Join (dag .Params , " " ),
36- ParamsList : dag .Params ,
37- AutoRetryCount : 0 ,
38- CreatedAt : time .Now ().UnixMilli (),
39- StartedAt : stringutil .FormatTime (time.Time {}),
40- FinishedAt : stringutil .FormatTime (time.Time {}),
41- Preconditions : dag .Preconditions ,
42- Tags : dag .Tags .Strings (),
44+ Name : dag .Name ,
45+ Status : core .NotStarted ,
46+ PID : PID (0 ),
47+ Nodes : NewNodesFromSteps (dag .Steps ),
48+ OnInit : NewNodeOrNil (dag .HandlerOn .Init ),
49+ OnExit : NewNodeOrNil (dag .HandlerOn .Exit ),
50+ OnSuccess : NewNodeOrNil (dag .HandlerOn .Success ),
51+ OnFailure : NewNodeOrNil (dag .HandlerOn .Failure ),
52+ OnAbort : NewNodeOrNil (dag .HandlerOn .Abort ),
53+ OnWait : NewNodeOrNil (dag .HandlerOn .Wait ),
54+ Params : strings .Join (dag .Params , " " ),
55+ ParamsList : dag .Params ,
56+ AutoRetryCount : 0 ,
57+ AutoRetryLimit : autoRetryLimit ,
58+ AutoRetryInterval : autoRetryInterval ,
59+ AutoRetryBackoff : autoRetryBackoff ,
60+ AutoRetryMaxInterval : autoRetryMaxInterval ,
61+ ProcGroup : procGroup ,
62+ SuspendFlagName : suspendFlagName ,
63+ CreatedAt : time .Now ().UnixMilli (),
64+ StartedAt : stringutil .FormatTime (time.Time {}),
65+ FinishedAt : stringutil .FormatTime (time.Time {}),
66+ Preconditions : dag .Preconditions ,
67+ Tags : dag .Tags .Strings (),
4368 }
4469}
4570
4671// DAGRunStatus represents the complete execution state of a dag-run.
4772type DAGRunStatus struct {
48- Root DAGRunRef `json:"root,omitzero"`
49- Parent DAGRunRef `json:"parent,omitzero"`
50- Name string `json:"name"`
51- DAGRunID string `json:"dagRunId"`
52- AttemptID string `json:"attemptId"`
53- AttemptKey string `json:"attemptKey,omitempty"` // Globally unique attempt identifier
54- Status core.Status `json:"status"`
55- TriggerType core.TriggerType `json:"triggerType,omitempty"`
56- WorkerID string `json:"workerId,omitempty"`
57- PID PID `json:"pid,omitempty"`
58- Nodes []* Node `json:"nodes,omitempty"`
59- OnInit * Node `json:"onInit,omitempty"`
60- OnExit * Node `json:"onExit,omitempty"`
61- OnSuccess * Node `json:"onSuccess,omitempty"`
62- OnFailure * Node `json:"onFailure,omitempty"`
63- OnAbort * Node `json:"onAbort,omitempty"`
64- OnWait * Node `json:"onWait,omitempty"`
65- CreatedAt int64 `json:"createdAt,omitempty"`
66- QueuedAt string `json:"queuedAt,omitempty"`
67- ScheduleTime string `json:"scheduleTime,omitempty"`
68- StartedAt string `json:"startedAt,omitempty"`
69- FinishedAt string `json:"finishedAt,omitempty"`
70- AutoRetryCount int `json:"autoRetryCount,omitempty"`
71- Log string `json:"log,omitempty"`
72- Error string `json:"error,omitempty"`
73- Params string `json:"params,omitempty"`
74- ParamsList []string `json:"paramsList,omitempty"`
75- Preconditions []* core.Condition `json:"preconditions,omitempty"`
76- Tags []string `json:"tags,omitempty"`
73+ Root DAGRunRef `json:"root,omitzero"`
74+ Parent DAGRunRef `json:"parent,omitzero"`
75+ Name string `json:"name"`
76+ DAGRunID string `json:"dagRunId"`
77+ AttemptID string `json:"attemptId"`
78+ AttemptKey string `json:"attemptKey,omitempty"` // Globally unique attempt identifier
79+ Status core.Status `json:"status"`
80+ TriggerType core.TriggerType `json:"triggerType,omitempty"`
81+ WorkerID string `json:"workerId,omitempty"`
82+ PID PID `json:"pid,omitempty"`
83+ Nodes []* Node `json:"nodes,omitempty"`
84+ OnInit * Node `json:"onInit,omitempty"`
85+ OnExit * Node `json:"onExit,omitempty"`
86+ OnSuccess * Node `json:"onSuccess,omitempty"`
87+ OnFailure * Node `json:"onFailure,omitempty"`
88+ OnAbort * Node `json:"onAbort,omitempty"`
89+ OnWait * Node `json:"onWait,omitempty"`
90+ CreatedAt int64 `json:"createdAt,omitempty"`
91+ QueuedAt string `json:"queuedAt,omitempty"`
92+ ScheduleTime string `json:"scheduleTime,omitempty"`
93+ StartedAt string `json:"startedAt,omitempty"`
94+ FinishedAt string `json:"finishedAt,omitempty"`
95+ AutoRetryCount int `json:"autoRetryCount,omitempty"`
96+ AutoRetryLimit int `json:"autoRetryLimit,omitempty"`
97+ // AutoRetryInterval is stored as a duration snapshot for retry scanner decisions.
98+ AutoRetryInterval time.Duration `json:"autoRetryInterval,omitempty"`
99+ AutoRetryBackoff float64 `json:"autoRetryBackoff,omitempty"`
100+ // AutoRetryMaxInterval is stored as a duration snapshot for retry scanner decisions.
101+ AutoRetryMaxInterval time.Duration `json:"autoRetryMaxInterval,omitempty"`
102+ ProcGroup string `json:"procGroup,omitempty"`
103+ SuspendFlagName string `json:"suspendFlagName,omitempty"`
104+ Log string `json:"log,omitempty"`
105+ Error string `json:"error,omitempty"`
106+ Params string `json:"params,omitempty"`
107+ ParamsList []string `json:"paramsList,omitempty"`
108+ Preconditions []* core.Condition `json:"preconditions,omitempty"`
109+ Tags []string `json:"tags,omitempty"`
77110}
78111
79112// DAGRun returns a reference to the dag-run associated with this status
0 commit comments