public static int[][] generatePorts(int numServers) { int[][] ports = new int[numServers][]; for (int i = 0; i < numServers; i++) { ports[i] = new int[3]; for (int j = 0; j < 3; j++) { ports[i][j] = PortAssignment.unique(); } } return ports; }
if (portRange == null) { Integer threadId = Integer.getInteger("zookeeper.junit.threadid"); portRange = setupPortRange(System.getProperty("test.junit.threads"), threadId != null ? "threadid=" + threadId : System.getProperty("sun.java.command"));
@Test public void testSetupPortRange() { PortAssignment.PortRange portRange = PortAssignment.setupPortRange( strProcessCount, cmdLine); assertEquals(buildAssertionMessage("minimum"), expectedMinimumPort, portRange.getMinimum()); assertEquals(buildAssertionMessage("maximum"), expectedMaximumPort, portRange.getMaximum()); }
private String generateQuorumConfiguration() { int portQp1 = PortAssignment.unique(); int portQp2 = PortAssignment.unique(); int portQp3 = PortAssignment.unique(); int portLe1 = PortAssignment.unique(); int portLe2 = PortAssignment.unique(); int portLe3 = PortAssignment.unique(); return "server.1=127.0.0.1:" + (portQp1) + ":" + (portLe1) + ";" + clientPortQp1 + "\n" + "server.2=127.0.0.1:" + (portQp2) + ":" + (portLe2) + ";" + clientPortQp2 + "\n" + "server.3=127.0.0.1:" + (portQp3) + ":" + (portLe3) + ";" + clientPortQp3; }
/** * Create config strings that will be used for * the test servers. */ private ArrayList<String> buildServerStrings() { ArrayList<String> serverStrings = new ArrayList<String>(); for(int i = 0; i < NUM_SERVERS; i++) { clientPorts[i] = PortAssignment.unique(); String server = "server." + i + "=localhost:" + PortAssignment.unique() +":"+PortAssignment.unique() + ":participant;" + "localhost:" + clientPorts[i]; serverStrings.add(server); } return serverStrings; }
private String generateNewQuorumConfig(int serverCount) { StringBuilder sb = new StringBuilder(); String server; for (int i = 0; i < serverCount; i++) { clientPorts.put(i, PortAssignment.unique()); server = "server." + i + "=localhost:" + PortAssignment.unique() + ":" + PortAssignment.unique() + ":participant;localhost:" + clientPorts.get(i); serverAddress.put(i, server); sb.append(server + "\n"); } return sb.toString(); }
private String updateExistingQuorumConfig(List<Integer> sidsToAdd, List<Integer> sidsToRemove) { StringBuilder sb = new StringBuilder(); for (Integer sid : sidsToAdd) { clientPorts.put(sid, PortAssignment.unique()); serverAddress.put(sid, "server." + sid + "=localhost:" + PortAssignment.unique() + ":" + PortAssignment.unique() + ":participant;localhost:" + clientPorts.get(sid)); } for (Integer sid : sidsToRemove) { clientPorts.remove(sid); serverAddress.remove(sid); } for (String server : serverAddress.values()) { sb.append(server + "\n"); } return sb.toString(); }
@Test public void testUnspecifiedClientAddress() throws Exception { int[] ports = { PortAssignment.unique(), PortAssignment.unique(), PortAssignment.unique() }; String server = "server.0=localhost:" + ports[0] + ":" + ports[1] + ";" + ports[2]; QuorumServer qs = new QuorumServer(0, server); Assert.assertEquals(qs.clientAddr.getHostString(), "0.0.0.0"); Assert.assertEquals(qs.clientAddr.getPort(), ports[2]); }
@Before public void setUp() throws Exception { this.count = 3; this.peers = new HashMap<Long,QuorumServer>(count); peerTmpdir = new File[count]; peerQuorumPort = new int[count]; peerClientPort = new int[count]; for(int i = 0; i < count; i++) { peerQuorumPort[i] = PortAssignment.unique(); peerClientPort[i] = PortAssignment.unique(); peers.put(Long.valueOf(i), new QuorumServer(i, new InetSocketAddress( "127.0.0.1", peerQuorumPort[i]), new InetSocketAddress( "127.0.0.1", PortAssignment.unique()), new InetSocketAddress( "127.0.0.1", peerClientPort[i]))); peerTmpdir[i] = ClientBase.createTmpDir(); } }
/** * This test creates a dynamic config of new format. * The dynamic config is written in static config file. * It checks that the client port will be read from the dynamic config. */ @Test public void testClientPortInStaticFile() throws Exception { ClientBase.setupTestEnv(); final int CLIENT_PORT = PortAssignment.unique(); String quorumCfgSection = "server.1=127.0.0.1:" + (PortAssignment.unique()) + ":" + (PortAssignment.unique()) + ":participant;" + CLIENT_PORT + "\n"; MainThread mt = new MainThread(1, quorumCfgSection, false); verifyStandalone(mt, CLIENT_PORT); }
port1 = PortAssignment.unique(); port2 = PortAssignment.unique(); port3 = PortAssignment.unique(); port4 = PortAssignment.unique(); port5 = PortAssignment.unique(); leport1 = PortAssignment.unique(); leport2 = PortAssignment.unique(); leport3 = PortAssignment.unique(); leport4 = PortAssignment.unique(); leport5 = PortAssignment.unique(); clientport1 = PortAssignment.unique(); clientport2 = PortAssignment.unique(); clientport3 = PortAssignment.unique(); clientport4 = PortAssignment.unique(); clientport5 = PortAssignment.unique();
protected int[] startQuorum(final int serverCount, StringBuilder connectStr, Map<String, String> authConfigs, int authServerCount) throws IOException { final int clientPorts[] = new int[serverCount]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < serverCount; i++) { clientPorts[i] = PortAssignment.unique(); String server = String.format( "server.%d=localhost:%d:%d:participant", i, PortAssignment.unique(), PortAssignment.unique()); sb.append(server + "\n"); connectStr.append("127.0.0.1:" + clientPorts[i]); if (i < serverCount - 1) { connectStr.append(","); } } String quorumCfg = sb.toString(); // servers with authentication interfaces configured int i = 0; for (; i < authServerCount; i++) { startServer(authConfigs, clientPorts, quorumCfg, i); } // servers without any authentication configured for (int j = 0; j < serverCount - authServerCount; j++, i++) { MainThread mthread = new MainThread(i, clientPorts[i], quorumCfg); mt.add(mthread); mthread.start(); } return clientPorts; }
@Before public void setUp() throws Exception { File tmpdir = ClientBase.createTmpDir(); Map<Long, QuorumServer> peers = new HashMap<Long,QuorumServer>(); for(int i = 0; i < 5; i++) { peers.put(Long.valueOf(i), new QuorumServer(Long.valueOf(i), new InetSocketAddress("127.0.0.1", PortAssignment.unique()))); } QuorumPeer peer = new QuorumPeer(peers, tmpdir, tmpdir, PortAssignment.unique(), 3, 3, 1000, 2, 2); fle = new FastLeaderElection(peer, peer.createCnxnManager()); }
/** * This test creates a dynamic config of new format. * The dynamic config is written in dynamic config file. * It checks that the client port will be read from the dynamic config. * * This handles the case of HBase, which adds a single server line to the config. * Maintain b/w compatibility. */ @Test public void testClientPortInDynamicFile() throws Exception { ClientBase.setupTestEnv(); final int CLIENT_PORT = PortAssignment.unique(); String quorumCfgSection = "server.1=127.0.0.1:" + (PortAssignment.unique()) + ":" + (PortAssignment.unique()) + ":participant;" + CLIENT_PORT + "\n"; MainThread mt = new MainThread(1, quorumCfgSection); verifyStandalone(mt, CLIENT_PORT); }
private MainThread[] startQuorum() throws IOException { final int clientPorts[] = new int[SERVER_COUNT]; StringBuilder sb = new StringBuilder(); String server; for (int i = 0; i < SERVER_COUNT; i++) { clientPorts[i] = PortAssignment.unique(); server = "server." + i + "=127.0.0.1:" + PortAssignment.unique() + ":" + PortAssignment.unique() + ":participant;127.0.0.1:" + clientPorts[i]; sb.append(server + "\n"); } String currentQuorumCfgSection = sb.toString(); MainThread mt[] = new MainThread[SERVER_COUNT]; // start all the servers for (int i = 0; i < SERVER_COUNT; i++) { mt[i] = new MainThread(i, clientPorts[i], currentQuorumCfgSection, false) { @Override public TestQPMain getTestQPMain() { return new MockTestQPMain(); } }; mt[i].start(); } // ensure all servers started for (int i = 0; i < SERVER_COUNT; i++) { Assert.assertTrue("waiting for server " + i + " being up", ClientBase.waitForServerUp("127.0.0.1:" + clientPorts[i], CONNECTION_TIMEOUT)); } return mt; }
/** * Ensure observer cannot start by itself **/ @Test public void startObserver() throws Exception { int clientPort = PortAssignment.unique(); String config = "server." + observer1 + "=localhost:"+ PortAssignment.unique() + ":" + clientPort + ":observer;" + "localhost:" + PortAssignment.unique(); MainThread observer = new MainThread(observer1, clientPort, config); observer.start(); Assert.assertFalse("Observer was able to start by itself!", ClientBase.waitForServerUp("127.0.0.1:" + clientPort, CONNECTION_TIMEOUT)); } }
@Before public void setUp() throws Exception { localServerAddress = new InetSocketAddress(InetAddress.getLoopbackAddress(), PortAssignment.unique()); x509Util = new ClientX509Util(); x509TestContext.setSystemProperties(x509Util, KeyStoreFileType.JKS, KeyStoreFileType.JKS); }
/** * Ensure that observer only comes up when a proper ensemble is configured. * (and will not come up with standalone server). */ @Test public void testObserverWithStandlone() throws Exception { ClientBase.setupTestEnv(); final int CLIENT_PORT_QP1 = PortAssignment.unique(); String quorumCfgSection = "server.1=127.0.0.1:" + (PortAssignment.unique()) + ":" + (PortAssignment.unique()) + ":observer\n" + "server.2=127.0.0.1:" + (PortAssignment.unique()) + ":" + (PortAssignment.unique()) + "\npeerType=observer\n"; MainThread q1 = new MainThread(1, CLIENT_PORT_QP1, quorumCfgSection); q1.start(); q1.join(ClientBase.CONNECTION_TIMEOUT); Assert.assertFalse(q1.isAlive()); }