|
@@ -109,21 +109,20 @@ public class NettyTransportServiceHandshakeTests extends ESTestCase {
|
|
settings,
|
|
settings,
|
|
VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.CURRENT),
|
|
VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.CURRENT),
|
|
test);
|
|
test);
|
|
-
|
|
|
|
|
|
+ DiscoveryNode discoveryNode = new DiscoveryNode(
|
|
|
|
+ "",
|
|
|
|
+ handleB.discoveryNode.getAddress(),
|
|
|
|
+ emptyMap(),
|
|
|
|
+ emptySet(),
|
|
|
|
+ Version.CURRENT.minimumCompatibilityVersion());
|
|
DiscoveryNode connectedNode =
|
|
DiscoveryNode connectedNode =
|
|
- handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
- new DiscoveryNode(
|
|
|
|
- "",
|
|
|
|
- handleB.discoveryNode.getAddress(),
|
|
|
|
- emptyMap(),
|
|
|
|
- emptySet(),
|
|
|
|
- Version.CURRENT.minimumCompatibilityVersion()),
|
|
|
|
- timeout);
|
|
|
|
|
|
+ handleA.transportService.connectToNodeLightAndHandshake(discoveryNode, timeout);
|
|
assertNotNull(connectedNode);
|
|
assertNotNull(connectedNode);
|
|
|
|
|
|
// the name and version should be updated
|
|
// the name and version should be updated
|
|
assertEquals(connectedNode.getName(), "TS_B");
|
|
assertEquals(connectedNode.getName(), "TS_B");
|
|
assertEquals(connectedNode.getVersion(), handleB.discoveryNode.getVersion());
|
|
assertEquals(connectedNode.getVersion(), handleB.discoveryNode.getVersion());
|
|
|
|
+ assertTrue(handleA.transportService.nodeConnected(discoveryNode));
|
|
}
|
|
}
|
|
|
|
|
|
public void testMismatchedClusterName() {
|
|
public void testMismatchedClusterName() {
|
|
@@ -131,21 +130,17 @@ public class NettyTransportServiceHandshakeTests extends ESTestCase {
|
|
|
|
|
|
NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT, new ClusterName("a"));
|
|
NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT, new ClusterName("a"));
|
|
NetworkHandle handleB = startServices("TS_B", settings, Version.CURRENT, new ClusterName("b"));
|
|
NetworkHandle handleB = startServices("TS_B", settings, Version.CURRENT, new ClusterName("b"));
|
|
-
|
|
|
|
- try {
|
|
|
|
- handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
- new DiscoveryNode(
|
|
|
|
- "",
|
|
|
|
- handleB.discoveryNode.getAddress(),
|
|
|
|
- emptyMap(),
|
|
|
|
- emptySet(),
|
|
|
|
- Version.CURRENT.minimumCompatibilityVersion()),
|
|
|
|
- timeout);
|
|
|
|
- fail("expected handshake to fail from mismatched cluster names");
|
|
|
|
- } catch (ConnectTransportException e) {
|
|
|
|
- assertThat(e.getMessage(), containsString("handshake failed, mismatched cluster name [Cluster [b]]"));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ DiscoveryNode discoveryNode = new DiscoveryNode(
|
|
|
|
+ "",
|
|
|
|
+ handleB.discoveryNode.getAddress(),
|
|
|
|
+ emptyMap(),
|
|
|
|
+ emptySet(),
|
|
|
|
+ Version.CURRENT.minimumCompatibilityVersion());
|
|
|
|
+ IllegalStateException ex = expectThrows(IllegalStateException.class, () -> handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
+ discoveryNode, timeout));
|
|
|
|
+ assertThat(ex.getMessage(), containsString("handshake failed, mismatched cluster name [Cluster [b]]"));
|
|
|
|
+ assertFalse(handleA.transportService.nodeConnected(discoveryNode));
|
|
|
|
+}
|
|
|
|
|
|
public void testIncompatibleVersions() {
|
|
public void testIncompatibleVersions() {
|
|
Settings settings = Settings.EMPTY;
|
|
Settings settings = Settings.EMPTY;
|
|
@@ -154,20 +149,16 @@ public class NettyTransportServiceHandshakeTests extends ESTestCase {
|
|
NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT, test);
|
|
NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT, test);
|
|
NetworkHandle handleB =
|
|
NetworkHandle handleB =
|
|
startServices("TS_B", settings, VersionUtils.getPreviousVersion(Version.CURRENT.minimumCompatibilityVersion()), test);
|
|
startServices("TS_B", settings, VersionUtils.getPreviousVersion(Version.CURRENT.minimumCompatibilityVersion()), test);
|
|
-
|
|
|
|
- try {
|
|
|
|
- handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
- new DiscoveryNode(
|
|
|
|
- "",
|
|
|
|
- handleB.discoveryNode.getAddress(),
|
|
|
|
- emptyMap(),
|
|
|
|
- emptySet(),
|
|
|
|
- Version.CURRENT.minimumCompatibilityVersion()),
|
|
|
|
- timeout);
|
|
|
|
- fail("expected handshake to fail from incompatible versions");
|
|
|
|
- } catch (ConnectTransportException e) {
|
|
|
|
- assertThat(e.getMessage(), containsString("handshake failed, incompatible version"));
|
|
|
|
- }
|
|
|
|
|
|
+ DiscoveryNode discoveryNode = new DiscoveryNode(
|
|
|
|
+ "",
|
|
|
|
+ handleB.discoveryNode.getAddress(),
|
|
|
|
+ emptyMap(),
|
|
|
|
+ emptySet(),
|
|
|
|
+ Version.CURRENT.minimumCompatibilityVersion());
|
|
|
|
+ IllegalStateException ex = expectThrows(IllegalStateException.class, () -> handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
+ discoveryNode, timeout));
|
|
|
|
+ assertThat(ex.getMessage(), containsString("handshake failed, incompatible version"));
|
|
|
|
+ assertFalse(handleA.transportService.nodeConnected(discoveryNode));
|
|
}
|
|
}
|
|
|
|
|
|
public void testIgnoreMismatchedClusterName() {
|
|
public void testIgnoreMismatchedClusterName() {
|
|
@@ -181,19 +172,17 @@ public class NettyTransportServiceHandshakeTests extends ESTestCase {
|
|
VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.CURRENT),
|
|
VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.CURRENT),
|
|
new ClusterName("b")
|
|
new ClusterName("b")
|
|
);
|
|
);
|
|
-
|
|
|
|
- DiscoveryNode connectedNode = handleA.transportService.connectToNodeLightAndHandshake(
|
|
|
|
- new DiscoveryNode(
|
|
|
|
- "",
|
|
|
|
- handleB.discoveryNode.getAddress(),
|
|
|
|
- emptyMap(),
|
|
|
|
- emptySet(),
|
|
|
|
- Version.CURRENT.minimumCompatibilityVersion()),
|
|
|
|
- timeout,
|
|
|
|
- false);
|
|
|
|
|
|
+ DiscoveryNode discoveryNode = new DiscoveryNode(
|
|
|
|
+ "",
|
|
|
|
+ handleB.discoveryNode.getAddress(),
|
|
|
|
+ emptyMap(),
|
|
|
|
+ emptySet(),
|
|
|
|
+ Version.CURRENT.minimumCompatibilityVersion());
|
|
|
|
+ DiscoveryNode connectedNode = handleA.transportService.connectToNodeLightAndHandshake(discoveryNode, timeout, false);
|
|
assertNotNull(connectedNode);
|
|
assertNotNull(connectedNode);
|
|
assertEquals(connectedNode.getName(), "TS_B");
|
|
assertEquals(connectedNode.getName(), "TS_B");
|
|
assertEquals(connectedNode.getVersion(), handleB.discoveryNode.getVersion());
|
|
assertEquals(connectedNode.getVersion(), handleB.discoveryNode.getVersion());
|
|
|
|
+ assertTrue(handleA.transportService.nodeConnected(discoveryNode));
|
|
}
|
|
}
|
|
|
|
|
|
private static class NetworkHandle {
|
|
private static class NetworkHandle {
|