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")); } }
