You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ti...@apache.org on 2024/02/13 08:16:12 UTC
(ignite) branch master updated: IGNITE-21102 Use ClusterState enum for baseline control.sh commands output (#11138)
This is an automated email from the ASF dual-hosted git repository.
timoninmaxim pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new ffde1db96f0 IGNITE-21102 Use ClusterState enum for baseline control.sh commands output (#11138)
ffde1db96f0 is described below
commit ffde1db96f0c9d0d86c773daa4f6baee18ab1b66
Author: oleg-vlsk <15...@users.noreply.github.com>
AuthorDate: Tue Feb 13 18:16:03 2024 +1000
IGNITE-21102 Use ClusterState enum for baseline control.sh commands output (#11138)
---
.../apache/ignite/util/GridCommandHandlerTest.java | 33 ++++++++++++++++++++--
.../ignite/internal/management/StateCommand.java | 20 +------------
.../baseline/AbstractBaselineCommand.java | 2 +-
.../internal/management/baseline/BaselineTask.java | 2 +-
.../management/baseline/BaselineTaskResult.java | 25 ++++++++++------
.../visor/baseline/VisorBaselineViewTask.java | 2 +-
6 files changed, 50 insertions(+), 34 deletions(-)
diff --git a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
index 887448cc1cf..fc193081c41 100644
--- a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
+++ b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
@@ -903,7 +903,7 @@ public class GridCommandHandlerTest extends GridCommandHandlerClusterPerMethodAb
assertEquals(EXIT_CODE_OK, execute("--state"));
- assertContains(log, testOut.toString(), "Cluster is inactive");
+ assertClusterState(INACTIVE, testOut.toString());
String out = testOut.toString();
@@ -919,7 +919,7 @@ public class GridCommandHandlerTest extends GridCommandHandlerClusterPerMethodAb
assertEquals(EXIT_CODE_OK, execute("--state"));
- assertContains(log, testOut.toString(), "Cluster is active");
+ assertClusterState(ACTIVE, testOut.toString());
ignite.cluster().state(ACTIVE_READ_ONLY);
@@ -929,7 +929,7 @@ public class GridCommandHandlerTest extends GridCommandHandlerClusterPerMethodAb
assertEquals(EXIT_CODE_OK, execute("--state"));
- assertContains(log, testOut.toString(), "Cluster is active (read-only)");
+ assertClusterState(ACTIVE_READ_ONLY, testOut.toString());
boolean tagUpdated = GridTestUtils.waitForCondition(() -> {
try {
@@ -3972,6 +3972,25 @@ public class GridCommandHandlerTest extends GridCommandHandlerClusterPerMethodAb
assertContains(log, testOut.toString(), "no conflicts have been found");
}
+ /**
+ * Test to make sure that the '--baseline' command shows correct cluster state
+ *
+ * @throws Exception if failed.
+ */
+ @Test
+ public void testClusterStateInBaselineCommand() throws Exception {
+ Ignite ignite = startGrids(1);
+
+ injectTestSystemOut();
+
+ for (ClusterState state : ClusterState.values()) {
+ ignite.cluster().state(state);
+ assertEquals(EXIT_CODE_OK, execute("--baseline"));
+ assertEquals(state, ignite.cluster().state());
+ assertClusterState(state, testOut.toString());
+ }
+ }
+
/**
* @param ignite Ignite to execute task on.
* @param delFoundGarbage If clearing mode should be used.
@@ -4060,4 +4079,12 @@ public class GridCommandHandlerTest extends GridCommandHandlerClusterPerMethodAb
}
}
}
+
+ /**
+ * @param state Current state of the cluster.
+ * @param logOutput Logger output where current cluster state is supposed to be specified.
+ */
+ public static void assertClusterState(ClusterState state, String logOutput) {
+ assertTrue(Pattern.compile("Cluster state: " + state + "\\s+").matcher(logOutput).find());
+ }
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/StateCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/management/StateCommand.java
index 8b7ff823a86..21eca4fd8a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/management/StateCommand.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/management/StateCommand.java
@@ -73,25 +73,7 @@ public class StateCommand implements LocalCommand<NoArg, GridTuple3<UUID, String
printer.accept(DELIM);
- switch (state) {
- case ACTIVE:
- printer.accept("Cluster is active");
-
- break;
-
- case INACTIVE:
- printer.accept("Cluster is inactive");
-
- break;
-
- case ACTIVE_READ_ONLY:
- printer.accept("Cluster is active (read-only)");
-
- break;
-
- default:
- throw new IllegalStateException("Unknown state: " + state);
- }
+ printer.accept("Cluster state: " + state);
return F.t(id, tag, state);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/AbstractBaselineCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/AbstractBaselineCommand.java
index 47c9ffb575f..8b98457ba60 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/AbstractBaselineCommand.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/AbstractBaselineCommand.java
@@ -57,7 +57,7 @@ public abstract class AbstractBaselineCommand implements ComputeCommand<Baseline
BaselineTaskResult res,
Consumer<String> printer
) {
- printer.accept("Cluster state: " + (res.isActive() ? "active" : "inactive"));
+ printer.accept("Cluster state: " + res.clusterState());
printer.accept("Current topology version: " + res.getTopologyVersion());
BaselineAutoAdjustSettings autoAdjustSettings = res.getAutoAdjustSettings();
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTask.java b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTask.java
index abfb8142fbe..8c8a1bea7ea 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTask.java
@@ -84,7 +84,7 @@ public class BaselineTask extends VisorOneNodeTask<BaselineTaskArg, BaselineTask
BaselineAutoAdjustStatus adjustStatus = cluster.baselineAutoAdjustStatus();
return new BaselineTaskResult(
- ignite.cluster().state().active(),
+ ignite.cluster().state(),
cluster.topologyVersion(),
F.isEmpty(baseline) ? null : baseline,
srvrs,
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTaskResult.java b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTaskResult.java
index 4a8102dfc67..bc9c86cf6dc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTaskResult.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/management/baseline/BaselineTaskResult.java
@@ -32,6 +32,7 @@ import java.util.Set;
import java.util.TreeMap;
import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
import org.apache.ignite.internal.managers.discovery.IgniteClusterNode;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -46,7 +47,7 @@ public class BaselineTaskResult extends VisorDataTransferObject {
private static final long serialVersionUID = 0L;
/** Cluster state. */
- private boolean active;
+ private ClusterState clusterState;
/** Current topology version. */
private long topVer;
@@ -171,7 +172,7 @@ public class BaselineTaskResult extends VisorDataTransferObject {
/**
* Constructor.
*
- * @param active Cluster state.
+ * @param clusterState Cluster state.
* @param topVer Current topology version.
* @param baseline Current baseline nodes.
* @param servers Current server nodes.
@@ -179,14 +180,14 @@ public class BaselineTaskResult extends VisorDataTransferObject {
* @param baselineAdjustInProgress {@code true} If baseline adjust is in progress.
*/
public BaselineTaskResult(
- boolean active,
+ ClusterState clusterState,
long topVer,
Collection<? extends org.apache.ignite.cluster.BaselineNode> baseline,
Collection<? extends org.apache.ignite.cluster.BaselineNode> servers,
BaselineAutoAdjustSettings autoAdjustSettings,
long remainingTimeToBaselineAdjust,
boolean baselineAdjustInProgress) {
- this.active = active;
+ this.clusterState = clusterState;
this.topVer = topVer;
this.baseline = toMap(baseline);
this.servers = toMapWithResolvedAddresses(servers);
@@ -198,8 +199,8 @@ public class BaselineTaskResult extends VisorDataTransferObject {
/**
* @return Cluster state.
*/
- public boolean isActive() {
- return active;
+ public ClusterState clusterState() {
+ return clusterState;
}
/**
@@ -225,7 +226,7 @@ public class BaselineTaskResult extends VisorDataTransferObject {
/** {@inheritDoc} */
@Override public byte getProtocolVersion() {
- return V2;
+ return V3;
}
/**
@@ -251,19 +252,20 @@ public class BaselineTaskResult extends VisorDataTransferObject {
/** {@inheritDoc} */
@Override protected void writeExternalData(ObjectOutput out) throws IOException {
- out.writeBoolean(active);
+ out.writeBoolean(clusterState.active());
out.writeLong(topVer);
U.writeMap(out, baseline);
U.writeMap(out, servers);
out.writeObject(autoAdjustSettings);
out.writeLong(remainingTimeToBaselineAdjust);
out.writeBoolean(baselineAdjustInProgress);
+ U.writeEnum(out, clusterState);
}
/** {@inheritDoc} */
@Override protected void readExternalData(byte protoVer,
ObjectInput in) throws IOException, ClassNotFoundException {
- active = in.readBoolean();
+ boolean active = in.readBoolean();
topVer = in.readLong();
baseline = U.readTreeMap(in);
servers = U.readTreeMap(in);
@@ -273,6 +275,11 @@ public class BaselineTaskResult extends VisorDataTransferObject {
remainingTimeToBaselineAdjust = in.readLong();
baselineAdjustInProgress = in.readBoolean();
}
+
+ if (protoVer <= V2)
+ clusterState = active ? ClusterState.ACTIVE : ClusterState.INACTIVE;
+ else
+ clusterState = U.readEnum(in, ClusterState.class);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineViewTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineViewTask.java
index 44eb9508a28..5a8b1015799 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineViewTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineViewTask.java
@@ -68,7 +68,7 @@ public class VisorBaselineViewTask extends VisorOneNodeTask<Void, BaselineTaskRe
BaselineAutoAdjustStatus adjustStatus = cluster.baselineAutoAdjustStatus();
return new BaselineTaskResult(
- ignite.cluster().state().active(),
+ ignite.cluster().state(),
cluster.topologyVersion(),
cluster.currentBaselineTopology(),
cluster.forServers().nodes(),