Browse code

return error when listNode fails

Signed-off-by: allencloud <allen.sun@daocloud.io>

allencloud authored on 2017/01/08 23:23:36
Showing 2 changed files
... ...
@@ -103,7 +103,7 @@ func prettyPrintInfo(dockerCli *command.DockerCli, info types.Info) error {
103 103
 			fmt.Fprintf(dockerCli.Out(), " Error: %v\n", info.Swarm.Error)
104 104
 		}
105 105
 		fmt.Fprintf(dockerCli.Out(), " Is Manager: %v\n", info.Swarm.ControlAvailable)
106
-		if info.Swarm.ControlAvailable {
106
+		if info.Swarm.ControlAvailable && info.Swarm.Error == "" && info.Swarm.LocalNodeState != swarm.LocalNodeStateError {
107 107
 			fmt.Fprintf(dockerCli.Out(), " ClusterID: %s\n", info.Swarm.Cluster.ID)
108 108
 			fmt.Fprintf(dockerCli.Out(), " Managers: %d\n", info.Swarm.Managers)
109 109
 			fmt.Fprintf(dockerCli.Out(), " Nodes: %d\n", info.Swarm.Nodes)
... ...
@@ -750,7 +750,9 @@ func (c *Cluster) Info() types.Info {
750 750
 		// Strip JoinTokens
751 751
 		info.Cluster = swarm.ClusterInfo
752 752
 
753
-		if r, err := state.controlClient.ListNodes(ctx, &swarmapi.ListNodesRequest{}); err == nil {
753
+		if r, err := state.controlClient.ListNodes(ctx, &swarmapi.ListNodesRequest{}); err != nil {
754
+			info.Error = err.Error()
755
+		} else {
754 756
 			info.Nodes = len(r.Nodes)
755 757
 			for _, n := range r.Nodes {
756 758
 				if n.ManagerStatus != nil {