mirror of
https://github.com/onepanelio/onepanel.git
synced 2025-10-05 05:36:50 +08:00
Adding support for terminated workflow executions.
- When terminating, adding started_at and finished_at timestamps Updated workflow_template.proto to return the count of terminated executions. - Updating supporting code
This commit is contained in:
@@ -126,6 +126,7 @@ message WorkflowExecutionStatisticReport {
|
|||||||
int32 running = 3;
|
int32 running = 3;
|
||||||
int32 completed = 4;
|
int32 completed = 4;
|
||||||
int32 failed = 5;
|
int32 failed = 5;
|
||||||
|
int32 terminated = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CronWorkflowStatisticsReport {
|
message CronWorkflowStatisticsReport {
|
||||||
|
@@ -944,6 +944,24 @@ func (c *Client) SuspendWorkflowExecution(namespace, uid string) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) TerminateWorkflowExecution(namespace, uid string) (err error) {
|
func (c *Client) TerminateWorkflowExecution(namespace, uid string) (err error) {
|
||||||
|
query, args, err := sb.Update("workflow_executions").
|
||||||
|
Set("phase", "Terminated").
|
||||||
|
Set("started_at", time.Time.UTC(time.Now())).
|
||||||
|
Set("finished_at", time.Time.UTC(time.Now())).
|
||||||
|
Where(sq.Eq{
|
||||||
|
"uid": uid,
|
||||||
|
"namespace": namespace,
|
||||||
|
}).
|
||||||
|
ToSql()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := c.DB.Exec(query, args...); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = argoutil.TerminateWorkflow(c.ArgoprojV1alpha1().Workflows(namespace), uid)
|
err = argoutil.TerminateWorkflow(c.ArgoprojV1alpha1().Workflows(namespace), uid)
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -1242,6 +1260,7 @@ func (c *Client) GetWorkflowExecutionStatisticsForTemplates(workflowTemplates ..
|
|||||||
COUNT(*) FILTER (WHERE finished_at IS NULL AND (phase = 'Running' OR phase = 'Pending')) running,
|
COUNT(*) FILTER (WHERE finished_at IS NULL AND (phase = 'Running' OR phase = 'Pending')) running,
|
||||||
COUNT(*) FILTER (WHERE finished_at IS NOT NULL AND phase = 'Succeeded') completed,
|
COUNT(*) FILTER (WHERE finished_at IS NOT NULL AND phase = 'Succeeded') completed,
|
||||||
COUNT(*) FILTER (WHERE finished_at IS NOT NULL AND (phase = 'Failed' OR phase = 'Error')) failed,
|
COUNT(*) FILTER (WHERE finished_at IS NOT NULL AND (phase = 'Failed' OR phase = 'Error')) failed,
|
||||||
|
COUNT(*) FILTER (WHERE phase = 'Terminated') terminated,
|
||||||
COUNT(*) total`
|
COUNT(*) total`
|
||||||
|
|
||||||
query, args, err := sb.Select(statsSelect).
|
query, args, err := sb.Select(statsSelect).
|
||||||
|
@@ -38,6 +38,7 @@ func apiWorkflowTemplate(wft *v1.WorkflowTemplate) *api.WorkflowTemplate {
|
|||||||
Running: wft.WorkflowExecutionStatisticReport.Running,
|
Running: wft.WorkflowExecutionStatisticReport.Running,
|
||||||
Completed: wft.WorkflowExecutionStatisticReport.Completed,
|
Completed: wft.WorkflowExecutionStatisticReport.Completed,
|
||||||
Failed: wft.WorkflowExecutionStatisticReport.Failed,
|
Failed: wft.WorkflowExecutionStatisticReport.Failed,
|
||||||
|
Terminated: wft.WorkflowExecutionStatisticReport.Terminated,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user