This is an automated email from the ASF dual-hosted git repository.

mpochatkin pushed a commit to branch IGNITE-22414
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 370fae927ea2b5dc90deaeaa184f094d12702f63
Author: Mikhail Pochatkin <[email protected]>
AuthorDate: Wed Jun 5 15:35:11 2024 +0300

    IGNITE-22414 Fix cluster status command for not initialized cluster
---
 .../ignite/internal/cli/call/cluster/status/ClusterStatus.java    | 4 ++--
 .../internal/cli/call/cluster/status/ClusterStatusCall.java       | 8 +++++++-
 .../ignite/internal/cli/decorators/ClusterStatusDecorator.java    | 4 ++--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatus.java
 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatus.java
index 940448254d..a358486c5a 100644
--- 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatus.java
+++ 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatus.java
@@ -49,8 +49,8 @@ public class ClusterStatus {
         this.metadataStorageNodes = metadataStorageNodes;
     }
 
-    public int getNodeCount() {
-        return nodeCount;
+    public String nodeCount() {
+        return nodeCount < 0 ? "N/A" : String.valueOf(nodeCount);
     }
 
     public boolean isInitialized() {
diff --git 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatusCall.java
 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatusCall.java
index f052bb156c..9c0fb22968 100644
--- 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatusCall.java
+++ 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/cluster/status/ClusterStatusCall.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.cli.call.cluster.status;
 
 import jakarta.inject.Singleton;
+import java.util.List;
 import 
org.apache.ignite.internal.cli.call.cluster.status.ClusterStatus.ClusterStatusBuilder;
 import 
org.apache.ignite.internal.cli.call.cluster.topology.PhysicalTopologyCall;
 import org.apache.ignite.internal.cli.core.call.Call;
@@ -28,6 +29,7 @@ import 
org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
 import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
 import org.apache.ignite.rest.client.api.ClusterManagementApi;
 import org.apache.ignite.rest.client.invoker.ApiException;
+import org.apache.ignite.rest.client.model.ClusterNode;
 import org.apache.ignite.rest.client.model.ClusterState;
 
 /**
@@ -71,7 +73,11 @@ public class ClusterStatusCall implements Call<UrlCallInput, 
ClusterStatus> {
     }
 
     private int fetchNumberOfAllNodes(UrlCallInput input) {
-        return physicalTopologyCall.execute(input).body().size();
+        List<ClusterNode> body = physicalTopologyCall.execute(input).body();
+        if (body == null) {
+            return -1;
+        }
+        return body.size();
     }
 
     private ClusterState fetchClusterState(String url) throws ApiException {
diff --git 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/decorators/ClusterStatusDecorator.java
 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/decorators/ClusterStatusDecorator.java
index 3d0c064941..e8ac764ea4 100644
--- 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/decorators/ClusterStatusDecorator.java
+++ 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/decorators/ClusterStatusDecorator.java
@@ -35,11 +35,11 @@ public class ClusterStatusDecorator implements 
Decorator<ClusterStatus, Terminal
                 ? () -> ansi(
                         "[name: %s, nodes: %d, status: %s, cmgNodes: %s, 
msNodes: %s]",
                         data.getName(),
-                        data.getNodeCount(),
+                        data.nodeCount(),
                         fg(Color.GREEN).mark("active"),
                         data.getCmgNodes(),
                         data.getMsNodes()
                 )
-                : () -> ansi("[nodes: %d, status: %s]", data.getNodeCount(), 
fg(Color.RED).mark("not initialized"));
+                : () -> ansi("[nodes: %d, status: %s]", data.nodeCount(), 
fg(Color.RED).mark("not initialized"));
     }
 }

Reply via email to