Repository: ignite Updated Branches: refs/heads/ignite-8159 [created] dcea8243a
IGNITE-8159 control.sh Fixed NPE on adding nodes on empty baseline. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/dcea8243 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/dcea8243 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/dcea8243 Branch: refs/heads/ignite-8159 Commit: dcea8243a620bae202e535350e434d7a46fca72b Parents: 4a0695c Author: Alexey Kuznetsov <[email protected]> Authored: Fri Apr 6 16:45:46 2018 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Fri Apr 6 16:45:46 2018 +0700 ---------------------------------------------------------------------- .../visor/baseline/VisorBaselineTask.java | 24 +++++++++--------- .../ignite/util/GridCommandHandlerTest.java | 26 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/dcea8243/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineTask.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineTask.java index 56c2dd9..721b4b3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineTask.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/baseline/VisorBaselineTask.java @@ -71,10 +71,10 @@ public class VisorBaselineTask extends VisorOneNodeTask<VisorBaselineTaskArg, Vi Collection<? extends BaselineNode> baseline = cluster.currentBaselineTopology(); - Collection<? extends BaselineNode> servers = cluster.forServers().nodes(); + Collection<? extends BaselineNode> srvrs = cluster.forServers().nodes(); - return new VisorBaselineTaskResult(ignite.active(), cluster.topologyVersion(), - F.isEmpty(baseline) ? null : baseline, servers); + return new VisorBaselineTaskResult(ignite.cluster().active(), cluster.topologyVersion(), + F.isEmpty(baseline) ? null : baseline, srvrs); } /** @@ -93,12 +93,14 @@ public class VisorBaselineTask extends VisorOneNodeTask<VisorBaselineTaskArg, Vi * @return Current baseline. */ private Map<String, BaselineNode> currentBaseLine() { - Collection<BaselineNode> baseline = ignite.cluster().currentBaselineTopology(); - Map<String, BaselineNode> nodes = new HashMap<>(); - for (BaselineNode node : baseline) - nodes.put(node.consistentId().toString(), node); + Collection<BaselineNode> baseline = ignite.cluster().currentBaselineTopology(); + + if (!F.isEmpty(baseline)) { + for (BaselineNode node : baseline) + nodes.put(node.consistentId().toString(), node); + } return nodes; } @@ -122,12 +124,12 @@ public class VisorBaselineTask extends VisorOneNodeTask<VisorBaselineTaskArg, Vi * @return New baseline. */ private VisorBaselineTaskResult set(List<String> consistentIds) { - Map<String, BaselineNode> servers = currentServers(); + Map<String, BaselineNode> srvrs = currentServers(); Collection<BaselineNode> baselineTop = new ArrayList<>(); for (String consistentId : consistentIds) { - BaselineNode node = servers.get(consistentId); + BaselineNode node = srvrs.get(consistentId); if (node == null) throw new IllegalStateException("Node not found for consistent ID: " + consistentId); @@ -146,10 +148,10 @@ public class VisorBaselineTask extends VisorOneNodeTask<VisorBaselineTaskArg, Vi */ private VisorBaselineTaskResult add(List<String> consistentIds) { Map<String, BaselineNode> baseline = currentBaseLine(); - Map<String, BaselineNode> servers = currentServers(); + Map<String, BaselineNode> srvrs = currentServers(); for (String consistentId : consistentIds) { - BaselineNode node = servers.get(consistentId); + BaselineNode node = srvrs.get(consistentId); if (node == null) throw new IllegalStateException("Node not found for consistent ID: " + consistentId); http://git-wip-us.apache.org/repos/asf/ignite/blob/dcea8243/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java index d5051d7..96a81bf 100644 --- a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java +++ b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java @@ -20,6 +20,7 @@ package org.apache.ignite.util; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.configuration.ConnectorConfiguration; @@ -62,6 +63,11 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { } /** {@inheritDoc} */ + @Override public String getTestIgniteInstanceName() { + return "bltTest"; + } + + /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); @@ -76,6 +82,8 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { dsCfg.setWalMode(WALMode.LOG_ONLY); dsCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true); + cfg.setConsistentId(igniteInstanceName); + return cfg; } @@ -206,6 +214,24 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { } /** + * Test baseline add items works via control.sh + * + * @throws Exception If failed. + */ + public void testBaselineAddOnNotActiveCluster() throws Exception { + Ignite ignite = startGrid(1); + + assertFalse(ignite.cluster().active()); + + String consistentIDs = + getTestIgniteInstanceName(1) + ", " + + getTestIgniteInstanceName(2) + "," + + getTestIgniteInstanceName(3); + + assertEquals(EXIT_CODE_UNEXPECTED_ERROR, execute("--baseline", "add", consistentIDs)); + } + + /** * Test baseline remove works via control.sh * * @throws Exception If failed.
