|
@@ -85,7 +85,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_CONNECTIONS_PER_CLUSTER));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_CONNECTIONS_PER_CLUSTER));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_NODE_CONNECTIONS));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(SniffConnectionStrategy.REMOTE_NODE_CONNECTIONS));
|
|
- assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(ProxyConnectionStrategy.REMOTE_CLUSTER_ADDRESSES));
|
|
|
|
|
|
+ assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(ProxyConnectionStrategy.PROXY_ADDRESS));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(ProxyConnectionStrategy.REMOTE_SOCKET_CONNECTIONS));
|
|
assertTrue(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.contains(ProxyConnectionStrategy.REMOTE_SOCKET_CONNECTIONS));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -664,40 +664,72 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
public void testRemoteClusterSkipIfDisconnectedSetting() {
|
|
public void testRemoteClusterSkipIfDisconnectedSetting() {
|
|
{
|
|
{
|
|
Settings settings = Settings.builder()
|
|
Settings settings = Settings.builder()
|
|
- .put("cluster.remote.foo.skip_unavailable", true)
|
|
|
|
- .put("cluster.remote.bar.skip_unavailable", false).build();
|
|
|
|
|
|
+ .put("cluster.remote.foo.seeds", "127.0.0.1:9300")
|
|
|
|
+ .put("cluster.remote.foo.skip_unavailable", true).build();
|
|
RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getAllConcreteSettings(settings).forEach(setting -> setting.get(settings));
|
|
RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getAllConcreteSettings(settings).forEach(setting -> setting.get(settings));
|
|
}
|
|
}
|
|
{
|
|
{
|
|
- Settings brokenSettings = Settings.builder()
|
|
|
|
|
|
+ Settings brokenSettingsDependency = Settings.builder()
|
|
|
|
+ .put("cluster.remote.foo.skip_unavailable", true).build();
|
|
|
|
+ IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getAllConcreteSettings(brokenSettingsDependency)
|
|
|
|
+ .forEach(setting -> setting.get(brokenSettingsDependency)));
|
|
|
|
+ assertEquals("Cannot configure setting [cluster.remote.foo.skip_unavailable] if remote cluster is not enabled.",
|
|
|
|
+ iae.getMessage());
|
|
|
|
+ }
|
|
|
|
+ {
|
|
|
|
+ Settings brokenSettingsType = Settings.builder()
|
|
.put("cluster.remote.foo.skip_unavailable", "broken").build();
|
|
.put("cluster.remote.foo.skip_unavailable", "broken").build();
|
|
- expectThrows(IllegalArgumentException.class, () ->
|
|
|
|
- RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getAllConcreteSettings(brokenSettings)
|
|
|
|
- .forEach(setting -> setting.get(brokenSettings)));
|
|
|
|
|
|
+ IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getAllConcreteSettings(brokenSettingsType)
|
|
|
|
+ .forEach(setting -> setting.get(brokenSettingsType)));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ Settings settings = Settings.builder()
|
|
|
|
+ .put("cluster.remote.foo.mode", "proxy")
|
|
|
|
+ .put("cluster.remote.foo.proxy_address", "127.0.0.1:9300")
|
|
|
|
+ .put("cluster.remote.foo.transport.ping_schedule", "5s").build();
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_PING_SCHEDULE.getAllConcreteSettings(settings).forEach(setting -> setting.get(settings));
|
|
|
|
+ }
|
|
|
|
+ {
|
|
|
|
+ Settings brokenSettingsDependency = Settings.builder()
|
|
|
|
+ .put("cluster.remote.foo.proxy_address", "127.0.0.1:9300")
|
|
|
|
+ .put("cluster.remote.foo.transport.ping_schedule", "5s").build();
|
|
|
|
+ IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_PING_SCHEDULE.getAllConcreteSettings(brokenSettingsDependency)
|
|
|
|
+ .forEach(setting -> setting.get(brokenSettingsDependency)));
|
|
|
|
+ assertEquals("Cannot configure setting [cluster.remote.foo.transport.ping_schedule] if remote cluster is not enabled.",
|
|
|
|
+ iae.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ Settings settings = Settings.builder()
|
|
|
|
+ .put("cluster.remote.foo.seeds", "127.0.0.1:9300")
|
|
|
|
+ .put("cluster.remote.foo.transport.compress", false).build();
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_COMPRESS.getAllConcreteSettings(settings).forEach(setting -> setting.get(settings));
|
|
|
|
+ }
|
|
|
|
+ {
|
|
|
|
+ Settings brokenSettingsDependency = Settings.builder()
|
|
|
|
+ .put("cluster.remote.foo.proxy_address", "127.0.0.1:9300")
|
|
|
|
+ .put("cluster.remote.foo.transport.compress", true).build();
|
|
|
|
+ IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
|
|
|
|
+ RemoteClusterService.REMOTE_CLUSTER_COMPRESS.getAllConcreteSettings(brokenSettingsDependency)
|
|
|
|
+ .forEach(setting -> setting.get(brokenSettingsDependency)));
|
|
|
|
+ assertEquals("Cannot configure setting [cluster.remote.foo.transport.compress] if remote cluster is not enabled.",
|
|
|
|
+ iae.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
AbstractScopedSettings service = new ClusterSettings(Settings.EMPTY,
|
|
AbstractScopedSettings service = new ClusterSettings(Settings.EMPTY,
|
|
new HashSet<>(Arrays.asList(SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS,
|
|
new HashSet<>(Arrays.asList(SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS,
|
|
RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE)));
|
|
RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE)));
|
|
{
|
|
{
|
|
- Settings settings = Settings.builder().put("cluster.remote.foo.skip_unavailable", randomBoolean()).build();
|
|
|
|
- IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () -> service.validate(settings, true));
|
|
|
|
- assertEquals("missing required setting [cluster.remote.foo.seeds] for setting [cluster.remote.foo.skip_unavailable]",
|
|
|
|
|
|
+ Settings brokenSettingsDependency = Settings.builder().put("cluster.remote.foo.skip_unavailable", randomBoolean()).build();
|
|
|
|
+ IllegalArgumentException iae = expectThrows(IllegalArgumentException.class,
|
|
|
|
+ () -> service.validate(brokenSettingsDependency, true));
|
|
|
|
+ assertEquals("Cannot configure setting [cluster.remote.foo.skip_unavailable] if remote cluster is not enabled.",
|
|
iae.getMessage());
|
|
iae.getMessage());
|
|
}
|
|
}
|
|
- {
|
|
|
|
- try (MockTransportService remoteSeedTransport = startTransport("seed", new CopyOnWriteArrayList<>(), Version.CURRENT)) {
|
|
|
|
- String seed = remoteSeedTransport.getLocalDiscoNode().getAddress().toString();
|
|
|
|
- service.validate(Settings.builder().put("cluster.remote.foo.skip_unavailable", randomBoolean())
|
|
|
|
- .put("cluster.remote.foo.seeds", seed).build(), true);
|
|
|
|
- service.validate(Settings.builder().put("cluster.remote.foo.seeds", seed).build(), true);
|
|
|
|
-
|
|
|
|
- AbstractScopedSettings service2 = new ClusterSettings(Settings.builder().put("cluster.remote.foo.seeds", seed).build(),
|
|
|
|
- new HashSet<>(Arrays.asList(SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS,
|
|
|
|
- RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE)));
|
|
|
|
- service2.validate(Settings.builder().put("cluster.remote.foo.skip_unavailable", randomBoolean()).build(), false);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
public void testReconnectWhenStrategySettingsUpdated() throws Exception {
|
|
public void testReconnectWhenStrategySettingsUpdated() throws Exception {
|