|
@@ -20,6 +20,7 @@ import org.elasticsearch.action.support.PlainActionFuture;
|
|
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
|
|
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
|
|
|
import org.elasticsearch.cluster.node.VersionInformation;
|
|
|
+import org.elasticsearch.cluster.project.DefaultProjectResolver;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
import org.elasticsearch.common.settings.AbstractScopedSettings;
|
|
|
import org.elasticsearch.common.settings.ClusterSettings;
|
|
@@ -72,6 +73,10 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
ThreadPool.terminate(threadPool, 10, TimeUnit.SECONDS);
|
|
|
}
|
|
|
|
|
|
+ private RemoteClusterService createRemoteClusterService(final Settings settings, final MockTransportService transportService) {
|
|
|
+ return new RemoteClusterService(settings, transportService, DefaultProjectResolver.INSTANCE);
|
|
|
+ }
|
|
|
+
|
|
|
private MockTransportService startTransport(
|
|
|
String id,
|
|
|
List<DiscoveryNode> knownNodes,
|
|
@@ -166,7 +171,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
Settings.Builder builder = Settings.builder();
|
|
|
builder.putList("cluster.remote.cluster_1.seeds", cluster1Seed.getAddress().toString());
|
|
|
builder.putList("cluster.remote.cluster_2.seeds", cluster2Seed.getAddress().toString());
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(builder.build(), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(builder.build(), transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(hasRegisteredClusters(service));
|
|
@@ -380,7 +385,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
Settings.Builder builder = Settings.builder();
|
|
|
builder.putList("cluster.remote.cluster_1.seeds", cluster1Seed.getAddress().toString());
|
|
|
builder.putList("cluster.remote.cluster_2.seeds", cluster2Seed.getAddress().toString());
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(builder.build(), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(builder.build(), transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(hasRegisteredClusters(service));
|
|
@@ -443,7 +448,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
Settings.builder().put(Node.NODE_NAME_SETTING.getKey(), "node-1").build(),
|
|
|
Sets.newHashSet(DiscoveryNodeRole.DATA_ROLE)
|
|
|
);
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, null)) {
|
|
|
expectThrows(IllegalArgumentException.class, service::ensureClientIsEnabled);
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
final IllegalArgumentException error = expectThrows(
|
|
@@ -487,7 +492,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
) {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
@@ -563,7 +568,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
) {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(hasRegisteredClusters(service));
|
|
@@ -627,7 +632,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
TimeValue pingSchedule2 = // randomBoolean() ? TimeValue.MINUS_ONE :
|
|
|
TimeValue.timeValueSeconds(randomIntBetween(1, 10));
|
|
|
builder.put("cluster.remote.cluster_2.transport.ping_schedule", pingSchedule2);
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(builder.build(), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(builder.build(), transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(isRemoteClusterRegistered(service, "cluster_1"));
|
|
|
RemoteClusterConnection remoteClusterConnection1 = service.getRemoteClusterConnection("cluster_1");
|
|
@@ -666,7 +671,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
transportService.acceptIncomingRequests();
|
|
|
Settings.Builder builder = Settings.builder();
|
|
|
builder.putList("cluster.remote.cluster_1.seeds", cluster1Seed.getAddress().toString());
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(builder.build(), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(builder.build(), transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
RemoteClusterConnection remoteClusterConnection = service.getRemoteClusterConnection("cluster_1");
|
|
|
Settings.Builder settingsChange = Settings.builder();
|
|
@@ -751,7 +756,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
) {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
@@ -841,7 +846,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
) {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
@@ -936,7 +941,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
) {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
@@ -1090,7 +1095,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(createSettings("cluster_1", seedList), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(createSettings("cluster_1", seedList), transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(hasRegisteredClusters(service));
|
|
|
final var numTasks = between(3, 5);
|
|
@@ -1277,7 +1282,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
|
|
|
final Settings.Builder builder = Settings.builder();
|
|
|
builder.putList("cluster.remote.cluster_test.seeds", Collections.singletonList(node0.getAddress().toString()));
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(builder.build(), transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(builder.build(), transportService)) {
|
|
|
assertFalse(hasRegisteredClusters(service));
|
|
|
service.initializeRemoteClusters();
|
|
|
assertTrue(hasRegisteredClusters(service));
|
|
@@ -1420,7 +1425,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(nodeNameSettings)
|
|
|
.put(onlyRole(DiscoveryNodeRole.REMOTE_CLUSTER_CLIENT_ROLE))
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settingsWithRemoteClusterClientRole, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settingsWithRemoteClusterClientRole, null)) {
|
|
|
service.ensureClientIsEnabled();
|
|
|
}
|
|
|
|
|
@@ -1429,7 +1434,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(nodeNameSettings)
|
|
|
.put(removeRoles(Set.of(DiscoveryNodeRole.REMOTE_CLUSTER_CLIENT_ROLE)))
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settingsWithoutRemoteClusterClientRole, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settingsWithoutRemoteClusterClientRole, null)) {
|
|
|
final var exception = expectThrows(IllegalArgumentException.class, service::ensureClientIsEnabled);
|
|
|
assertThat(exception.getMessage(), equalTo("node [node-1] does not have the [remote_cluster_client] role"));
|
|
|
}
|
|
@@ -1440,7 +1445,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(onlyRole(DiscoveryNodeRole.INDEX_ROLE))
|
|
|
.put(DiscoveryNode.STATELESS_ENABLED_SETTING_NAME, true)
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(statelessEnabledSettingsOnNonSearchNode, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(statelessEnabledSettingsOnNonSearchNode, null)) {
|
|
|
final var exception = expectThrows(IllegalArgumentException.class, service::ensureClientIsEnabled);
|
|
|
assertThat(
|
|
|
exception.getMessage(),
|
|
@@ -1457,7 +1462,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(onlyRole(DiscoveryNodeRole.SEARCH_ROLE))
|
|
|
.put(DiscoveryNode.STATELESS_ENABLED_SETTING_NAME, true)
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(statelessEnabledOnSearchNodeSettings, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(statelessEnabledOnSearchNodeSettings, null)) {
|
|
|
service.ensureClientIsEnabled();
|
|
|
}
|
|
|
final var statelessEnabledOnRemoteClusterClientSettings = Settings.builder()
|
|
@@ -1465,7 +1470,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(onlyRole(DiscoveryNodeRole.REMOTE_CLUSTER_CLIENT_ROLE))
|
|
|
.put(DiscoveryNode.STATELESS_ENABLED_SETTING_NAME, true)
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(statelessEnabledOnRemoteClusterClientSettings, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(statelessEnabledOnRemoteClusterClientSettings, null)) {
|
|
|
service.ensureClientIsEnabled();
|
|
|
}
|
|
|
final var statelessEnabledOnSearchNodeAndRemoteClusterClientSettings = Settings.builder()
|
|
@@ -1473,7 +1478,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
.put(onlyRoles(Set.of(DiscoveryNodeRole.SEARCH_ROLE, DiscoveryNodeRole.REMOTE_CLUSTER_CLIENT_ROLE)))
|
|
|
.put(DiscoveryNode.STATELESS_ENABLED_SETTING_NAME, true)
|
|
|
.build();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(statelessEnabledOnSearchNodeAndRemoteClusterClientSettings, null)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(statelessEnabledOnSearchNodeAndRemoteClusterClientSettings, null)) {
|
|
|
service.ensureClientIsEnabled();
|
|
|
}
|
|
|
}
|
|
@@ -1544,7 +1549,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
});
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(settings, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(settings, transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
|
|
|
final CountDownLatch firstLatch = new CountDownLatch(1);
|
|
@@ -1618,7 +1623,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
transportService.start();
|
|
|
transportService.acceptIncomingRequests();
|
|
|
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
|
|
|
final Settings clusterSettings = buildRemoteClusterSettings("cluster_1", discoNode.getAddress().toString());
|
|
@@ -1707,7 +1712,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
alias -> alias.equals(goodCluster) || alias.equals(badCluster),
|
|
|
() -> randomAlphaOfLength(10)
|
|
|
);
|
|
|
- try (RemoteClusterService service = new RemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
+ try (RemoteClusterService service = createRemoteClusterService(Settings.EMPTY, transportService)) {
|
|
|
service.initializeRemoteClusters();
|
|
|
|
|
|
final Settings cluster1Settings = buildRemoteClusterSettings(goodCluster, c1DiscoNode.getAddress().toString());
|
|
@@ -1793,7 +1798,7 @@ public class RemoteClusterServiceTests extends ESTestCase {
|
|
|
try (
|
|
|
var remote = startTransport("remote", List.of(), VersionInformation.CURRENT, TransportVersion.current(), Settings.EMPTY);
|
|
|
var local = startTransport("local", List.of(), VersionInformation.CURRENT, TransportVersion.current(), Settings.EMPTY);
|
|
|
- var remoteClusterService = new RemoteClusterService(Settings.EMPTY, local)
|
|
|
+ var remoteClusterService = createRemoteClusterService(Settings.EMPTY, local)
|
|
|
) {
|
|
|
var clusterSettings = ClusterSettings.createBuiltInClusterSettings();
|
|
|
remoteClusterService.listenForUpdates(clusterSettings);
|