add timeout monitord
This commit is contained in:
		| @@ -20,6 +20,7 @@ import ( | ||||
| type ArgoBuilder struct { | ||||
| 	graph    graph.Graph | ||||
| 	Workflow Workflow | ||||
| 	Timeout  int | ||||
| } | ||||
|  | ||||
| type Workflow struct { | ||||
| @@ -36,13 +37,16 @@ type Spec struct { | ||||
| 	Arguments  []Parameter           `yaml:"arguments,omitempty"` | ||||
| 	Volumes    []VolumeClaimTemplate `yaml:"volumeClaimTemplates,omitempty"` | ||||
| 	Templates  []Template            `yaml:"templates"` | ||||
| 	Timeout    int                   `yaml:"activeDeadlineSeconds,omitempty"` | ||||
| } | ||||
|  | ||||
| func (b *ArgoBuilder) CreateDAG() (string, error) { | ||||
|  | ||||
| 	b.createTemplates() | ||||
| 	b.createDAGstep() | ||||
| 	b.createVolumes() | ||||
| 	if b.Timeout > 0 { | ||||
| 		b.Workflow.Spec.Timeout = b.Timeout | ||||
| 	} | ||||
| 	b.Workflow.Spec.Entrypoint = "dag" | ||||
| 	b.Workflow.ApiVersion = "argoproj.io/v1alpha1" | ||||
| 	b.Workflow.Kind = "Workflow" | ||||
|   | ||||
| @@ -39,14 +39,14 @@ func (w *WorflowDB) getWorkflow(workflow_id string) (workflow *workflow.Workflow | ||||
| 	return new_wf, nil | ||||
| } | ||||
|  | ||||
| func (w *WorflowDB) ExportToArgo() (string, error) { | ||||
| func (w *WorflowDB) ExportToArgo(timeout int) (string, error) { | ||||
| 	logger := oclib.GetLogger() | ||||
|  | ||||
| 	if len(w.Workflow.Name) == 0 || w.Workflow.Graph == nil { | ||||
| 		return "", fmt.Errorf("can't export a graph that has not been loaded yet") | ||||
| 	} | ||||
|  | ||||
| 	argo_builder := ArgoBuilder{graph: *w.Workflow.Graph} | ||||
| 	argo_builder := ArgoBuilder{graph: *w.Workflow.Graph, Timeout: timeout} | ||||
| 	filename, err := argo_builder.CreateDAG() | ||||
| 	if err != nil { | ||||
| 		logger.Error().Msg("Could not create the argo file for " + w.Workflow.Name) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user