/** {@inheritDoc} */ @Override public int getTotalBaselineNodes() { Collection<BaselineNode> baselineNodes = cluster.ignite().cluster().currentBaselineTopology(); return baselineNodes != null ? baselineNodes.size() : 0; }
/** {@inheritDoc} */ @Override public int getActiveBaselineNodes() { Collection<BaselineNode> baselineNodes = cluster.ignite().cluster().currentBaselineTopology(); if (baselineNodes != null && !baselineNodes.isEmpty()) { Set<Object> bltIds = new HashSet<>(baselineNodes.size()); for (BaselineNode baselineNode : baselineNodes) bltIds.add(baselineNode.consistentId()); int count = 0; for (ClusterNode node : cluster.forServers().nodes()) if (bltIds.contains(node.consistentId())) count++; return count; } return 0; }
/** {@inheritDoc} */ @Override public void processOutStream(int type, BinaryRawWriterEx writer) throws IgniteCheckedException { switch (type) { case OP_GET_IGNITE_CONFIGURATION: { PlatformConfigurationUtils.writeIgniteConfiguration(writer, ignite().configuration(), CURRENT_VER); return; } case OP_GET_CACHE_NAMES: { Collection<String> names = ignite().cacheNames(); writer.writeInt(names.size()); for (String name : names) writer.writeString(name); return; } case OP_GET_BASELINE_TOPOLOGY: { Collection<BaselineNode> blt = ignite().cluster().currentBaselineTopology(); writer.writeInt(blt.size()); for (BaselineNode n : blt) { writer.writeObjectDetached(n.consistentId()); PlatformUtils.writeNodeAttributes(writer, n.attributes()); } return; } } PlatformAbstractTarget.throwUnsupported(type); }
/** * Test baseline collect works via control.sh * * @throws Exception If failed. */ @Test public void testBaselineCollect() throws Exception { Ignite ignite = startGrids(1); assertFalse(ignite.cluster().active()); ignite.cluster().active(true); assertEquals(EXIT_CODE_OK, execute("--baseline")); assertEquals(1, ignite.cluster().currentBaselineTopology().size()); }
/** * Test baseline set by topology version works via control.sh * * @throws Exception If failed. */ @Test public void testBaselineVersion() throws Exception { Ignite ignite = startGrids(1); assertFalse(ignite.cluster().active()); ignite.cluster().active(true); startGrid(2); assertEquals(EXIT_CODE_OK, execute("--baseline")); assertEquals(EXIT_CODE_OK, execute("--baseline", "version", String.valueOf(ignite.cluster().topologyVersion()))); assertEquals(2, ignite.cluster().currentBaselineTopology().size()); }
/** * Test baseline set works via control.sh * * @throws Exception If failed. */ @Test public void testBaselineSet() throws Exception { Ignite ignite = startGrids(1); assertFalse(ignite.cluster().active()); ignite.cluster().active(true); Ignite other = startGrid(2); assertEquals(EXIT_CODE_OK, execute("--baseline", "set", consistentIds(ignite, other))); assertEquals(2, ignite.cluster().currentBaselineTopology().size()); assertEquals(EXIT_CODE_UNEXPECTED_ERROR, execute("--baseline", "set", "invalidConsistentId")); }
/** * Test baseline add items works via control.sh * * @throws Exception If failed. */ @Test public void testBaselineAdd() throws Exception { Ignite ignite = startGrids(1); assertFalse(ignite.cluster().active()); ignite.cluster().active(true); Ignite other = startGrid(2); assertEquals(EXIT_CODE_OK, execute("--baseline", "add", consistentIds(other))); assertEquals(EXIT_CODE_OK, execute("--baseline", "add", consistentIds(other))); assertEquals(2, ignite.cluster().currentBaselineTopology().size()); }
/** * Test baseline remove node on not active cluster via control.sh * * @throws Exception If failed. */ @Test public void testBaselineRemoveOnNotActiveCluster() throws Exception { Ignite ignite = startGrids(1); Ignite other = startGrid("nodeToStop"); assertFalse(ignite.cluster().active()); String offlineNodeConsId = consistentIds(other); assertEquals(EXIT_CODE_UNEXPECTED_ERROR, execute("--baseline", "remove", offlineNodeConsId)); ignite.cluster().active(true); stopGrid("nodeToStop"); assertEquals(2, ignite.cluster().currentBaselineTopology().size()); ignite.cluster().active(false); assertFalse(ignite.cluster().active()); injectTestSystemOut(); assertEquals(EXIT_CODE_UNEXPECTED_ERROR, execute("--baseline", "remove", offlineNodeConsId)); assertTrue(testOut.toString().contains("Changing BaselineTopology on inactive cluster is not allowed.")); }
/** * Test baseline remove works via control.sh * * @throws Exception If failed. */ @Test public void testBaselineRemove() throws Exception { Ignite ignite = startGrids(1); Ignite other = startGrid("nodeToStop"); assertFalse(ignite.cluster().active()); ignite.cluster().active(true); String offlineNodeConsId = consistentIds(other); stopGrid("nodeToStop"); assertEquals(EXIT_CODE_OK, execute("--baseline")); assertEquals(EXIT_CODE_OK, execute("--baseline", "remove", offlineNodeConsId)); assertEquals(1, ignite.cluster().currentBaselineTopology().size()); }
/** {@inheritDoc} */ @Override public int getTotalBaselineNodes() { Collection<BaselineNode> baselineNodes = cluster.ignite().cluster().currentBaselineTopology(); return baselineNodes != null ? baselineNodes.size() : 0; }
/** {@inheritDoc} */ @Override public int getActiveBaselineNodes() { Collection<BaselineNode> baselineNodes = cluster.ignite().cluster().currentBaselineTopology(); if (baselineNodes != null && !baselineNodes.isEmpty()) { Set<Object> bltIds = new HashSet<>(baselineNodes.size()); for (BaselineNode baselineNode : baselineNodes) bltIds.add(baselineNode.consistentId()); int count = 0; for (ClusterNode node : cluster.forServers().nodes()) if (bltIds.contains(node.consistentId())) count++; return count; } return 0; }
/** {@inheritDoc} */ @Override public void processOutStream(int type, BinaryRawWriterEx writer) throws IgniteCheckedException { switch (type) { case OP_GET_IGNITE_CONFIGURATION: { PlatformConfigurationUtils.writeIgniteConfiguration(writer, ignite().configuration(), CURRENT_VER); return; } case OP_GET_CACHE_NAMES: { Collection<String> names = ignite().cacheNames(); writer.writeInt(names.size()); for (String name : names) writer.writeString(name); return; } case OP_GET_BASELINE_TOPOLOGY: { Collection<BaselineNode> blt = ignite().cluster().currentBaselineTopology(); writer.writeInt(blt.size()); for (BaselineNode n : blt) { writer.writeObjectDetached(n.consistentId()); PlatformUtils.writeNodeAttributes(writer, n.attributes()); } return; } } PlatformAbstractTarget.throwUnsupported(type); }