mirror of
https://github.com/mickael-kerjean/filestash
synced 2025-12-06 08:22:24 +01:00
29 lines
769 B
Go
29 lines
769 B
Go
package workflow
|
|
|
|
import (
|
|
. "github.com/mickael-kerjean/filestash/server/workflow/model"
|
|
)
|
|
|
|
func ExecuteJob(jobID string, workflow Workflow, input map[string]string) {
|
|
var err error
|
|
UpdateJob(jobID, "RUNNING", workflow.Actions, input)
|
|
for i := 0; i < len(workflow.Actions); i++ {
|
|
if workflow.Actions[i].Done {
|
|
continue
|
|
}
|
|
input, err = ExecuteAction(workflow.Actions[i], input)
|
|
workflow.Actions[i].Done = true
|
|
if err != nil {
|
|
status := "FAILURE"
|
|
workflow.Actions[i].Done = false
|
|
if input["status"] == "PENDING" {
|
|
status = "PENDING"
|
|
}
|
|
UpdateJob(jobID, status, workflow.Actions, input)
|
|
return
|
|
}
|
|
UpdateJob(jobID, "RUNNING", workflow.Actions, input)
|
|
}
|
|
UpdateJob(jobID, "SUCCESS", workflow.Actions, map[string]string{})
|
|
return
|
|
}
|