/** {@inheritDoc} */ @Override public IgniteProductVersion version() { return fromString("99.99.99"); }
/** {@inheritDoc} */ @Override public IgniteProductVersion version() { return fromString("99.99.99"); }
/** * Gets node product version based on node attributes. * * @param node Node to get version from. * @return Version object. */ public static IgniteProductVersion productVersion(ClusterNode node) { String verStr = node.attribute(ATTR_BUILD_VER); String buildDate = node.attribute(ATTR_BUILD_DATE); if (buildDate != null) verStr += '-' + buildDate; return IgniteProductVersion.fromString(verStr); }
/** * */ @Test public void testIsOldestNodeVersionAtLeast() { IgniteProductVersion v240 = IgniteProductVersion.fromString("2.4.0"); IgniteProductVersion v241 = IgniteProductVersion.fromString("2.4.1"); IgniteProductVersion v250 = IgniteProductVersion.fromString("2.5.0"); IgniteProductVersion v250ts = IgniteProductVersion.fromString("2.5.0-b1-3"); TcpDiscoveryNode node240 = new TcpDiscoveryNode(); node240.version(v240); TcpDiscoveryNode node241 = new TcpDiscoveryNode(); node241.version(v241); TcpDiscoveryNode node250 = new TcpDiscoveryNode(); node250.version(v250); TcpDiscoveryNode node250ts = new TcpDiscoveryNode(); node250ts.version(v250ts); assertTrue(U.isOldestNodeVersionAtLeast(v240, asList(node240, node241, node250, node250ts))); assertFalse(U.isOldestNodeVersionAtLeast(v241, asList(node240, node241, node250, node250ts))); assertTrue(U.isOldestNodeVersionAtLeast(v250, asList(node250, node250ts))); assertTrue(U.isOldestNodeVersionAtLeast(v250ts, asList(node250, node250ts))); }
/** * Executes appropriate version of idle_verify check. Old version will be used if there are old nodes in the * cluster. * * @param client Client. * @param cacheArgs Cache args. */ private void cacheIdleVerify(GridClient client, CacheArguments cacheArgs) throws GridClientException { Collection<GridClientNode> nodes = client.compute().nodes(GridClientNode::connectable); boolean idleVerifyV2 = true; for (GridClientNode node : nodes) { String nodeVerStr = node.attribute(IgniteNodeAttributes.ATTR_BUILD_VER); IgniteProductVersion nodeVer = IgniteProductVersion.fromString(nodeVerStr); if (nodeVer.compareTo(VerifyBackupPartitionsTaskV2.V2_SINCE_VER) < 0) { idleVerifyV2 = false; break; } } if (cacheArgs.dump()) cacheIdleVerifyDump(client, cacheArgs); else if (idleVerifyV2) cacheIdleVerifyV2(client, cacheArgs); else legacyCacheIdleVerify(client, cacheArgs); }
/** * */ private abstract class MessageHandler<M> implements IgniteBiInClosure<UUID, M> { /** */ private static final long serialVersionUID = 0L; /** * @param nodeId Sender node ID. * @param msg Message. */ @Override public void apply(UUID nodeId, M msg) { ClusterNode node = cctx.node(nodeId); if (node == null) { if (log.isTraceEnabled()) log.trace("Received message from failed node [node=" + nodeId + ", msg=" + msg + ']'); return; } if (log.isTraceEnabled()) log.trace("Received message from node [node=" + nodeId + ", msg=" + msg + ']'); onMessage(node, msg); } /** * @param node Sender cluster node. * @param msg Message. */ protected abstract void onMessage(ClusterNode node, M msg); }
byte nodeMaintenance = IgniteProductVersion.fromString(nodeVer).maintenance(); byte lastMaintenance = IgniteProductVersion.fromString(ver).maintenance();
/** * Cache operation. */ protected abstract class AsyncOp<T> { /** Flag to indicate only-one-key operation. */ private final boolean single; /** * */ protected AsyncOp() { single = true; } /** * @param keys Keys involved. */ protected AsyncOp(Collection<?> keys) { single = keys.size() == 1; } /** * @return Flag to indicate only-one-key operation. */ final boolean single() { return single; } /** * @param tx Transaction.
fromString("99.99.99"));
IgniteProductVersion ver = IgniteProductVersion.fromString("1.2.3"); assertArrayEquals(new byte[20], ver.revisionHash()); ver = IgniteProductVersion.fromString("1.2.3-0-DEV"); assertArrayEquals(new byte[20], ver.revisionHash()); ver = IgniteProductVersion.fromString("1.2.3.b1-4-DEV"); ver = IgniteProductVersion.fromString("1.2.3.final-4-DEV"); ver = IgniteProductVersion.fromString("1.2.3"); ver = IgniteProductVersion.fromString("1.2.3-4"); ver = IgniteProductVersion.fromString("1.2.3-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee"); ver = IgniteProductVersion.fromString("1.2.3.b1-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee"); ver = IgniteProductVersion.fromString("1.2.3-rc1-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee"); ver = IgniteProductVersion.fromString("1.2.3-SNAPSHOT-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee"); ver = IgniteProductVersion.fromString("1.2.3.b1-SNAPSHOT-4-18e5a7ec9e3202126a69bc231a6b965bc1d73dee"); IgniteProductVersion.fromString(VER_STR + '-' + BUILD_TSTAMP + '-' + REV_HASH_STR);
/** * Gets node product version based on node attributes. * * @param node Node to get version from. * @return Version object. */ public static IgniteProductVersion productVersion(ClusterNode node) { String verStr = node.attribute(ATTR_BUILD_VER); String buildDate = node.attribute(ATTR_BUILD_DATE); if (buildDate != null) verStr += '-' + buildDate; return IgniteProductVersion.fromString(verStr); }
/** * */ private abstract class MessageHandler<M> implements IgniteBiInClosure<UUID, M> { /** */ private static final long serialVersionUID = 0L; /** * @param nodeId Sender node ID. * @param msg Message. */ @Override public void apply(UUID nodeId, M msg) { ClusterNode node = cctx.node(nodeId); if (node == null) { if (log.isTraceEnabled()) log.trace("Received message from failed node [node=" + nodeId + ", msg=" + msg + ']'); return; } if (log.isTraceEnabled()) log.trace("Received message from node [node=" + nodeId + ", msg=" + msg + ']'); onMessage(node, msg); } /** * @param node Sender cluster node. * @param msg Message. */ protected abstract void onMessage(ClusterNode node, M msg); }
/** * Executes appropriate version of idle_verify check. Old version will be used if there are old nodes in the * cluster. * * @param client Client. * @param cacheArgs Cache args. */ private void cacheIdleVerify(GridClient client, CacheArguments cacheArgs) throws GridClientException { Collection<GridClientNode> nodes = client.compute().nodes(GridClientNode::connectable); boolean idleVerifyV2 = true; for (GridClientNode node : nodes) { String nodeVerStr = node.attribute(IgniteNodeAttributes.ATTR_BUILD_VER); IgniteProductVersion nodeVer = IgniteProductVersion.fromString(nodeVerStr); if (nodeVer.compareTo(VerifyBackupPartitionsTaskV2.V2_SINCE_VER) < 0) { idleVerifyV2 = false; break; } } if (cacheArgs.dump()) cacheIdleVerifyDump(client, cacheArgs); else if (idleVerifyV2) cacheIdleVerifyV2(client, cacheArgs); else legacyCacheIdleVerify(client, cacheArgs); }