@Test public void testUpdateServerList_ResolvedWithResolvedAddress_NoDisconnect() throws UnknownHostException { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is which the client is currently connecting to, it should be resolved", currentHost.isUnresolved(), is(false)); // Act InetSocketAddress replaceHost = new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(), currentHost.getAddress().getAddress()), currentHost.getPort()); assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, equalTo(false)); }
@Test public void testUpdateServerList_UnResolvedWithResolvedAddress_ForceDisconnect() throws UnknownHostException { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost not resolvable in this test case", currentHost.isUnresolved(), is(true)); // Act byte[] addr = new byte[] { 10, 0, 0, 1 }; InetSocketAddress replaceHost = new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(), addr), currentHost.getPort()); assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, equalTo(false)); }
@Test public void testUpdateServerList_ResolvedWithUnResolvedAddress_ForceDisconnect() { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is which the client is currently connecting to, it should be resolved", currentHost.isUnresolved(), is(false)); // Act InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235); assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, is(false)); }
@Test public void testUpdateServerList_UnResolvedWithUnResolvedAddress_ForceDisconnect() { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is not resolvable in this test case", currentHost.isUnresolved(), is(true)); // Act InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235); assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, is(true)); }
InetSocketAddress currentHost = (InetSocketAddress) clientCnxnSocket.getRemoteSocketAddress(); boolean reconfigMode = hostProvider.updateServerList(serverAddresses, currentHost);
/** * Number of machines stayed the same, my server is in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_NoDisconnection2() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertFalse(disconnectRequired); hostProvider.onConnected(); }
boolean disconnectRequired = hostProvider.updateServerList(newList, new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, 1}), 1235)); assertTrue(disconnectRequired);
/** * Number of machines became smaller, my server is not in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_Disconnection1() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(2); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertTrue(disconnectRequired); hostProvider.onConnected(); }
/** * Number of machines becomes smaller, my server is in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_NoDisconnection1() { // Arrange // [testhost-4.testdomain.com:1238, testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(4); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertFalse(disconnectRequired); hostProvider.onConnected(); }
/** * Number of machines stayed the same, my server is not in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_Disconnection2() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-4.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertTrue(disconnectRequired); hostProvider.onConnected(); }
boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); assertFalse(disconnectRequired); hostProvider.onConnected(); disconnectRequired = hostProvider.updateServerList(newList, myServer); assertFalse(disconnectRequired); hostProvider.onConnected(); disconnectRequired = hostProvider.updateServerList(newList, myServer); assertTrue(disconnectRequired); hostProvider.onConnected(); disconnectRequired = hostProvider.updateServerList(newList, myServer); assertTrue(disconnectRequired); hostProvider.onConnected(); disconnectRequired = hostProvider.updateServerList(newList, myServer); assertTrue(disconnectRequired); hostProvider.onConnected(); for (int i = 0; i < numClients; i++) { hostProviderArray[i] = getHostProvider((byte) 9); disconnectRequired = hostProviderArray[i].updateServerList(newList, myServer); if (disconnectRequired) numDisconnects++;
disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;