Do not show tasks from down nodes as active in ls

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 5d4401d6d72c647fa61501c40949b2d67c3f958b
Component: engine
This commit is contained in:
Tonis Tiigi
2016-06-22 14:48:57 -07:00
parent ebb89af810
commit a185c1fb92

View File

@ -69,9 +69,20 @@ func runList(dockerCli *client.DockerCli, opts listOptions) error {
return err
}
nodes, err := client.NodeList(ctx, types.NodeListOptions{})
if err != nil {
return err
}
activeNodes := make(map[string]struct{})
for _, n := range nodes {
if n.Status.State == swarm.NodeStateReady {
activeNodes[n.ID] = struct{}{}
}
}
running := map[string]int{}
for _, task := range tasks {
if task.Status.State == "running" {
if _, nodeActive := activeNodes[task.NodeID]; nodeActive && task.Status.State == "running" {
running[task.ServiceID]++
}
}