@Override public boolean canConnect(InetSocketAddress addr) { return CassandraKeyValueServiceImpl.createForTesting( (CassandraKeyValueServiceConfig) getKeyValueServiceConfig(addr), Optional.of(ImmutableLeaderConfig.builder() .quorumSize(1) .localServer(addr.getHostString()) .leaders(ImmutableSet.of(addr.getHostString())) .build())) .isInitialized(); }
private LeaderConfig getLeaderConfig() { // TODO (jkong): Live Reload Paxos Ping Rates PaxosRuntimeConfiguration paxosRuntimeConfiguration = runtime.get(); return ImmutableLeaderConfig.builder() .sslConfiguration(PaxosRemotingUtils.getSslConfigurationOptional(install)) .leaders(PaxosRemotingUtils.addProtocols(install, PaxosRemotingUtils.getClusterAddresses(install))) .localServer(PaxosRemotingUtils.addProtocol(install, PaxosRemotingUtils.getClusterConfiguration(install).localServer())) .acceptorLogDir(Paths.get(install.paxos().dataDirectory().toString(), PaxosTimeLockConstants.LEADER_PAXOS_NAMESPACE, PaxosTimeLockConstants.ACCEPTOR_SUBDIRECTORY_PATH).toFile()) .learnerLogDir(Paths.get(install.paxos().dataDirectory().toString(), PaxosTimeLockConstants.LEADER_PAXOS_NAMESPACE, PaxosTimeLockConstants.LEARNER_SUBDIRECTORY_PATH).toFile()) .pingRateMs(paxosRuntimeConfiguration.pingRateMs()) .quorumSize(PaxosRemotingUtils.getQuorumSize(PaxosRemotingUtils.getClusterAddresses(install))) .leaderPingResponseWaitMs(paxosRuntimeConfiguration.pingRateMs()) .randomWaitBeforeProposingLeadershipMs(paxosRuntimeConfiguration.pingRateMs()) .build(); }
@Test(expected = IllegalStateException.class) public void cannotCreateALeaderConfigWithNoLeaders() { ImmutableLeaderConfig.builder() .localServer("me") .leaders(Collections.emptySet()) .quorumSize(0) .build(); }