- stderrReader, err := cmd.StderrPipe()
- if err != nil {
- log.Printf("Error creating stderr pipe for squeue: %v", err)
- return
- }
-
- err = cmd.Start()
- if err != nil {
- log.Printf("Error running squeue: %v", err)
- return
- }
-
- stderrChan := make(chan []byte)
- go func() {
- b, _ := ioutil.ReadAll(stderrReader)
- stderrChan <- b
- close(stderrChan)
- }()
-
- scanner := bufio.NewScanner(sq)
- for scanner.Scan() {
- newSqueueContents = append(newSqueueContents, scanner.Text())
- }
- io.Copy(ioutil.Discard, sq)
-
- stderrmsg := <-stderrChan
-
- err = cmd.Wait()
-
- if scanner.Err() != nil {
- log.Printf("Error reading from squeue pipe: %v", err)
- }
- if err != nil {
- log.Printf("Error running %v %v: %v %q", cmd.Path, cmd.Args, err, string(stderrmsg))
- }
-
- if scanner.Err() == nil && err == nil {
- squeue.squeueCond.L.Lock()
- squeue.squeueContents = newSqueueContents
- squeue.squeueCond.Broadcast()
- squeue.squeueCond.L.Unlock()
+ uuids := strings.Split(stdout.String(), "\n")
+ sqc.uuids = make(map[string]bool, len(uuids))
+ for _, uuid := range uuids {
+ sqc.uuids[uuid] = true