func jobList(client *cluster.Client, all bool) (sortJobs, error) { hosts, err := client.ListHosts() if err != nil { return nil, fmt.Errorf("could not list hosts: %s", err) } var jobs []host.ActiveJob for id := range hosts { h, err := client.DialHost(id) if err != nil { return nil, fmt.Errorf("could not dial host %s: %s", id, err) } hostJobs, err := h.ListJobs() if err != nil { return nil, fmt.Errorf("could not get jobs for host %s: %s", id, err) } for _, job := range hostJobs { jobs = append(jobs, job) } } sorted := make(sortJobs, 0, len(jobs)) for _, job := range jobs { if !all && job.Status != host.StatusStarting && job.Status != host.StatusRunning { continue } sorted = append(sorted, job) } sort.Sort(sort.Reverse(sorted)) return sorted, nil }
func randomHost(cc *cluster.Client) (string, error) { hosts, err := cc.ListHosts() if err != nil { return "", err } if len(hosts) == 0 { return "", cluster.ErrNoServers } return schedutil.PickHost(hosts).ID, nil }
func randomHost(cc *cluster.Client) (string, error) { hosts, err := cc.ListHosts() if err != nil { return "", err } for _, host := range hosts { return host.ID, nil } return "", cluster.ErrNoServers }