Exemplo n.º 1
0
func makeMap(task eremetic.Task) map[string]interface{} {
	data := make(map[string]interface{})

	data["TaskID"] = task.ID
	data["CommandEnv"] = task.Environment
	data["CommandUser"] = task.User
	data["Command"] = task.Command
	// TODO: Support more than docker?
	data["ContainerImage"] = task.Image
	data["FrameworkID"] = task.FrameworkID
	data["Hostname"] = task.Hostname
	data["Name"] = task.Name
	data["SlaveID"] = task.SlaveID
	data["SlaveConstraints"] = task.SlaveConstraints
	data["Status"] = task.Status
	data["CPU"] = fmt.Sprintf("%.2f", task.TaskCPUs)
	data["Memory"] = fmt.Sprintf("%.2f", task.TaskMem)
	data["Terminated"] = task.IsTerminated()

	return data
}
Exemplo n.º 2
0
// ListNonTerminalTasks returns a list of tasks that are not yet finished in one
// way or another.
func (db *TaskDB) ListNonTerminalTasks() ([]*eremetic.Task, error) {
	tasks := []*eremetic.Task{}

	err := db.conn.View(func(tx *bolt.Tx) error {
		b := tx.Bucket([]byte("tasks"))
		if b == nil {
			return bolt.ErrBucketNotFound
		}
		b.ForEach(func(_, v []byte) error {
			var task eremetic.Task
			json.Unmarshal(v, &task)
			if !task.IsTerminated() {
				eremetic.ApplyMask(&task)
				tasks = append(tasks, &task)
			}
			return nil
		})
		return nil
	})

	return tasks, err
}