public static AtlasDbConfig addFallbackSslConfigurationToAtlasDbConfig( AtlasDbConfig config, Optional<SslConfiguration> sslConfiguration) { return ImmutableAtlasDbConfig.builder() .from(config) .leader(addFallbackSslConfigurationToLeader(config.leader(), sslConfiguration)) .lock(addFallbackSslConfigurationToServerList(config.lock(), sslConfiguration)) .timestamp(addFallbackSslConfigurationToServerList(config.timestamp(), sslConfiguration)) .timelock(addFallbackSslConfigurationToTimeLockClientConfig(config.timelock(), sslConfiguration)) .build(); }
private static Function<ServerListConfig, ServerListConfig> addSslConfigurationToServerListFunction( Optional<SslConfiguration> sslConfiguration) { return serverList -> ImmutableServerListConfig.builder() .from(serverList) .sslConfiguration(getFirstPresentOptional(serverList.sslConfiguration(), sslConfiguration)) .build(); }
@Test public void addingFallbackSslWhenItExistsDoesntOverride() { AtlasDbConfig withoutSsl = ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .leader(ImmutableLeaderConfig.builder() .from(LEADER_CONFIG) .sslConfiguration(SSL_CONFIG) .build()) .build(); AtlasDbConfig withSsl = AtlasDbConfigs.addFallbackSslConfigurationToAtlasDbConfig(withoutSsl, OTHER_SSL_CONFIG); assertThat(withSsl.leader().get().sslConfiguration(), is(SSL_CONFIG)); }
@Test(expected = IllegalStateException.class) public void timelockBlockNotPermittedWithLockAndTimestampBlocks() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(ImmutableTimeLockClientConfig.builder() .client("testClient") .serversList(SINGLETON_SERVER_LIST).build()) .lock(SINGLETON_SERVER_LIST) .timestamp(SINGLETON_SERVER_LIST) .build(); }
@Test public void canSpecifyZeroServersIfUsingTimelockBlock() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .namespace(CLIENT_NAMESPACE) .timelock(ImmutableTimeLockClientConfig.builder() .serversList(ImmutableServerListConfig.builder().build()) .build()) .build(); } }
private static TimeLockClientConfig getTimelockConfigForServers(List<String> servers) { return ImmutableTimeLockClientConfig.builder() .client(CLIENT) .serversList(ImmutableServerListConfig.builder() .addAllServers(servers) .build()) .build(); } }
@Test public void addingFallbackSslAddsItToLeaderBlock() { AtlasDbConfig withoutSsl = ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .leader(LEADER_CONFIG) .build(); AtlasDbConfig withSsl = AtlasDbConfigs.addFallbackSslConfigurationToAtlasDbConfig(withoutSsl, SSL_CONFIG); assertThat(withSsl.leader().get().sslConfiguration(), is(SSL_CONFIG)); assertThat(withoutSsl.getNamespaceString(), equalTo(TEST_NAMESPACE)); }
private static Optional<LeaderConfig> addFallbackSslConfigurationToLeader( Optional<LeaderConfig> config, Optional<SslConfiguration> sslConfiguration) { return config.map(leader -> ImmutableLeaderConfig.builder() .from(leader) .sslConfiguration(getFirstPresentOptional(leader.sslConfiguration(), sslConfiguration)) .build()); }
private static Optional<TimeLockClientConfig> addFallbackSslConfigurationToTimeLockClientConfig( Optional<TimeLockClientConfig> config, Optional<SslConfiguration> sslConfiguration) { //noinspection ConstantConditions - function returns an existing ServerListConfig, maybe with different SSL. return config.map(clientConfig -> ImmutableTimeLockClientConfig.builder() .from(clientConfig) .serversList(addSslConfigurationToServerListFunction(sslConfiguration) .apply(clientConfig.serversList())) .build()); }
@Test public void canCreateWithoutClientSpecified() { ImmutableTimeLockClientConfig.builder() .serversList(SERVERS_LIST) .build(); }
public ServerListConfig toNamespacedServerList() { return ServerListConfigs.namespaceUris(serversList(), getClientOrThrow()); }
private static TimeLockClientConfig getTimelockConfigForServers(List<String> servers) { return ImmutableTimeLockClientConfig.builder() .client(CLIENT) .serversList(ImmutableServerListConfig.builder() .addAllServers(servers) .build()) .build(); }