Remove LocalEsCluster
We aren't using it anymore. Original commit: elastic/x-pack-elasticsearch@67f47c4f11
This commit is contained in:
parent
9d83eccf27
commit
18bc094dbc
|
@ -1,127 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
package org.elasticsearch.xpack.sql.jdbc.framework;
|
||||
|
||||
import org.elasticsearch.client.RestClient;
|
||||
import org.elasticsearch.cluster.routing.allocation.DiskThresholdSettings;
|
||||
import org.elasticsearch.common.CheckedSupplier;
|
||||
import org.elasticsearch.common.network.NetworkModule;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.painless.PainlessPlugin;
|
||||
import org.elasticsearch.plugins.Plugin;
|
||||
import org.elasticsearch.test.InternalTestCluster;
|
||||
import org.elasticsearch.test.NodeConfigurationSource;
|
||||
import org.elasticsearch.transport.Netty4Plugin;
|
||||
import org.elasticsearch.xpack.XPackPlugin;
|
||||
import org.elasticsearch.xpack.sql.jdbc.util.IOUtils;
|
||||
import org.elasticsearch.xpack.sql.net.client.SuppressForbidden;
|
||||
import org.elasticsearch.xpack.sql.util.StringUtils;
|
||||
import org.junit.rules.ExternalResource;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.nio.file.Path;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static java.util.Collections.emptySet;
|
||||
import static org.apache.lucene.util.LuceneTestCase.createTempDir;
|
||||
import static org.apache.lucene.util.LuceneTestCase.random;
|
||||
import static org.elasticsearch.test.ESTestCase.randomBoolean;
|
||||
import static org.elasticsearch.test.ESTestCase.randomLong;
|
||||
|
||||
|
||||
/**
|
||||
* Hack to run an {@link InternalTestCluster} if this is being run
|
||||
* in an environment without {@code tests.rest.cluster} set for easier
|
||||
* debugging. Note that this doesn't work in the security manager is
|
||||
* enabled.
|
||||
*/
|
||||
public class LocalEsCluster extends ExternalResource implements CheckedSupplier<Connection, SQLException> {
|
||||
|
||||
private InternalTestCluster internalTestCluster;
|
||||
private RestClient client;
|
||||
private String serverAddress = StringUtils.EMPTY;
|
||||
|
||||
@Override
|
||||
@SuppressForbidden(reason = "it is a hack anyway")
|
||||
protected void before() throws Throwable {
|
||||
long seed = randomLong();
|
||||
String name = InternalTestCluster.clusterName("", seed);
|
||||
NodeConfigurationSource config = new NodeConfigurationSource() {
|
||||
@Override
|
||||
public Settings nodeSettings(int nodeOrdinal) {
|
||||
Settings.Builder builder = Settings.builder()
|
||||
// Enable http because the tests use it
|
||||
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
||||
.put(NetworkModule.HTTP_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME)
|
||||
// Default the watermarks to absurdly low to prevent the tests
|
||||
// from failing on nodes without enough disk space
|
||||
.put(DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_LOW_DISK_WATERMARK_SETTING.getKey(), "1b")
|
||||
.put(DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_HIGH_DISK_WATERMARK_SETTING.getKey(), "1b")
|
||||
// Mimic settings in build.gradle so we're closer to real
|
||||
.put("xpack.security.enabled", false)
|
||||
.put("xpack.monitoring.enabled", false)
|
||||
.put("xpack.ml.enabled", false)
|
||||
.put("xpack.watcher.enabled", false);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path nodeConfigPath(int nodeOrdinal) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Class<? extends Plugin>> nodePlugins() {
|
||||
// Use netty4 plugin to enable rest
|
||||
return Arrays.asList(Netty4Plugin.class, XPackPlugin.class, PainlessPlugin.class);
|
||||
}
|
||||
};
|
||||
internalTestCluster = new InternalTestCluster(seed, createTempDir(), false, true, 1, 1, name, config, 0, randomBoolean(), "", emptySet(), Function.identity());
|
||||
internalTestCluster.beforeTest(random(), 0);
|
||||
internalTestCluster.ensureAtLeastNumDataNodes(1);
|
||||
InetSocketAddress httpBound = internalTestCluster.httpAddresses()[0];
|
||||
String http = httpBound.getHostString() + ":" + httpBound.getPort();
|
||||
try {
|
||||
System.setProperty("tests.rest.cluster", http);
|
||||
} catch (SecurityException e) {
|
||||
throw new RuntimeException("Failed to set system property required for tests. Security manager must be disabled to use this hack.", e);
|
||||
}
|
||||
|
||||
client = TestUtils.restClient(httpBound.getAddress());
|
||||
// load data
|
||||
TestUtils.loadDatasetInEs(client);
|
||||
|
||||
serverAddress = httpBound.getAddress().getHostAddress();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void after() {
|
||||
serverAddress = StringUtils.EMPTY;
|
||||
if (internalTestCluster == null) {
|
||||
return;
|
||||
}
|
||||
IOUtils.close(client);
|
||||
IOUtils.close(internalTestCluster);
|
||||
}
|
||||
|
||||
public RestClient client() {
|
||||
return client;
|
||||
}
|
||||
|
||||
public String address() {
|
||||
return serverAddress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection get() throws SQLException {
|
||||
return DriverManager.getConnection("jdbc:es://" + serverAddress);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue