From a185c1fb9207f0068591dee34c7ab13a6feeed76 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Wed, 22 Jun 2016 14:48:57 -0700 Subject: [PATCH] Do not show tasks from down nodes as active in ls Signed-off-by: Tonis Tiigi Upstream-commit: 5d4401d6d72c647fa61501c40949b2d67c3f958b Component: engine --- components/engine/api/client/service/list.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/components/engine/api/client/service/list.go b/components/engine/api/client/service/list.go index c9a20872bd..ab4d4ee805 100644 --- a/components/engine/api/client/service/list.go +++ b/components/engine/api/client/service/list.go @@ -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]++ } }