From b0c7dd934baf9f3831282a69c96b00239e0302cd Mon Sep 17 00:00:00 2001 From: allencloud Date: Sun, 8 Jan 2017 22:23:36 +0800 Subject: [PATCH] return error when listNode fails Signed-off-by: allencloud Upstream-commit: 8e04e9902a9739a13e5e824339082cc3d361d097 Component: engine --- components/engine/cli/command/system/info.go | 2 +- components/engine/daemon/cluster/cluster.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/components/engine/cli/command/system/info.go b/components/engine/cli/command/system/info.go index ec1cf47de2..d9fafd1aa1 100644 --- a/components/engine/cli/command/system/info.go +++ b/components/engine/cli/command/system/info.go @@ -103,7 +103,7 @@ func prettyPrintInfo(dockerCli *command.DockerCli, info types.Info) error { fmt.Fprintf(dockerCli.Out(), " Error: %v\n", info.Swarm.Error) } fmt.Fprintf(dockerCli.Out(), " Is Manager: %v\n", info.Swarm.ControlAvailable) - if info.Swarm.ControlAvailable { + if info.Swarm.ControlAvailable && info.Swarm.Error == "" && info.Swarm.LocalNodeState != swarm.LocalNodeStateError { fmt.Fprintf(dockerCli.Out(), " ClusterID: %s\n", info.Swarm.Cluster.ID) fmt.Fprintf(dockerCli.Out(), " Managers: %d\n", info.Swarm.Managers) fmt.Fprintf(dockerCli.Out(), " Nodes: %d\n", info.Swarm.Nodes) diff --git a/components/engine/daemon/cluster/cluster.go b/components/engine/daemon/cluster/cluster.go index f6a17d6b66..72997f6525 100644 --- a/components/engine/daemon/cluster/cluster.go +++ b/components/engine/daemon/cluster/cluster.go @@ -750,7 +750,9 @@ func (c *Cluster) Info() types.Info { // Strip JoinTokens info.Cluster = swarm.ClusterInfo - if r, err := state.controlClient.ListNodes(ctx, &swarmapi.ListNodesRequest{}); err == nil { + if r, err := state.controlClient.ListNodes(ctx, &swarmapi.ListNodesRequest{}); err != nil { + info.Error = err.Error() + } else { info.Nodes = len(r.Nodes) for _, n := range r.Nodes { if n.ManagerStatus != nil {