public static ImmutableSet<String> getClusterAddresses(TimeLockInstallConfiguration install) { return ImmutableSet.copyOf(getClusterConfiguration(install).clusterMembers()); }
@Value.Check default void check() { Preconditions.checkState(clusterMembers().contains(localServer()), "The localServer '%s' must be included in the server entries: %s.", localServer(), clusterMembers()); } }
private void assertDefaultClusterConfigurationCorrect(ClusterConfiguration cluster) { assertThat(cluster) .isInstanceOf(DefaultClusterConfiguration.class) .isNotInstanceOf(KubernetesClusterConfiguration.class); assertThat(cluster.clusterMembers()).hasSameElementsAs(SERVERS); assertThat(cluster.localServer()).isEqualTo(LOCAL_SERVER); }
/** * Creates timestamp and lock services for the given client. It is expected that for each client there should * only be (up to) one active timestamp service, and one active lock service at any time. * @param client Client namespace to create the services for * @return Invalidating timestamp and lock services */ private TimeLockServices createInvalidatingTimeLockServices(String client) { List<String> uris = install.cluster().clusterMembers(); ImmutableLeaderConfig leaderConfig = ImmutableLeaderConfig.builder() .addLeaders(uris.toArray(new String[uris.size()])) .localServer(install.cluster().localServer()) .sslConfiguration(PaxosRemotingUtils.getSslConfigurationOptional(install)) .quorumSize(PaxosRemotingUtils.getQuorumSize(uris)) .build(); Supplier<ManagedTimestampService> rawTimestampServiceSupplier = timestampCreator .createTimestampService(client, leaderConfig); Supplier<LockService> rawLockServiceSupplier = lockCreator::createThreadPoolingLockService; return timelockCreator.createTimeLockServices(client, rawTimestampServiceSupplier, rawLockServiceSupplier); } }