func thriftJobToScoot()

in scheduler/api/thrift/run_job.go [36:88]


func thriftJobToScoot(def *scoot.JobDefinition) (result domain.JobDefinition, err error) {
	if def == nil {
		return result, fmt.Errorf("nil job definition")
	}
	result.Tasks = []domain.TaskDefinition{}

	for _, t := range def.Tasks {
		var task domain.TaskDefinition
		if t == nil {
			return result, fmt.Errorf("nil task definition")
		}
		if t.Command == nil {
			return result, fmt.Errorf("nil command")
		}
		task.Command.Argv = t.Command.Argv
		task.Command.EnvVars = make(map[string]string)
		for k, v := range t.Command.EnvVars {
			task.Command.EnvVars[k] = v
		}
		if t.SnapshotId != nil {
			task.SnapshotID = *t.SnapshotId
		}
		if t.TimeoutMs != nil && *t.TimeoutMs > 0 {
			task.Command.Timeout = time.Duration(*t.TimeoutMs) * time.Millisecond
		} else if def.DefaultTaskTimeoutMs != nil {
			task.Command.Timeout = time.Duration(*def.DefaultTaskTimeoutMs) * time.Millisecond
		}
		if t.TaskId == nil {
			return result, fmt.Errorf("nil taskId")
		}
		task.TaskID = *t.TaskId

		result.Tasks = append(result.Tasks, task)
	}

	if def.Tag != nil {
		result.Tag = *def.Tag
	}
	if def.Basis != nil {
		result.Basis = *def.Basis
	}
	if def.JobType != nil {
		result.JobType = *def.JobType
	}
	if def.Requestor != nil {
		result.Requestor = *def.Requestor
	}
	if def.Priority != nil {
		result.Priority = domain.Priority(*def.Priority)
	}

	return result, nil
}