return idle status when worker has nothing to do
This commit is contained in:
parent
793defef72
commit
8d5faaa5a5
|
|
@ -202,9 +202,15 @@ func (s *Server) workers(w http.ResponseWriter, req *http.Request) {
|
|||
|
||||
resp, err = s.controller.ListQueue(uint32(workerID))
|
||||
} else if matches := util.FindNamedStringSubmatch(workerStatusURL, req.URL.Path); matches != nil {
|
||||
workerID, _ := strconv.Atoi(matches["id"])
|
||||
var workerStatus *spec.WorkerStatus
|
||||
|
||||
resp, err = s.controller.WorkerStatus(uint32(workerID))
|
||||
workerID, _ := strconv.Atoi(matches["id"])
|
||||
workerStatus, err = s.controller.WorkerStatus(uint32(workerID))
|
||||
if workerStatus == nil {
|
||||
resp = "idle"
|
||||
} else {
|
||||
resp = workerStatus
|
||||
}
|
||||
} else if workerAllStatus.MatchString(req.URL.Path) {
|
||||
s.allWorkers(w, req)
|
||||
return
|
||||
|
|
@ -234,15 +240,20 @@ func (s *Server) allQueues(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
func (s *Server) allWorkers(w http.ResponseWriter, r *http.Request) {
|
||||
workersCnt := s.controller.GetWorkersCnt()
|
||||
resp := make(map[uint32]*spec.WorkerStatus, workersCnt)
|
||||
resp := make(map[uint32]interface{}, workersCnt)
|
||||
for i := uint32(0); i < workersCnt; i++ {
|
||||
status, err := s.controller.WorkerStatus(i)
|
||||
if err != nil {
|
||||
s.respond(nil, err, w)
|
||||
continue
|
||||
}
|
||||
|
||||
if status == nil {
|
||||
resp[i] = "idle"
|
||||
} else {
|
||||
resp[i] = status
|
||||
}
|
||||
}
|
||||
|
||||
s.respond(resp, nil, w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package cluster
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand"
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ func (c *Controller) GetWorkersCnt() uint32 {
|
|||
func (c *Controller) WorkerStatus(workerID uint32) (*spec.WorkerStatus, error) {
|
||||
obj, ok := c.curWorkerCluster.Load(workerID)
|
||||
if !ok || obj == nil {
|
||||
return nil, fmt.Errorf("worker has no status")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
cl, ok := obj.(*cluster.Cluster)
|
||||
|
|
|
|||
Loading…
Reference in New Issue