@Test public void absentNamespaceRequiresTimelockClient() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("config should be present"))); }
@Test public void namespaceAndKvsNamespaceShouldMatch() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(TEST_NAMESPACE) .keyValueService(KVS_CONFIG_WITH_OTHER_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("config should be the same"))); }
@Test public void namespaceAndTimelockClientShouldMatch() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(TEST_NAMESPACE) .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OTHER_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("config should be the same"))); }
private static AtlasDbConfig convertRuntimeConfigWithTimeLock(AtlasDbConfig installConfig, AtlasDbRuntimeConfig runtimeConfig) { TimeLockRuntimeConfig timeLockRuntimeConfig = runtimeConfig.timelockRuntime().get(); ImmutableTimeLockClientConfig timeLockClientConfig = ImmutableTimeLockClientConfig.builder() .client(installConfig.getNamespaceString()) .serversList(timeLockRuntimeConfig.serversList()) .build(); return ImmutableAtlasDbConfig.builder() .from(installConfig) .timelock(timeLockClientConfig) .build(); }
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(); }
@Test public void inMemoryConfigCannotHaveEmptyNamespaceWithEmptyTimelockClient() { InMemoryAtlasDbConfig kvsConfig = new InMemoryAtlasDbConfig(); assertFalse("This test assumes the InMemoryAtlasDbConfig has no namespace by default", kvsConfig.namespace().isPresent()); assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(Optional.empty()) .keyValueService(kvsConfig) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("TimeLock client should not be empty"))); }
@Test(expected = IllegalStateException.class) public void timelockBlockNotPermittedWithLeaderBlock() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(TIMELOCK_CONFIG) .leader(LEADER_CONFIG) .build(); }
@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 configWithTimelockBlockIsValid() { AtlasDbConfig config = ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(TIMELOCK_CONFIG) .build(); assertThat(config.getNamespaceString(), equalTo(TEST_NAMESPACE)); assertThat(config, not(nullValue())); }
@Test public void canSpecifyZeroServersIfUsingTimelockBlock() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .namespace(CLIENT_NAMESPACE) .timelock(ImmutableTimeLockClientConfig.builder() .serversList(ImmutableServerListConfig.builder().build()) .build()) .build(); } }
@Test public void addingFallbackSslAddsItToTimelockServersBlock() { AtlasDbConfig withoutSsl = ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(TIMELOCK_CONFIG) .build(); AtlasDbConfig withSsl = AtlasDbConfigs.addFallbackSslConfigurationToAtlasDbConfig(withoutSsl, SSL_CONFIG); assertThat(withSsl.timelock().get().serversList().sslConfiguration(), is(SSL_CONFIG)); }
@Test(expected = IllegalStateException.class) public void absentNamespaceRequiresMatchingKvsNamespaceAndTimelockClient() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITH_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OTHER_CLIENT) .build(); }
@Test public void namespaceAcceptsEmptyKvsNamespaceAndTimelockClient() { AtlasDbConfig config = ImmutableAtlasDbConfig.builder() .namespace("a client") .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build(); assertThat(config.getNamespaceString(), equalTo("a client")); }
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(); }
@Test public void inMemoryKeyspaceAndTimelockClientCanBeDifferent() { InMemoryAtlasDbConfig kvsConfig = new InMemoryAtlasDbConfig(); assertFalse("This test assumes the InMemoryAtlasDbConfig has no namespace by default", kvsConfig.namespace().isPresent()); ImmutableAtlasDbConfig config = ImmutableAtlasDbConfig.builder() .keyValueService(kvsConfig) .timelock(TIMELOCK_CONFIG_WITH_OTHER_CLIENT) .build(); assertThat(config.getNamespaceString(), equalTo(OTHER_CLIENT)); }