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 }
// 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 }