rename Server to Node to better reflect its usage (it can be a client node), also add on the NodeBuilder helper methods to set common settings
This commit is contained in:
parent
d4bc187be9
commit
a9cd00e287
|
@ -21,7 +21,7 @@ package org.elasticsearch.benchmark.monitor.memory;
|
||||||
|
|
||||||
import org.elasticsearch.action.index.IndexRequest;
|
import org.elasticsearch.action.index.IndexRequest;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.util.StopWatch;
|
import org.elasticsearch.util.StopWatch;
|
||||||
import org.elasticsearch.util.json.JsonBuilder;
|
import org.elasticsearch.util.json.JsonBuilder;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.elasticsearch.client.Requests.*;
|
import static org.elasticsearch.client.Requests.*;
|
||||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||||
import static org.elasticsearch.server.ServerBuilder.*;
|
import static org.elasticsearch.node.NodeBuilder.*;
|
||||||
import static org.elasticsearch.util.json.JsonBuilder.*;
|
import static org.elasticsearch.util.json.JsonBuilder.*;
|
||||||
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
|
|
||||||
|
@ -51,10 +51,10 @@ public class SimpleMemoryMonitorBenchmark {
|
||||||
.put(SETTING_NUMBER_OF_REPLICAS, 1)
|
.put(SETTING_NUMBER_OF_REPLICAS, 1)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Server server1 = serverBuilder().settings(settingsBuilder().put(settings).put("name", "server1")).server();
|
Node node1 = nodeBuilder().settings(settingsBuilder().put(settings).put("name", "server1")).node();
|
||||||
Server server2 = serverBuilder().settings(settingsBuilder().put(settings).put("name", "server2")).server();
|
Node node2 = nodeBuilder().settings(settingsBuilder().put(settings).put("name", "server2")).node();
|
||||||
|
|
||||||
Client client1 = server1.client();
|
Client client1 = node1.client();
|
||||||
|
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
@ -78,8 +78,8 @@ public class SimpleMemoryMonitorBenchmark {
|
||||||
}
|
}
|
||||||
System.out.println("Indexing took " + stopWatch.stop().totalTime());
|
System.out.println("Indexing took " + stopWatch.stop().totalTime());
|
||||||
|
|
||||||
server1.close();
|
node1.close();
|
||||||
server2.close();
|
node2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static JsonBuilder source(String id, String nameValue) throws IOException {
|
private static JsonBuilder source(String id, String nameValue) throws IOException {
|
||||||
|
|
|
@ -27,7 +27,7 @@ import org.elasticsearch.action.support.nodes.NodeOperationRequest;
|
||||||
import org.elasticsearch.action.support.nodes.TransportNodesOperationAction;
|
import org.elasticsearch.action.support.nodes.TransportNodesOperationAction;
|
||||||
import org.elasticsearch.cluster.ClusterName;
|
import org.elasticsearch.cluster.ClusterName;
|
||||||
import org.elasticsearch.cluster.ClusterService;
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
import org.elasticsearch.util.TimeValue;
|
import org.elasticsearch.util.TimeValue;
|
||||||
|
@ -48,15 +48,15 @@ import static org.elasticsearch.util.TimeValue.*;
|
||||||
*/
|
*/
|
||||||
public class TransportNodesShutdown extends TransportNodesOperationAction<NodesShutdownRequest, NodesShutdownResponse, TransportNodesShutdown.NodeShutdownRequest, NodesShutdownResponse.NodeShutdownResponse> {
|
public class TransportNodesShutdown extends TransportNodesOperationAction<NodesShutdownRequest, NodesShutdownResponse, TransportNodesShutdown.NodeShutdownRequest, NodesShutdownResponse.NodeShutdownResponse> {
|
||||||
|
|
||||||
private final Server server;
|
private final Node node;
|
||||||
|
|
||||||
private final boolean disabled;
|
private final boolean disabled;
|
||||||
|
|
||||||
@Inject public TransportNodesShutdown(Settings settings, ClusterName clusterName, ThreadPool threadPool,
|
@Inject public TransportNodesShutdown(Settings settings, ClusterName clusterName, ThreadPool threadPool,
|
||||||
ClusterService clusterService, TransportService transportService,
|
ClusterService clusterService, TransportService transportService,
|
||||||
Server server) {
|
Node node) {
|
||||||
super(settings, clusterName, threadPool, clusterService, transportService);
|
super(settings, clusterName, threadPool, clusterService, transportService);
|
||||||
this.server = server;
|
this.node = node;
|
||||||
disabled = componentSettings.getAsBoolean("disabled", false);
|
disabled = componentSettings.getAsBoolean("disabled", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ public class TransportNodesShutdown extends TransportNodesOperationAction<NodesS
|
||||||
logger.info("Shutting down in [{}]", request.delay);
|
logger.info("Shutting down in [{}]", request.delay);
|
||||||
threadPool.schedule(new Runnable() {
|
threadPool.schedule(new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
}, request.delay.millis(), TimeUnit.MILLISECONDS);
|
}, request.delay.millis(), TimeUnit.MILLISECONDS);
|
||||||
return new NodesShutdownResponse.NodeShutdownResponse(clusterService.state().nodes().localNode());
|
return new NodesShutdownResponse.NodeShutdownResponse(clusterService.state().nodes().localNode());
|
||||||
|
|
|
@ -25,9 +25,9 @@ import org.elasticsearch.ExceptionsHelper;
|
||||||
import org.elasticsearch.Version;
|
import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.env.Environment;
|
import org.elasticsearch.env.Environment;
|
||||||
import org.elasticsearch.jmx.JmxService;
|
import org.elasticsearch.jmx.JmxService;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.server.ServerBuilder;
|
import org.elasticsearch.node.NodeBuilder;
|
||||||
import org.elasticsearch.server.internal.InternalSettingsPerparer;
|
import org.elasticsearch.node.internal.InternalSettingsPerparer;
|
||||||
import org.elasticsearch.util.Classes;
|
import org.elasticsearch.util.Classes;
|
||||||
import org.elasticsearch.util.Tuple;
|
import org.elasticsearch.util.Tuple;
|
||||||
import org.elasticsearch.util.jline.ANSI;
|
import org.elasticsearch.util.jline.ANSI;
|
||||||
|
@ -51,17 +51,17 @@ import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
*/
|
*/
|
||||||
public class Bootstrap {
|
public class Bootstrap {
|
||||||
|
|
||||||
private Server server;
|
private Node node;
|
||||||
|
|
||||||
private void setup(boolean addShutdownHook, Tuple<Settings, Environment> tuple) throws Exception {
|
private void setup(boolean addShutdownHook, Tuple<Settings, Environment> tuple) throws Exception {
|
||||||
tuple = setupJmx(tuple);
|
tuple = setupJmx(tuple);
|
||||||
|
|
||||||
ServerBuilder serverBuilder = ServerBuilder.serverBuilder().settings(tuple.v1()).loadConfigSettings(false);
|
NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().settings(tuple.v1()).loadConfigSettings(false);
|
||||||
server = serverBuilder.build();
|
node = nodeBuilder.build();
|
||||||
if (addShutdownHook) {
|
if (addShutdownHook) {
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -107,14 +107,14 @@ public class Bootstrap {
|
||||||
* hook for JSVC
|
* hook for JSVC
|
||||||
*/
|
*/
|
||||||
public void start() {
|
public void start() {
|
||||||
server.start();
|
node.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hook for JSVC
|
* hook for JSVC
|
||||||
*/
|
*/
|
||||||
public void stop() {
|
public void stop() {
|
||||||
server.stop();
|
node.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ public class Bootstrap {
|
||||||
* hook for JSVC
|
* hook for JSVC
|
||||||
*/
|
*/
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,8 +163,8 @@ public class Bootstrap {
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Logger logger = Loggers.getLogger(Bootstrap.class);
|
Logger logger = Loggers.getLogger(Bootstrap.class);
|
||||||
if (bootstrap.server != null) {
|
if (bootstrap.node != null) {
|
||||||
logger = Loggers.getLogger(Bootstrap.class, bootstrap.server.settings().get("name"));
|
logger = Loggers.getLogger(Bootstrap.class, bootstrap.node.settings().get("name"));
|
||||||
}
|
}
|
||||||
String errorMessage = buildErrorMessage(stage, e);
|
String errorMessage = buildErrorMessage(stage, e);
|
||||||
if (foreground) {
|
if (foreground) {
|
||||||
|
|
|
@ -45,11 +45,11 @@ import org.elasticsearch.action.terms.TermsResponse;
|
||||||
* simply returns an {@link org.elasticsearch.action.ActionFuture}, while the second accepts an
|
* simply returns an {@link org.elasticsearch.action.ActionFuture}, while the second accepts an
|
||||||
* {@link org.elasticsearch.action.ActionListener}.
|
* {@link org.elasticsearch.action.ActionListener}.
|
||||||
*
|
*
|
||||||
* <p>A client can either be retrieved from a {@link org.elasticsearch.server.Server} started, or connected remotely
|
* <p>A client can either be retrieved from a {@link org.elasticsearch.node.Node} started, or connected remotely
|
||||||
* to one or more nodes using {@link org.elasticsearch.client.transport.TransportClient}.
|
* to one or more nodes using {@link org.elasticsearch.client.transport.TransportClient}.
|
||||||
*
|
*
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
* @see org.elasticsearch.server.Server#client()
|
* @see org.elasticsearch.node.Node#client()
|
||||||
* @see org.elasticsearch.client.transport.TransportClient
|
* @see org.elasticsearch.client.transport.TransportClient
|
||||||
*/
|
*/
|
||||||
public interface Client {
|
public interface Client {
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.client.server;
|
package org.elasticsearch.client.node;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.elasticsearch.client.AdminClient;
|
import org.elasticsearch.client.AdminClient;
|
||||||
|
@ -27,15 +27,15 @@ import org.elasticsearch.util.component.AbstractComponent;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerAdminClient extends AbstractComponent implements AdminClient {
|
public class NodeAdminClient extends AbstractComponent implements AdminClient {
|
||||||
|
|
||||||
private final ServerIndicesAdminClient indicesAdminClient;
|
private final NodeIndicesAdminClient indicesAdminClient;
|
||||||
|
|
||||||
private final ServerClusterAdminClient clusterAdminClient;
|
private final NodeClusterAdminClient clusterAdminClient;
|
||||||
|
|
||||||
@Inject public ServerAdminClient(Settings settings, ServerClusterAdminClient clusterAdminClient, ServerIndicesAdminClient indicesAdminClient) {
|
@Inject public NodeAdminClient(Settings settings, NodeClusterAdminClient clusterAdminClient, NodeIndicesAdminClient indicesAdminClient) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.indicesAdminClient = indicesAdminClient;
|
this.indicesAdminClient = indicesAdminClient;
|
||||||
this.clusterAdminClient = clusterAdminClient;
|
this.clusterAdminClient = clusterAdminClient;
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.client.server;
|
package org.elasticsearch.client.node;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.elasticsearch.action.ActionFuture;
|
import org.elasticsearch.action.ActionFuture;
|
||||||
|
@ -51,9 +51,9 @@ import org.elasticsearch.util.settings.Settings;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerClient extends AbstractComponent implements Client {
|
public class NodeClient extends AbstractComponent implements Client {
|
||||||
|
|
||||||
private final ServerAdminClient admin;
|
private final NodeAdminClient admin;
|
||||||
|
|
||||||
private final TransportIndexAction indexAction;
|
private final TransportIndexAction indexAction;
|
||||||
|
|
||||||
|
@ -73,11 +73,11 @@ public class ServerClient extends AbstractComponent implements Client {
|
||||||
|
|
||||||
private final TransportMoreLikeThisAction moreLikeThisAction;
|
private final TransportMoreLikeThisAction moreLikeThisAction;
|
||||||
|
|
||||||
@Inject public ServerClient(Settings settings, ServerAdminClient admin,
|
@Inject public NodeClient(Settings settings, NodeAdminClient admin,
|
||||||
TransportIndexAction indexAction, TransportDeleteAction deleteAction,
|
TransportIndexAction indexAction, TransportDeleteAction deleteAction,
|
||||||
TransportDeleteByQueryAction deleteByQueryAction, TransportGetAction getAction, TransportCountAction countAction,
|
TransportDeleteByQueryAction deleteByQueryAction, TransportGetAction getAction, TransportCountAction countAction,
|
||||||
TransportSearchAction searchAction, TransportSearchScrollAction searchScrollAction,
|
TransportSearchAction searchAction, TransportSearchScrollAction searchScrollAction,
|
||||||
TransportTermsAction termsAction, TransportMoreLikeThisAction moreLikeThisAction) {
|
TransportTermsAction termsAction, TransportMoreLikeThisAction moreLikeThisAction) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.admin = admin;
|
this.admin = admin;
|
||||||
this.indexAction = indexAction;
|
this.indexAction = indexAction;
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.client.server;
|
package org.elasticsearch.client.node;
|
||||||
|
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import org.elasticsearch.client.AdminClient;
|
import org.elasticsearch.client.AdminClient;
|
||||||
|
@ -28,12 +28,12 @@ import org.elasticsearch.client.IndicesAdminClient;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerClientModule extends AbstractModule {
|
public class NodeClientModule extends AbstractModule {
|
||||||
|
|
||||||
@Override protected void configure() {
|
@Override protected void configure() {
|
||||||
bind(ClusterAdminClient.class).to(ServerClusterAdminClient.class).asEagerSingleton();
|
bind(ClusterAdminClient.class).to(NodeClusterAdminClient.class).asEagerSingleton();
|
||||||
bind(IndicesAdminClient.class).to(ServerIndicesAdminClient.class).asEagerSingleton();
|
bind(IndicesAdminClient.class).to(NodeIndicesAdminClient.class).asEagerSingleton();
|
||||||
bind(AdminClient.class).to(ServerAdminClient.class).asEagerSingleton();
|
bind(AdminClient.class).to(NodeAdminClient.class).asEagerSingleton();
|
||||||
bind(Client.class).to(ServerClient.class).asEagerSingleton();
|
bind(Client.class).to(NodeClient.class).asEagerSingleton();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.client.server;
|
package org.elasticsearch.client.node;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.elasticsearch.action.ActionFuture;
|
import org.elasticsearch.action.ActionFuture;
|
||||||
|
@ -48,9 +48,9 @@ import org.elasticsearch.util.component.AbstractComponent;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerClusterAdminClient extends AbstractComponent implements ClusterAdminClient {
|
public class NodeClusterAdminClient extends AbstractComponent implements ClusterAdminClient {
|
||||||
|
|
||||||
private final TransportClusterHealthAction clusterHealthAction;
|
private final TransportClusterHealthAction clusterHealthAction;
|
||||||
|
|
||||||
|
@ -66,10 +66,10 @@ public class ServerClusterAdminClient extends AbstractComponent implements Clust
|
||||||
|
|
||||||
private final TransportNodesShutdown nodesShutdown;
|
private final TransportNodesShutdown nodesShutdown;
|
||||||
|
|
||||||
@Inject public ServerClusterAdminClient(Settings settings,
|
@Inject public NodeClusterAdminClient(Settings settings,
|
||||||
TransportClusterHealthAction clusterHealthAction, TransportClusterStateAction clusterStateAction,
|
TransportClusterHealthAction clusterHealthAction, TransportClusterStateAction clusterStateAction,
|
||||||
TransportSinglePingAction singlePingAction, TransportBroadcastPingAction broadcastPingAction, TransportReplicationPingAction replicationPingAction,
|
TransportSinglePingAction singlePingAction, TransportBroadcastPingAction broadcastPingAction, TransportReplicationPingAction replicationPingAction,
|
||||||
TransportNodesInfo nodesInfo, TransportNodesShutdown nodesShutdown) {
|
TransportNodesInfo nodesInfo, TransportNodesShutdown nodesShutdown) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.clusterHealthAction = clusterHealthAction;
|
this.clusterHealthAction = clusterHealthAction;
|
||||||
this.clusterStateAction = clusterStateAction;
|
this.clusterStateAction = clusterStateAction;
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.client.server;
|
package org.elasticsearch.client.node;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.elasticsearch.action.ActionFuture;
|
import org.elasticsearch.action.ActionFuture;
|
||||||
|
@ -57,9 +57,9 @@ import org.elasticsearch.util.component.AbstractComponent;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerIndicesAdminClient extends AbstractComponent implements IndicesAdminClient {
|
public class NodeIndicesAdminClient extends AbstractComponent implements IndicesAdminClient {
|
||||||
|
|
||||||
private final TransportIndicesStatusAction indicesStatusAction;
|
private final TransportIndicesStatusAction indicesStatusAction;
|
||||||
|
|
||||||
|
@ -81,11 +81,11 @@ public class ServerIndicesAdminClient extends AbstractComponent implements Indic
|
||||||
|
|
||||||
private final TransportClearIndicesCacheAction clearIndicesCacheAction;
|
private final TransportClearIndicesCacheAction clearIndicesCacheAction;
|
||||||
|
|
||||||
@Inject public ServerIndicesAdminClient(Settings settings, TransportIndicesStatusAction indicesStatusAction,
|
@Inject public NodeIndicesAdminClient(Settings settings, TransportIndicesStatusAction indicesStatusAction,
|
||||||
TransportCreateIndexAction createIndexAction, TransportDeleteIndexAction deleteIndexAction,
|
TransportCreateIndexAction createIndexAction, TransportDeleteIndexAction deleteIndexAction,
|
||||||
TransportRefreshAction refreshAction, TransportFlushAction flushAction, TransportOptimizeAction optimizeAction,
|
TransportRefreshAction refreshAction, TransportFlushAction flushAction, TransportOptimizeAction optimizeAction,
|
||||||
TransportPutMappingAction putMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction,
|
TransportPutMappingAction putMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction,
|
||||||
TransportIndicesAliasesAction indicesAliasesAction, TransportClearIndicesCacheAction clearIndicesCacheAction) {
|
TransportIndicesAliasesAction indicesAliasesAction, TransportClearIndicesCacheAction clearIndicesCacheAction) {
|
||||||
super(settings);
|
super(settings);
|
||||||
this.indicesStatusAction = indicesStatusAction;
|
this.indicesStatusAction = indicesStatusAction;
|
||||||
this.createIndexAction = createIndexAction;
|
this.createIndexAction = createIndexAction;
|
|
@ -50,7 +50,7 @@ import org.elasticsearch.cluster.ClusterNameModule;
|
||||||
import org.elasticsearch.cluster.node.DiscoveryNode;
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||||
import org.elasticsearch.env.Environment;
|
import org.elasticsearch.env.Environment;
|
||||||
import org.elasticsearch.env.EnvironmentModule;
|
import org.elasticsearch.env.EnvironmentModule;
|
||||||
import org.elasticsearch.server.internal.InternalSettingsPerparer;
|
import org.elasticsearch.node.internal.InternalSettingsPerparer;
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
import org.elasticsearch.threadpool.ThreadPoolModule;
|
import org.elasticsearch.threadpool.ThreadPoolModule;
|
||||||
import org.elasticsearch.timer.TimerModule;
|
import org.elasticsearch.timer.TimerModule;
|
||||||
|
@ -120,7 +120,7 @@ public class TransportClient implements Client {
|
||||||
Tuple<Settings, Environment> tuple = InternalSettingsPerparer.prepareSettings(pSettings, loadConfigSettings);
|
Tuple<Settings, Environment> tuple = InternalSettingsPerparer.prepareSettings(pSettings, loadConfigSettings);
|
||||||
this.settings = settingsBuilder().put(tuple.v1())
|
this.settings = settingsBuilder().put(tuple.v1())
|
||||||
.put("network.server", false)
|
.put("network.server", false)
|
||||||
.put("discovery.client", true)
|
.put("node.client", true)
|
||||||
.build();
|
.build();
|
||||||
this.environment = tuple.v2();
|
this.environment = tuple.v2();
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ public class GatewayService extends AbstractLifecycleComponent<GatewayService> i
|
||||||
gateway.start();
|
gateway.start();
|
||||||
this.executor = newSingleThreadExecutor(daemonThreadFactory(settings, "gateway"));
|
this.executor = newSingleThreadExecutor(daemonThreadFactory(settings, "gateway"));
|
||||||
// if we received initial state, see if we can recover within the start phase, so we hold the
|
// if we received initial state, see if we can recover within the start phase, so we hold the
|
||||||
// server from starting until we recovered properly
|
// node from starting until we recovered properly
|
||||||
if (discoveryService.initialStateReceived()) {
|
if (discoveryService.initialStateReceived()) {
|
||||||
if (discoveryService.firstMaster()) {
|
if (discoveryService.firstMaster()) {
|
||||||
if (firstMasterRead.compareAndSet(false, true)) {
|
if (firstMasterRead.compareAndSet(false, true)) {
|
||||||
|
|
|
@ -17,24 +17,24 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.server;
|
package org.elasticsearch.node;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A server represent a node within a cluster (<tt>cluster.name</tt>). The {@link #client()} can be used
|
* A node represent a node within a cluster (<tt>cluster.name</tt>). The {@link #client()} can be used
|
||||||
* in order to use a {@link Client} to perform actions/operations against the cluster.
|
* in order to use a {@link Client} to perform actions/operations against the cluster.
|
||||||
*
|
*
|
||||||
* <p>In order to create a server, the {@link ServerBuilder} can be used. When done with it, make sure to
|
* <p>In order to create a node, the {@link NodeBuilder} can be used. When done with it, make sure to
|
||||||
* call {@link #close()} on it.
|
* call {@link #close()} on it.
|
||||||
*
|
*
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public interface Server {
|
public interface Node {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The settings that were used to create the server.
|
* The settings that were used to create the node.
|
||||||
*/
|
*/
|
||||||
Settings settings();
|
Settings settings();
|
||||||
|
|
||||||
|
@ -44,17 +44,17 @@ public interface Server {
|
||||||
Client client();
|
Client client();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start the server. If the server is already started, this method is noop.
|
* Start the node. If the node is already started, this method is no-op.
|
||||||
*/
|
*/
|
||||||
Server start();
|
Node start();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stops the server. If the server is already started, this method is noop.
|
* Stops the node. If the node is already started, this method is no-op.
|
||||||
*/
|
*/
|
||||||
Server stop();
|
Node stop();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Closes the server (and {@link #stop}s if its running).
|
* Closes the node (and {@link #stop}s if its running).
|
||||||
*/
|
*/
|
||||||
void close();
|
void close();
|
||||||
}
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.node;
|
||||||
|
|
||||||
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
|
import org.elasticsearch.util.settings.ImmutableSettings;
|
||||||
|
import org.elasticsearch.util.settings.Settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A node builder is used to construct a {@link Node} instance.
|
||||||
|
*
|
||||||
|
* <p>Settings will be loaded relative to the ES home (with or without <tt>config/</tt> prefix) and if not found,
|
||||||
|
* within the classpath (with or without <tt>config/<tt> prefix). The settings file loaded can either be named
|
||||||
|
* <tt>elasticsearch.yml</tt> or <tt>elasticsearch.json</tt>). Loading settings can be disabled by calling
|
||||||
|
* {@link #loadConfigSettings(boolean)} with <tt>false<tt>.
|
||||||
|
*
|
||||||
|
* <p>Explicit settings can be passed by using the {@link #settings(Settings)} method.
|
||||||
|
*
|
||||||
|
* <p>In any case, settings will be resolved from system properties as well that are either prefixed with <tt>es.</tt>
|
||||||
|
* or <tt>elasticsearch.</tt>.
|
||||||
|
*
|
||||||
|
* <p>An example for creating a simple node with optional settings loaded from the classpath:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* Node node = NodeBuilder.nodeBuilder().node();
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>An example for creating a node with explicit settings (in this case, a node in the cluster that does not hold
|
||||||
|
* data):
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* Node node = NodeBuilder.nodeBuilder()
|
||||||
|
* .settings(ImmutableSettings.settingsBuilder().put("node.data", false)
|
||||||
|
* .node();
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>When done with the node, make sure you call {@link Node#close()} on it.
|
||||||
|
*
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class NodeBuilder {
|
||||||
|
|
||||||
|
private final ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder();
|
||||||
|
|
||||||
|
private boolean loadConfigSettings = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A convenient factory method to create a {@link NodeBuilder}.
|
||||||
|
*/
|
||||||
|
public static NodeBuilder nodeBuilder() {
|
||||||
|
return new NodeBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Explicit node settings to set.
|
||||||
|
*/
|
||||||
|
public NodeBuilder settings(Settings.Builder settings) {
|
||||||
|
return settings(settings.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Explicit node settings to set.
|
||||||
|
*/
|
||||||
|
public NodeBuilder settings(Settings settings) {
|
||||||
|
this.settings.put(settings);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should the node builder automatically try and load config settings from the file system / classpath. Defaults
|
||||||
|
* to <tt>true</tt>.
|
||||||
|
*/
|
||||||
|
public NodeBuilder loadConfigSettings(boolean loadConfigSettings) {
|
||||||
|
this.loadConfigSettings = loadConfigSettings;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the node going to be a client node which means it will hold no data (<tt>node.data</tt> is
|
||||||
|
* set to <tt>false</tt>) and other optimizations by different modules.
|
||||||
|
*
|
||||||
|
* @param client Should the node be just a client node or not.
|
||||||
|
*/
|
||||||
|
public NodeBuilder client(boolean client) {
|
||||||
|
settings.put("node.client", client);
|
||||||
|
data(!client);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the node going to be allowed to allocate data (shards) to it or not. This setting map to
|
||||||
|
* the <tt>node.data</tt> setting. Note, when setting {@link #client(boolean)}, the node will
|
||||||
|
* not hold any data by default.
|
||||||
|
*
|
||||||
|
* @param data Should the node be allocated data to or not.
|
||||||
|
*/
|
||||||
|
public NodeBuilder data(boolean data) {
|
||||||
|
settings.put("node.data", data);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The cluster name this node is part of (maps to the <tt>cluster.name</tt> setting). Defaults
|
||||||
|
* to <tt>elasticsearch</tt>.
|
||||||
|
*
|
||||||
|
* @param clusterName The cluster name this node is part of.
|
||||||
|
*/
|
||||||
|
public NodeBuilder clusterName(String clusterName) {
|
||||||
|
settings.put("cluster.name", clusterName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the node without starting it.
|
||||||
|
*/
|
||||||
|
public Node build() {
|
||||||
|
return new InternalNode(settings.build(), loadConfigSettings);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link #build()}s and starts the node.
|
||||||
|
*/
|
||||||
|
public Node node() {
|
||||||
|
return build().start();
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.server.internal;
|
package org.elasticsearch.node.internal;
|
||||||
|
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
|
@ -26,7 +26,7 @@ import org.elasticsearch.ElasticSearchException;
|
||||||
import org.elasticsearch.Version;
|
import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.action.TransportActionModule;
|
import org.elasticsearch.action.TransportActionModule;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.server.ServerClientModule;
|
import org.elasticsearch.client.node.NodeClientModule;
|
||||||
import org.elasticsearch.cluster.ClusterModule;
|
import org.elasticsearch.cluster.ClusterModule;
|
||||||
import org.elasticsearch.cluster.ClusterNameModule;
|
import org.elasticsearch.cluster.ClusterNameModule;
|
||||||
import org.elasticsearch.cluster.ClusterService;
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
|
@ -46,13 +46,13 @@ import org.elasticsearch.jmx.JmxModule;
|
||||||
import org.elasticsearch.jmx.JmxService;
|
import org.elasticsearch.jmx.JmxService;
|
||||||
import org.elasticsearch.monitor.MonitorModule;
|
import org.elasticsearch.monitor.MonitorModule;
|
||||||
import org.elasticsearch.monitor.MonitorService;
|
import org.elasticsearch.monitor.MonitorService;
|
||||||
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.plugins.PluginsModule;
|
import org.elasticsearch.plugins.PluginsModule;
|
||||||
import org.elasticsearch.plugins.PluginsService;
|
import org.elasticsearch.plugins.PluginsService;
|
||||||
import org.elasticsearch.rest.RestController;
|
import org.elasticsearch.rest.RestController;
|
||||||
import org.elasticsearch.rest.RestModule;
|
import org.elasticsearch.rest.RestModule;
|
||||||
import org.elasticsearch.search.SearchModule;
|
import org.elasticsearch.search.SearchModule;
|
||||||
import org.elasticsearch.search.SearchService;
|
import org.elasticsearch.search.SearchService;
|
||||||
import org.elasticsearch.server.Server;
|
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
import org.elasticsearch.threadpool.ThreadPoolModule;
|
import org.elasticsearch.threadpool.ThreadPoolModule;
|
||||||
import org.elasticsearch.timer.TimerModule;
|
import org.elasticsearch.timer.TimerModule;
|
||||||
|
@ -79,7 +79,7 @@ import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public final class InternalServer implements Server {
|
public final class InternalNode implements Node {
|
||||||
|
|
||||||
private final Lifecycle lifecycle = new Lifecycle();
|
private final Lifecycle lifecycle = new Lifecycle();
|
||||||
|
|
||||||
|
@ -93,14 +93,14 @@ public final class InternalServer implements Server {
|
||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
|
|
||||||
public InternalServer() throws ElasticSearchException {
|
public InternalNode() throws ElasticSearchException {
|
||||||
this(Builder.EMPTY_SETTINGS, true);
|
this(Builder.EMPTY_SETTINGS, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InternalServer(Settings pSettings, boolean loadConfigSettings) throws ElasticSearchException {
|
public InternalNode(Settings pSettings, boolean loadConfigSettings) throws ElasticSearchException {
|
||||||
Tuple<Settings, Environment> tuple = InternalSettingsPerparer.prepareSettings(pSettings, loadConfigSettings);
|
Tuple<Settings, Environment> tuple = InternalSettingsPerparer.prepareSettings(pSettings, loadConfigSettings);
|
||||||
|
|
||||||
Logger logger = Loggers.getLogger(Server.class, tuple.v1().get("name"));
|
Logger logger = Loggers.getLogger(Node.class, tuple.v1().get("name"));
|
||||||
logger.info("{{}}: Initializing ...", Version.full());
|
logger.info("{{}}: Initializing ...", Version.full());
|
||||||
|
|
||||||
this.pluginsService = new PluginsService(tuple.v1(), tuple.v2());
|
this.pluginsService = new PluginsService(tuple.v1(), tuple.v2());
|
||||||
|
@ -109,7 +109,7 @@ public final class InternalServer implements Server {
|
||||||
|
|
||||||
ArrayList<Module> modules = new ArrayList<Module>();
|
ArrayList<Module> modules = new ArrayList<Module>();
|
||||||
modules.add(new PluginsModule(settings, pluginsService));
|
modules.add(new PluginsModule(settings, pluginsService));
|
||||||
modules.add(new ServerModule(this));
|
modules.add(new NodeModule(this));
|
||||||
modules.add(new JmxModule(settings));
|
modules.add(new JmxModule(settings));
|
||||||
modules.add(new EnvironmentModule(environment));
|
modules.add(new EnvironmentModule(environment));
|
||||||
modules.add(new ClusterNameModule(settings));
|
modules.add(new ClusterNameModule(settings));
|
||||||
|
@ -128,7 +128,7 @@ public final class InternalServer implements Server {
|
||||||
modules.add(new TransportActionModule());
|
modules.add(new TransportActionModule());
|
||||||
modules.add(new MonitorModule(settings));
|
modules.add(new MonitorModule(settings));
|
||||||
modules.add(new GatewayModule(settings));
|
modules.add(new GatewayModule(settings));
|
||||||
modules.add(new ServerClientModule());
|
modules.add(new NodeClientModule());
|
||||||
|
|
||||||
|
|
||||||
injector = Guice.createInjector(modules);
|
injector = Guice.createInjector(modules);
|
||||||
|
@ -146,12 +146,12 @@ public final class InternalServer implements Server {
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server start() {
|
public Node start() {
|
||||||
if (!lifecycle.moveToStarted()) {
|
if (!lifecycle.moveToStarted()) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger logger = Loggers.getLogger(Server.class, settings.get("name"));
|
Logger logger = Loggers.getLogger(Node.class, settings.get("name"));
|
||||||
logger.info("{{}}: Starting ...", Version.full());
|
logger.info("{{}}: Starting ...", Version.full());
|
||||||
|
|
||||||
for (Class<? extends LifecycleComponent> plugin : pluginsService.services()) {
|
for (Class<? extends LifecycleComponent> plugin : pluginsService.services()) {
|
||||||
|
@ -180,11 +180,11 @@ public final class InternalServer implements Server {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Server stop() {
|
@Override public Node stop() {
|
||||||
if (!lifecycle.moveToStopped()) {
|
if (!lifecycle.moveToStopped()) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
Logger logger = Loggers.getLogger(Server.class, settings.get("name"));
|
Logger logger = Loggers.getLogger(Node.class, settings.get("name"));
|
||||||
logger.info("{{}}: Stopping ...", Version.full());
|
logger.info("{{}}: Stopping ...", Version.full());
|
||||||
|
|
||||||
if (settings.getAsBoolean("http.enabled", true)) {
|
if (settings.getAsBoolean("http.enabled", true)) {
|
||||||
|
@ -228,7 +228,7 @@ public final class InternalServer implements Server {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger logger = Loggers.getLogger(Server.class, settings.get("name"));
|
Logger logger = Loggers.getLogger(Node.class, settings.get("name"));
|
||||||
logger.info("{{}}: Closing ...", Version.full());
|
logger.info("{{}}: Closing ...", Version.full());
|
||||||
|
|
||||||
if (settings.getAsBoolean("http.enabled", true)) {
|
if (settings.getAsBoolean("http.enabled", true)) {
|
||||||
|
@ -272,11 +272,11 @@ public final class InternalServer implements Server {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
final InternalServer server = new InternalServer();
|
final InternalNode node = new InternalNode();
|
||||||
server.start();
|
node.start();
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.server.internal;
|
package org.elasticsearch.node.internal;
|
||||||
|
|
||||||
import org.elasticsearch.cluster.ClusterName;
|
import org.elasticsearch.cluster.ClusterName;
|
||||||
import org.elasticsearch.env.Environment;
|
import org.elasticsearch.env.Environment;
|
|
@ -17,23 +17,23 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.elasticsearch.server.internal;
|
package org.elasticsearch.node.internal;
|
||||||
|
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class ServerModule extends AbstractModule {
|
public class NodeModule extends AbstractModule {
|
||||||
|
|
||||||
private final Server server;
|
private final Node node;
|
||||||
|
|
||||||
public ServerModule(Server server) {
|
public NodeModule(Node node) {
|
||||||
this.server = server;
|
this.node = node;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override protected void configure() {
|
@Override protected void configure() {
|
||||||
bind(Server.class).toInstance(server);
|
bind(Node.class).toInstance(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,6 +18,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow to build a {@link Server} using {@link ServerBuilder} which is a node within the cluster.
|
* Allow to build a {@link Node} using {@link NodeBuilder} which is a node within the cluster.
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.server;
|
package org.elasticsearch.node;
|
|
@ -43,12 +43,12 @@ public interface Plugin {
|
||||||
String description();
|
String description();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server level modules.
|
* Node level modules.
|
||||||
*/
|
*/
|
||||||
Collection<Class<? extends Module>> modules();
|
Collection<Class<? extends Module>> modules();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server level services that will be automatically started/stopped/closed.
|
* Node level services that will be automatically started/stopped/closed.
|
||||||
*/
|
*/
|
||||||
Collection<Class<? extends LifecycleComponent>> services();
|
Collection<Class<? extends LifecycleComponent>> services();
|
||||||
|
|
||||||
|
|
|
@ -1,108 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elastic Search and Shay Banon under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. Elastic Search licenses this
|
|
||||||
* file to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.server;
|
|
||||||
|
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
|
||||||
import org.elasticsearch.util.settings.ImmutableSettings;
|
|
||||||
import org.elasticsearch.util.settings.Settings;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A server builder is used to construct a {@link Server} instance.
|
|
||||||
*
|
|
||||||
* <p>Settings will be loaded relative to the ES home (with or without <tt>config/</tt> prefix) and if not found,
|
|
||||||
* within the classpath (with or without <tt>config/<tt> prefix). The settings file loaded can either be named
|
|
||||||
* <tt>elasticsearch.yml</tt> or <tt>elasticsearch.json</tt>). Loading settings can be disabled by calling
|
|
||||||
* {@link #loadConfigSettings(boolean)} with <tt>false<tt>.
|
|
||||||
*
|
|
||||||
* <p>Explicit settings can be passed by using the {@link #settings(Settings)} method.
|
|
||||||
*
|
|
||||||
* <p>In any case, settings will be resolved from system properties as well that are either prefixed with <tt>es.</tt>
|
|
||||||
* or <tt>elasticsearch.</tt>.
|
|
||||||
*
|
|
||||||
* <p>An example for creating a simple server with optional settings loaded from the classpath:
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* Server server = ServerBuilder.serverBuilder().server();
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* <p>An example for creating a server with explicit settings (in this case, a node in the cluster that does not hold
|
|
||||||
* data):
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* Server server = ServerBuilder.serverBuilder()
|
|
||||||
* .settings(ImmutableSettings.settingsBuilder().putBoolean("node.data", false)
|
|
||||||
* .server();
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* <p>When done with the server, make sure you call {@link Server#close()} on it.
|
|
||||||
*
|
|
||||||
* @author kimchy (shay.banon)
|
|
||||||
*/
|
|
||||||
public class ServerBuilder {
|
|
||||||
|
|
||||||
private Settings settings = ImmutableSettings.Builder.EMPTY_SETTINGS;
|
|
||||||
|
|
||||||
private boolean loadConfigSettings = true;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A convenient factory method to create a {@link ServerBuilder}.
|
|
||||||
*/
|
|
||||||
public static ServerBuilder serverBuilder() {
|
|
||||||
return new ServerBuilder();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Explicit server settings to set.
|
|
||||||
*/
|
|
||||||
public ServerBuilder settings(Settings.Builder settings) {
|
|
||||||
return settings(settings.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Explicit server settings to set.
|
|
||||||
*/
|
|
||||||
public ServerBuilder settings(Settings settings) {
|
|
||||||
this.settings = settings;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should the server builder automatically try and load config settings from the file system / classpath. Defaults
|
|
||||||
* to <tt>true</tt>.
|
|
||||||
*/
|
|
||||||
public ServerBuilder loadConfigSettings(boolean loadConfigSettings) {
|
|
||||||
this.loadConfigSettings = loadConfigSettings;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds the server without starting it.
|
|
||||||
*/
|
|
||||||
public Server build() {
|
|
||||||
return new InternalServer(settings, loadConfigSettings);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@link #build()}s and starts the server.
|
|
||||||
*/
|
|
||||||
public Server server() {
|
|
||||||
return build().start();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -20,7 +20,7 @@
|
||||||
package org.elasticsearch.test.integration;
|
package org.elasticsearch.test.integration;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.util.logging.Loggers;
|
import org.elasticsearch.util.logging.Loggers;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -28,72 +28,72 @@ import org.slf4j.Logger;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.google.common.collect.Maps.*;
|
import static com.google.common.collect.Maps.*;
|
||||||
import static org.elasticsearch.server.ServerBuilder.*;
|
import static org.elasticsearch.node.NodeBuilder.*;
|
||||||
import static org.elasticsearch.util.settings.ImmutableSettings.Builder.*;
|
import static org.elasticsearch.util.settings.ImmutableSettings.Builder.*;
|
||||||
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
|
|
||||||
public abstract class AbstractServersTests {
|
public abstract class AbstractNodesTests {
|
||||||
|
|
||||||
protected final Logger logger = Loggers.getLogger(getClass());
|
protected final Logger logger = Loggers.getLogger(getClass());
|
||||||
|
|
||||||
private Map<String, Server> servers = newHashMap();
|
private Map<String, Node> nodes = newHashMap();
|
||||||
|
|
||||||
private Map<String, Client> clients = newHashMap();
|
private Map<String, Client> clients = newHashMap();
|
||||||
|
|
||||||
public Server startServer(String id) {
|
public Node startNode(String id) {
|
||||||
return buildServer(id).start();
|
return buildNode(id).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server startServer(String id, Settings settings) {
|
public Node startNode(String id, Settings settings) {
|
||||||
return buildServer(id, settings).start();
|
return buildNode(id, settings).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server buildServer(String id) {
|
public Node buildNode(String id) {
|
||||||
return buildServer(id, EMPTY_SETTINGS);
|
return buildNode(id, EMPTY_SETTINGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server buildServer(String id, Settings settings) {
|
public Node buildNode(String id, Settings settings) {
|
||||||
String settingsSource = getClass().getName().replace('.', '/') + ".yml";
|
String settingsSource = getClass().getName().replace('.', '/') + ".yml";
|
||||||
Settings finalSettings = settingsBuilder()
|
Settings finalSettings = settingsBuilder()
|
||||||
.loadFromClasspath(settingsSource)
|
.loadFromClasspath(settingsSource)
|
||||||
.put(settings)
|
.put(settings)
|
||||||
.put("name", id)
|
.put("name", id)
|
||||||
.build();
|
.build();
|
||||||
Server server = serverBuilder()
|
Node node = nodeBuilder()
|
||||||
.settings(finalSettings)
|
.settings(finalSettings)
|
||||||
.build();
|
.build();
|
||||||
servers.put(id, server);
|
nodes.put(id, node);
|
||||||
clients.put(id, server.client());
|
clients.put(id, node.client());
|
||||||
return server;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeServer(String id) {
|
public void closeNode(String id) {
|
||||||
Client client = clients.remove(id);
|
Client client = clients.remove(id);
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
client.close();
|
client.close();
|
||||||
}
|
}
|
||||||
Server server = servers.remove(id);
|
Node node = nodes.remove(id);
|
||||||
if (server != null) {
|
if (node != null) {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server server(String id) {
|
public Node node(String id) {
|
||||||
return servers.get(id);
|
return nodes.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Client client(String id) {
|
public Client client(String id) {
|
||||||
return clients.get(id);
|
return clients.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeAllServers() {
|
public void closeAllNodes() {
|
||||||
for (Client client : clients.values()) {
|
for (Client client : clients.values()) {
|
||||||
client.close();
|
client.close();
|
||||||
}
|
}
|
||||||
clients.clear();
|
clients.clear();
|
||||||
for (Server server : servers.values()) {
|
for (Node node : nodes.values()) {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
servers.clear();
|
nodes.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
import org.elasticsearch.action.index.IndexResponse;
|
import org.elasticsearch.action.index.IndexResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.indices.IndexMissingException;
|
import org.elasticsearch.indices.IndexMissingException;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -37,22 +37,22 @@ import static org.hamcrest.Matchers.*;
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public class IndexAliasesTests extends AbstractServersTests {
|
public class IndexAliasesTests extends AbstractNodesTests {
|
||||||
|
|
||||||
protected Client client1;
|
protected Client client1;
|
||||||
protected Client client2;
|
protected Client client2;
|
||||||
|
|
||||||
@BeforeMethod public void startServers() {
|
@BeforeMethod public void startNodes() {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client1 = getClient1();
|
client1 = getClient1();
|
||||||
client2 = getClient2();
|
client2 = getClient2();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
client1.close();
|
client1.close();
|
||||||
client2.close();
|
client2.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient1() {
|
protected Client getClient1() {
|
||||||
|
|
|
@ -26,7 +26,7 @@ import org.elasticsearch.action.admin.indices.flush.FlushResponse;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||||
import org.elasticsearch.action.count.CountResponse;
|
import org.elasticsearch.action.count.CountResponse;
|
||||||
import org.elasticsearch.action.support.broadcast.BroadcastOperationThreading;
|
import org.elasticsearch.action.support.broadcast.BroadcastOperationThreading;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.Unicode;
|
import org.elasticsearch.util.Unicode;
|
||||||
import org.elasticsearch.util.json.JsonBuilder;
|
import org.elasticsearch.util.json.JsonBuilder;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
|
@ -43,14 +43,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class BroadcastActionsTests extends AbstractServersTests {
|
public class BroadcastActionsTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeServers() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testBroadcastOperations() throws IOException {
|
@Test public void testBroadcastOperations() throws IOException {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ package org.elasticsearch.test.integration.client.transport;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.search.TransportTwoServersSearchTests;
|
import org.elasticsearch.test.integration.search.TransportTwoServersSearchTests;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
import org.elasticsearch.util.transport.TransportAddress;
|
import org.elasticsearch.util.transport.TransportAddress;
|
||||||
|
@ -32,7 +32,7 @@ import org.elasticsearch.util.transport.TransportAddress;
|
||||||
public class ClientTransportTwoServersSearchTests extends TransportTwoServersSearchTests {
|
public class ClientTransportTwoServersSearchTests extends TransportTwoServersSearchTests {
|
||||||
|
|
||||||
@Override protected Client getClient() {
|
@Override protected Client getClient() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient();
|
TransportClient client = new TransportClient();
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
package org.elasticsearch.test.integration.client.transport;
|
package org.elasticsearch.test.integration.client.transport;
|
||||||
|
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.settings.ImmutableSettings;
|
import org.elasticsearch.util.settings.ImmutableSettings;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import static org.elasticsearch.client.Requests.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class DiscoveryTransportClientTests extends AbstractServersTests {
|
public class DiscoveryTransportClientTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private TransportClient client;
|
private TransportClient client;
|
||||||
|
|
||||||
|
@ -37,13 +37,13 @@ public class DiscoveryTransportClientTests extends AbstractServersTests {
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
client.close();
|
client.close();
|
||||||
}
|
}
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@Test*/
|
/*@Test*/
|
||||||
|
|
||||||
public void testWithDiscovery() throws Exception {
|
public void testWithDiscovery() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
client = new TransportClient(ImmutableSettings.settingsBuilder().put("discovery.enabled", true).build());
|
client = new TransportClient(ImmutableSettings.settingsBuilder().put("discovery.enabled", true).build());
|
||||||
// wait a bit so nodes will be discovered
|
// wait a bit so nodes will be discovered
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
@ -51,13 +51,13 @@ public class DiscoveryTransportClientTests extends AbstractServersTests {
|
||||||
Thread.sleep(500);
|
Thread.sleep(500);
|
||||||
|
|
||||||
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
Thread.sleep(10000);
|
Thread.sleep(10000);
|
||||||
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
||||||
closeServer("server2");
|
closeNode("server2");
|
||||||
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
client.admin().cluster().ping(pingSingleRequest("test").type("person").id("1")).actionGet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ package org.elasticsearch.test.integration.client.transport;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.document.DocumentActionsTests;
|
import org.elasticsearch.test.integration.document.DocumentActionsTests;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
import org.elasticsearch.util.transport.TransportAddress;
|
import org.elasticsearch.util.transport.TransportAddress;
|
||||||
|
@ -34,14 +34,14 @@ import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
public class TransportClientDocumentActionsTests extends DocumentActionsTests {
|
public class TransportClientDocumentActionsTests extends DocumentActionsTests {
|
||||||
|
|
||||||
@Override protected Client getClient1() {
|
@Override protected Client getClient1() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override protected Client getClient2() {
|
@Override protected Client getClient2() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server2")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server2")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
|
|
|
@ -21,7 +21,7 @@ package org.elasticsearch.test.integration.client.transport;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.document.MoreLikeThisActionTests;
|
import org.elasticsearch.test.integration.document.MoreLikeThisActionTests;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
import org.elasticsearch.util.transport.TransportAddress;
|
import org.elasticsearch.util.transport.TransportAddress;
|
||||||
|
@ -34,14 +34,14 @@ import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
public class TransportClientMoreLikeThisActionTests extends MoreLikeThisActionTests {
|
public class TransportClientMoreLikeThisActionTests extends MoreLikeThisActionTests {
|
||||||
|
|
||||||
@Override protected Client getClient1() {
|
@Override protected Client getClient1() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override protected Client getClient2() {
|
@Override protected Client getClient2() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server2")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server2")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
TransportClient client = new TransportClient(settingsBuilder().put("discovery.enabled", false).build());
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
|
|
|
@ -22,7 +22,7 @@ package org.elasticsearch.test.integration.datanode;
|
||||||
import org.elasticsearch.action.PrimaryNotStartedActionException;
|
import org.elasticsearch.action.PrimaryNotStartedActionException;
|
||||||
import org.elasticsearch.action.index.IndexResponse;
|
import org.elasticsearch.action.index.IndexResponse;
|
||||||
import org.elasticsearch.client.Requests;
|
import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -35,14 +35,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class SimpleDataNodesTests extends AbstractServersTests {
|
public class SimpleDataNodesTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testDataNodes() throws Exception {
|
@Test public void testDataNodes() throws Exception {
|
||||||
startServer("nonData1", settingsBuilder().put("node.data", false).build());
|
startNode("nonData1", settingsBuilder().put("node.data", false).build());
|
||||||
client("nonData1").admin().indices().create(createIndexRequest("test")).actionGet();
|
client("nonData1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
try {
|
try {
|
||||||
client("nonData1").index(Requests.indexRequest("test").type("type1").id("1").source(source("1", "test")).timeout(timeValueSeconds(1))).actionGet();
|
client("nonData1").index(Requests.indexRequest("test").type("type1").id("1").source(source("1", "test")).timeout(timeValueSeconds(1))).actionGet();
|
||||||
|
@ -51,7 +51,7 @@ public class SimpleDataNodesTests extends AbstractServersTests {
|
||||||
// all is well
|
// all is well
|
||||||
}
|
}
|
||||||
|
|
||||||
startServer("nonData2", settingsBuilder().put("node.data", false).build());
|
startNode("nonData2", settingsBuilder().put("node.data", false).build());
|
||||||
Thread.sleep(500);
|
Thread.sleep(500);
|
||||||
|
|
||||||
// still no shard should be allocated
|
// still no shard should be allocated
|
||||||
|
@ -63,7 +63,7 @@ public class SimpleDataNodesTests extends AbstractServersTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
// now, start a node data, and see that it gets with shards
|
// now, start a node data, and see that it gets with shards
|
||||||
startServer("data1", settingsBuilder().put("node.data", true).build());
|
startNode("data1", settingsBuilder().put("node.data", true).build());
|
||||||
Thread.sleep(500);
|
Thread.sleep(500);
|
||||||
|
|
||||||
IndexResponse indexResponse = client("nonData2").index(Requests.indexRequest("test").type("type1").id("1").source(source("1", "test"))).actionGet();
|
IndexResponse indexResponse = client("nonData2").index(Requests.indexRequest("test").type("type1").id("1").source(source("1", "test"))).actionGet();
|
||||||
|
|
|
@ -32,7 +32,7 @@ import org.elasticsearch.action.get.GetResponse;
|
||||||
import org.elasticsearch.action.index.IndexResponse;
|
import org.elasticsearch.action.index.IndexResponse;
|
||||||
import org.elasticsearch.action.support.broadcast.BroadcastOperationThreading;
|
import org.elasticsearch.action.support.broadcast.BroadcastOperationThreading;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.Unicode;
|
import org.elasticsearch.util.Unicode;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
|
@ -48,14 +48,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class DocumentActionsTests extends AbstractServersTests {
|
public class DocumentActionsTests extends AbstractNodesTests {
|
||||||
|
|
||||||
protected Client client1;
|
protected Client client1;
|
||||||
protected Client client2;
|
protected Client client2;
|
||||||
|
|
||||||
@BeforeMethod public void startServers() {
|
@BeforeMethod public void startNodes() {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client1 = getClient1();
|
client1 = getClient1();
|
||||||
client2 = getClient2();
|
client2 = getClient2();
|
||||||
createIndex();
|
createIndex();
|
||||||
|
@ -70,10 +70,10 @@ public class DocumentActionsTests extends AbstractServersTests {
|
||||||
return "test";
|
return "test";
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
client1.close();
|
client1.close();
|
||||||
client2.close();
|
client2.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient1() {
|
protected Client getClient1() {
|
||||||
|
|
|
@ -23,7 +23,7 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -36,14 +36,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class MoreLikeThisActionTests extends AbstractServersTests {
|
public class MoreLikeThisActionTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private Client client1;
|
private Client client1;
|
||||||
private Client client2;
|
private Client client2;
|
||||||
|
|
||||||
@BeforeMethod public void startServers() {
|
@BeforeMethod public void startServers() {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client1 = getClient1();
|
client1 = getClient1();
|
||||||
client2 = getClient2();
|
client2 = getClient2();
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ public class MoreLikeThisActionTests extends AbstractServersTests {
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeServers() {
|
||||||
client1.close();
|
client1.close();
|
||||||
client2.close();
|
client2.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient1() {
|
protected Client getClient1() {
|
||||||
|
|
|
@ -26,8 +26,8 @@ import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
|
||||||
import org.elasticsearch.action.get.GetResponse;
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
import org.elasticsearch.client.Requests;
|
import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.gateway.Gateway;
|
import org.elasticsearch.gateway.Gateway;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -39,23 +39,23 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractSimpleIndexGatewayTests extends AbstractServersTests {
|
public abstract class AbstractSimpleIndexGatewayTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
server("server1").stop();
|
node("server1").stop();
|
||||||
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
||||||
((InternalServer) server("server1")).injector().getInstance(Gateway.class).reset();
|
((InternalNode) node("server1")).injector().getInstance(Gateway.class).reset();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeMethod public void buildServer1() {
|
@BeforeMethod public void buildNode1() {
|
||||||
buildServer("server1");
|
buildNode("server1");
|
||||||
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
||||||
((InternalServer) server("server1")).injector().getInstance(Gateway.class).reset();
|
((InternalNode) node("server1")).injector().getInstance(Gateway.class).reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testSnapshotOperations() throws Exception {
|
@Test public void testSnapshotOperations() throws Exception {
|
||||||
server("server1").start();
|
node("server1").start();
|
||||||
|
|
||||||
// Translog tests
|
// Translog tests
|
||||||
|
|
||||||
|
@ -87,9 +87,9 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractServersTes
|
||||||
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
||||||
|
|
||||||
logger.info("Closing the server");
|
logger.info("Closing the server");
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
logger.info("Starting the server, should recover from the gateway (only translog should be populated)");
|
logger.info("Starting the server, should recover from the gateway (only translog should be populated)");
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
||||||
|
@ -120,9 +120,9 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractServersTes
|
||||||
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
||||||
|
|
||||||
logger.info("Closing the server");
|
logger.info("Closing the server");
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
logger.info("Starting the server, should recover from the gateway (both index and translog)");
|
logger.info("Starting the server, should recover from the gateway (both index and translog)");
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
||||||
|
@ -149,9 +149,9 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractServersTes
|
||||||
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
client("server1").admin().indices().gatewaySnapshot(gatewaySnapshotRequest("test")).actionGet();
|
||||||
|
|
||||||
logger.info("Closing the server");
|
logger.info("Closing the server");
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
logger.info("Starting the server, should recover from the gateway (just from the index, nothing in the translog)");
|
logger.info("Starting the server, should recover from the gateway (just from the index, nothing in the translog)");
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
||||||
|
|
|
@ -21,8 +21,8 @@ package org.elasticsearch.test.integration.gateway.fs;
|
||||||
|
|
||||||
import org.elasticsearch.gateway.Gateway;
|
import org.elasticsearch.gateway.Gateway;
|
||||||
import org.elasticsearch.indices.IndexAlreadyExistsException;
|
import org.elasticsearch.indices.IndexAlreadyExistsException;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -32,31 +32,31 @@ import static org.elasticsearch.client.Requests.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class FsMetaDataGatewayTests extends AbstractServersTests {
|
public class FsMetaDataGatewayTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod void closeServers() {
|
@AfterMethod void closeNodes() {
|
||||||
server("server1").stop();
|
node("server1").stop();
|
||||||
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
||||||
((InternalServer) server("server1")).injector().getInstance(Gateway.class).reset();
|
((InternalNode) node("server1")).injector().getInstance(Gateway.class).reset();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeMethod void buildServer1() {
|
@BeforeMethod void buildNode1() {
|
||||||
buildServer("server1");
|
buildNode("server1");
|
||||||
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
// since we store (by default) the index snapshot under the gateway, resetting it will reset the index data as well
|
||||||
((InternalServer) server("server1")).injector().getInstance(Gateway.class).reset();
|
((InternalNode) node("server1")).injector().getInstance(Gateway.class).reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testIndexActions() throws Exception {
|
@Test public void testIndexActions() throws Exception {
|
||||||
buildServer("server1");
|
buildNode("server1");
|
||||||
((InternalServer) server("server1")).injector().getInstance(Gateway.class).reset();
|
((InternalNode) node("server1")).injector().getInstance(Gateway.class).reset();
|
||||||
server("server1").start();
|
node("server1").start();
|
||||||
|
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
|
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
try {
|
try {
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
assert false : "index should exists";
|
assert false : "index should exists";
|
||||||
|
|
|
@ -26,8 +26,8 @@ import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
|
||||||
import org.elasticsearch.cluster.ClusterService;
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
import org.elasticsearch.cluster.ClusterState;
|
import org.elasticsearch.cluster.ClusterState;
|
||||||
import org.elasticsearch.cluster.routing.RoutingNode;
|
import org.elasticsearch.cluster.routing.RoutingNode;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.logging.Loggers;
|
import org.elasticsearch.util.logging.Loggers;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -44,12 +44,12 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class IndexLifecycleActionTests extends AbstractServersTests {
|
public class IndexLifecycleActionTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private final Logger logger = Loggers.getLogger(IndexLifecycleActionTests.class);
|
private final Logger logger = Loggers.getLogger(IndexLifecycleActionTests.class);
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testIndexLifecycleActionsWith11Shards1Backup() throws Exception {
|
@Test public void testIndexLifecycleActionsWith11Shards1Backup() throws Exception {
|
||||||
|
@ -60,9 +60,9 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
// start one server
|
// start one server
|
||||||
logger.info("Starting sever1");
|
logger.info("Starting sever1");
|
||||||
startServer("server1", settings);
|
startNode("server1", settings);
|
||||||
|
|
||||||
ClusterService clusterService1 = ((InternalServer) server("server1")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService1 = ((InternalNode) node("server1")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Creating index [test]");
|
logger.info("Creating index [test]");
|
||||||
CreateIndexResponse createIndexResponse = client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
CreateIndexResponse createIndexResponse = client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
@ -88,10 +88,10 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
logger.info("Starting server2");
|
logger.info("Starting server2");
|
||||||
// start another server
|
// start another server
|
||||||
startServer("server2", settings);
|
startNode("server2", settings);
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
ClusterService clusterService2 = ((InternalServer) server("server2")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService2 = ((InternalNode) node("server2")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
||||||
|
@ -112,10 +112,10 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
logger.info("Starting server3");
|
logger.info("Starting server3");
|
||||||
// start another server
|
// start another server
|
||||||
startServer("server3", settings);
|
startNode("server3", settings);
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
ClusterService clusterService3 = ((InternalServer) server("server3")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0)).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0)).actionGet();
|
||||||
|
@ -145,7 +145,7 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
logger.info("Closing server1");
|
logger.info("Closing server1");
|
||||||
// kill the first server
|
// kill the first server
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
// wait a bit so it will be discovered as removed
|
// wait a bit so it will be discovered as removed
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
// verify health
|
// verify health
|
||||||
|
@ -195,9 +195,9 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
// start one server
|
// start one server
|
||||||
logger.info("Starting server1");
|
logger.info("Starting server1");
|
||||||
startServer("server1", settings);
|
startNode("server1", settings);
|
||||||
|
|
||||||
ClusterService clusterService1 = ((InternalServer) server("server1")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService1 = ((InternalNode) node("server1")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Creating index [test]");
|
logger.info("Creating index [test]");
|
||||||
CreateIndexResponse createIndexResponse = client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
CreateIndexResponse createIndexResponse = client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
@ -218,7 +218,7 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
// start another server
|
// start another server
|
||||||
logger.info("Starting server2");
|
logger.info("Starting server2");
|
||||||
startServer("server2", settings);
|
startNode("server2", settings);
|
||||||
// wait a bit
|
// wait a bit
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
// sleep till the cluster state gets published, since we check the master
|
// sleep till the cluster state gets published, since we check the master
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
ClusterService clusterService2 = ((InternalServer) server("server2")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService2 = ((InternalNode) node("server2")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
clusterState1 = clusterService1.state();
|
clusterState1 = clusterService1.state();
|
||||||
routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
||||||
|
@ -246,11 +246,11 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
// start another server
|
// start another server
|
||||||
logger.info("Starting server3");
|
logger.info("Starting server3");
|
||||||
startServer("server3");
|
startNode("server3");
|
||||||
// wait a bit so assignment will start
|
// wait a bit so assignment will start
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
ClusterService clusterService3 = ((InternalServer) server("server3")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0)).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0)).actionGet();
|
||||||
|
@ -280,7 +280,7 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
|
|
||||||
logger.info("Closing server1");
|
logger.info("Closing server1");
|
||||||
// kill the first server
|
// kill the first server
|
||||||
closeServer("server1");
|
closeNode("server1");
|
||||||
// wait a bit so it will be discovered as removed
|
// wait a bit so it will be discovered as removed
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ public class IndexLifecycleActionTests extends AbstractServersTests {
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// start one server
|
// start one server
|
||||||
startServer("server1", settings);
|
startNode("server1", settings);
|
||||||
client("server1").admin().indices().create(createIndexRequest("test1")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test1")).actionGet();
|
||||||
client("server1").admin().indices().create(createIndexRequest("test2")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test2")).actionGet();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ package org.elasticsearch.test.integration.nodesinfo;
|
||||||
|
|
||||||
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
|
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
|
||||||
import org.elasticsearch.cluster.ClusterService;
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -33,17 +33,17 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class SimpleNodesInfoTests extends AbstractServersTests {
|
public class SimpleNodesInfoTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testNodesInfos() {
|
@Test public void testNodesInfos() {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
String server1NodeId = ((InternalServer) server("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId();
|
String server1NodeId = ((InternalNode) node("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId();
|
||||||
String server2NodeId = ((InternalServer) server("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId();
|
String server2NodeId = ((InternalNode) node("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId();
|
||||||
|
|
||||||
NodesInfoResponse response = client("server1").admin().cluster().nodesInfo(nodesInfo()).actionGet();
|
NodesInfoResponse response = client("server1").admin().cluster().nodesInfo(nodesInfo()).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(2));
|
assertThat(response.nodes().length, equalTo(2));
|
||||||
|
|
|
@ -22,7 +22,7 @@ package org.elasticsearch.test.integration.ping;
|
||||||
import org.elasticsearch.action.admin.cluster.ping.broadcast.BroadcastPingResponse;
|
import org.elasticsearch.action.admin.cluster.ping.broadcast.BroadcastPingResponse;
|
||||||
import org.elasticsearch.action.admin.cluster.ping.replication.ReplicationPingResponse;
|
import org.elasticsearch.action.admin.cluster.ping.replication.ReplicationPingResponse;
|
||||||
import org.elasticsearch.action.admin.cluster.ping.single.SinglePingResponse;
|
import org.elasticsearch.action.admin.cluster.ping.single.SinglePingResponse;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.logging.Loggers;
|
import org.elasticsearch.util.logging.Loggers;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
|
@ -36,17 +36,17 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class PingActionTests extends AbstractServersTests {
|
public class PingActionTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private final Logger logger = Loggers.getLogger(PingActionTests.class);
|
private final Logger logger = Loggers.getLogger(PingActionTests.class);
|
||||||
|
|
||||||
@BeforeMethod public void startServers() {
|
@BeforeMethod public void startNodes() {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testIndexActions() throws Exception {
|
@Test public void testIndexActions() throws Exception {
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
import org.elasticsearch.action.admin.indices.flush.FlushResponse;
|
import org.elasticsearch.action.admin.indices.flush.FlushResponse;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||||
import org.elasticsearch.action.get.GetResponse;
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
@ -35,14 +35,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class SimpleRecoveryTests extends AbstractServersTests {
|
public class SimpleRecoveryTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testSimpleRecovery() throws Exception {
|
@Test public void testSimpleRecovery() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ public class SimpleRecoveryTests extends AbstractServersTests {
|
||||||
assertThat(refreshResponse.successfulShards(), equalTo(5));
|
assertThat(refreshResponse.successfulShards(), equalTo(5));
|
||||||
assertThat(refreshResponse.failedShards(), equalTo(0));
|
assertThat(refreshResponse.failedShards(), equalTo(0));
|
||||||
|
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
||||||
|
@ -85,7 +85,7 @@ public class SimpleRecoveryTests extends AbstractServersTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
// now start another one so we move some primaries
|
// now start another one so we move some primaries
|
||||||
startServer("server3");
|
startNode("server3");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.test.integration.search;
|
package org.elasticsearch.test.integration.search;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.search.Scroll;
|
import org.elasticsearch.search.Scroll;
|
||||||
import org.elasticsearch.search.SearchContextMissingException;
|
import org.elasticsearch.search.SearchContextMissingException;
|
||||||
import org.elasticsearch.search.SearchService;
|
import org.elasticsearch.search.SearchService;
|
||||||
|
@ -35,8 +36,7 @@ import org.elasticsearch.search.fetch.QueryFetchSearchResult;
|
||||||
import org.elasticsearch.search.internal.InternalSearchRequest;
|
import org.elasticsearch.search.internal.InternalSearchRequest;
|
||||||
import org.elasticsearch.search.query.QuerySearchRequest;
|
import org.elasticsearch.search.query.QuerySearchRequest;
|
||||||
import org.elasticsearch.search.query.QuerySearchResult;
|
import org.elasticsearch.search.query.QuerySearchResult;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
|
||||||
import org.elasticsearch.util.TimeValue;
|
import org.elasticsearch.util.TimeValue;
|
||||||
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
|
@ -55,14 +55,14 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class SingleInstanceEmbeddedSearchTests extends AbstractServersTests {
|
public class SingleInstanceEmbeddedSearchTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private SearchService searchService;
|
private SearchService searchService;
|
||||||
|
|
||||||
private SearchPhaseController searchPhaseController;
|
private SearchPhaseController searchPhaseController;
|
||||||
|
|
||||||
@BeforeClass public void createServerAndInitWithData() throws Exception {
|
@BeforeClass public void createNodeAndInitWithData() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
|
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
index(client("server1"), "1", "test1", 1);
|
index(client("server1"), "1", "test1", 1);
|
||||||
|
@ -72,12 +72,12 @@ public class SingleInstanceEmbeddedSearchTests extends AbstractServersTests {
|
||||||
index(client("server1"), "5", "test5", 2);
|
index(client("server1"), "5", "test5", 2);
|
||||||
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
||||||
|
|
||||||
searchService = ((InternalServer) server("server1")).injector().getInstance(SearchService.class);
|
searchService = ((InternalNode) node("server1")).injector().getInstance(SearchService.class);
|
||||||
searchPhaseController = ((InternalServer) server("server1")).injector().getInstance(SearchPhaseController.class);
|
searchPhaseController = ((InternalNode) node("server1")).injector().getInstance(SearchPhaseController.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass public void closeServer() {
|
@AfterClass public void closeNode() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testDirectDfs() throws Exception {
|
@Test public void testDirectDfs() throws Exception {
|
||||||
|
|
|
@ -27,7 +27,7 @@ import org.elasticsearch.action.search.SearchPhaseExecutionException;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.Requests;
|
import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.Unicode;
|
import org.elasticsearch.util.Unicode;
|
||||||
import org.elasticsearch.util.json.JsonBuilder;
|
import org.elasticsearch.util.json.JsonBuilder;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
|
@ -43,15 +43,15 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class TransportSearchFailuresTests extends AbstractServersTests {
|
public class TransportSearchFailuresTests extends AbstractNodesTests {
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testFailedSearchWithWrongQuery() throws Exception {
|
@Test public void testFailedSearchWithWrongQuery() throws Exception {
|
||||||
logger.info("Start Testing failed search with wrong query");
|
logger.info("Start Testing failed search with wrong query");
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
for (int i = 0; i < 100; i++) {
|
for (int i = 0; i < 100; i++) {
|
||||||
|
@ -74,8 +74,8 @@ public class TransportSearchFailuresTests extends AbstractServersTests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
Thread.sleep(300);
|
Thread.sleep(500);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth("test").waitForYellowStatus().waitForRelocatingShards(0)).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth("test").waitForYellowStatus().waitForRelocatingShards(0)).actionGet();
|
||||||
|
|
|
@ -28,7 +28,7 @@ import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.search.Scroll;
|
import org.elasticsearch.search.Scroll;
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.Unicode;
|
import org.elasticsearch.util.Unicode;
|
||||||
import org.elasticsearch.util.json.JsonBuilder;
|
import org.elasticsearch.util.json.JsonBuilder;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
|
@ -51,13 +51,13 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class TransportTwoServersSearchTests extends AbstractServersTests {
|
public class TransportTwoServersSearchTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
@BeforeClass public void createServers() throws Exception {
|
@BeforeClass public void createNodes() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client = getClient();
|
client = getClient();
|
||||||
|
|
||||||
client.admin().indices().create(createIndexRequest("test")).actionGet();
|
client.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
@ -70,7 +70,7 @@ public class TransportTwoServersSearchTests extends AbstractServersTests {
|
||||||
|
|
||||||
@AfterClass public void closeServers() {
|
@AfterClass public void closeServers() {
|
||||||
client.close();
|
client.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient() {
|
protected Client getClient() {
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.elasticsearch.cluster.ClusterService;
|
||||||
import org.elasticsearch.cluster.routing.ShardRouting;
|
import org.elasticsearch.cluster.routing.ShardRouting;
|
||||||
import org.elasticsearch.cluster.routing.ShardsIterator;
|
import org.elasticsearch.cluster.routing.ShardsIterator;
|
||||||
import org.elasticsearch.indices.IndicesService;
|
import org.elasticsearch.indices.IndicesService;
|
||||||
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.search.*;
|
import org.elasticsearch.search.*;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
import org.elasticsearch.search.controller.SearchPhaseController;
|
import org.elasticsearch.search.controller.SearchPhaseController;
|
||||||
|
@ -42,8 +43,7 @@ import org.elasticsearch.search.internal.InternalSearchResponse;
|
||||||
import org.elasticsearch.search.query.QuerySearchRequest;
|
import org.elasticsearch.search.query.QuerySearchRequest;
|
||||||
import org.elasticsearch.search.query.QuerySearchResult;
|
import org.elasticsearch.search.query.QuerySearchResult;
|
||||||
import org.elasticsearch.search.query.QuerySearchResultProvider;
|
import org.elasticsearch.search.query.QuerySearchResultProvider;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
|
||||||
import org.elasticsearch.util.TimeValue;
|
import org.elasticsearch.util.TimeValue;
|
||||||
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
|
@ -67,7 +67,7 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class TwoInstanceEmbeddedSearchTests extends AbstractServersTests {
|
public class TwoInstanceEmbeddedSearchTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private IndicesService indicesService;
|
private IndicesService indicesService;
|
||||||
|
|
||||||
|
@ -77,12 +77,12 @@ public class TwoInstanceEmbeddedSearchTests extends AbstractServersTests {
|
||||||
|
|
||||||
private SearchPhaseController searchPhaseController;
|
private SearchPhaseController searchPhaseController;
|
||||||
|
|
||||||
@BeforeClass public void createServerAndInitWithData() throws Exception {
|
@BeforeClass public void createNodeAndInitWithData() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
|
|
||||||
clusterService = ((InternalServer) server("server1")).injector().getInstance(ClusterService.class);
|
clusterService = ((InternalNode) node("server1")).injector().getInstance(ClusterService.class);
|
||||||
indicesService = ((InternalServer) server("server1")).injector().getInstance(IndicesService.class);
|
indicesService = ((InternalNode) node("server1")).injector().getInstance(IndicesService.class);
|
||||||
client("server1").admin().indices().create(Requests.createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(Requests.createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
for (int i = 0; i < 100; i++) {
|
for (int i = 0; i < 100; i++) {
|
||||||
|
@ -90,19 +90,19 @@ public class TwoInstanceEmbeddedSearchTests extends AbstractServersTests {
|
||||||
}
|
}
|
||||||
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
||||||
|
|
||||||
SearchService searchService1 = ((InternalServer) server("server1")).injector().getInstance(SearchService.class);
|
SearchService searchService1 = ((InternalNode) node("server1")).injector().getInstance(SearchService.class);
|
||||||
SearchService searchService2 = ((InternalServer) server("server2")).injector().getInstance(SearchService.class);
|
SearchService searchService2 = ((InternalNode) node("server2")).injector().getInstance(SearchService.class);
|
||||||
|
|
||||||
nodeToSearchService = ImmutableMap.<String, SearchService>builder()
|
nodeToSearchService = ImmutableMap.<String, SearchService>builder()
|
||||||
.put(((InternalServer) server("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService1)
|
.put(((InternalNode) node("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService1)
|
||||||
.put(((InternalServer) server("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService2)
|
.put(((InternalNode) node("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService2)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
searchPhaseController = ((InternalServer) server("server1")).injector().getInstance(SearchPhaseController.class);
|
searchPhaseController = ((InternalNode) node("server1")).injector().getInstance(SearchPhaseController.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass public void closeServers() {
|
@AfterClass public void closeServers() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testDfsQueryThenFetch() throws Exception {
|
@Test public void testDfsQueryThenFetch() throws Exception {
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.elasticsearch.index.routing.OperationRouting;
|
||||||
import org.elasticsearch.index.routing.plain.PlainOperationRouting;
|
import org.elasticsearch.index.routing.plain.PlainOperationRouting;
|
||||||
import org.elasticsearch.index.settings.IndexSettings;
|
import org.elasticsearch.index.settings.IndexSettings;
|
||||||
import org.elasticsearch.indices.IndicesService;
|
import org.elasticsearch.indices.IndicesService;
|
||||||
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.search.*;
|
import org.elasticsearch.search.*;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
import org.elasticsearch.search.controller.SearchPhaseController;
|
import org.elasticsearch.search.controller.SearchPhaseController;
|
||||||
|
@ -47,8 +48,7 @@ import org.elasticsearch.search.internal.InternalSearchResponse;
|
||||||
import org.elasticsearch.search.query.QuerySearchRequest;
|
import org.elasticsearch.search.query.QuerySearchRequest;
|
||||||
import org.elasticsearch.search.query.QuerySearchResult;
|
import org.elasticsearch.search.query.QuerySearchResult;
|
||||||
import org.elasticsearch.search.query.QuerySearchResultProvider;
|
import org.elasticsearch.search.query.QuerySearchResultProvider;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
|
||||||
import org.elasticsearch.util.TimeValue;
|
import org.elasticsearch.util.TimeValue;
|
||||||
import org.elasticsearch.util.settings.Settings;
|
import org.elasticsearch.util.settings.Settings;
|
||||||
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
import org.elasticsearch.util.trove.ExtTIntArrayList;
|
||||||
|
@ -72,7 +72,7 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (Shay Banon)
|
||||||
*/
|
*/
|
||||||
public class TwoInstanceUnbalancedShardsEmbeddedSearchTests extends AbstractServersTests {
|
public class TwoInstanceUnbalancedShardsEmbeddedSearchTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private IndicesService indicesService;
|
private IndicesService indicesService;
|
||||||
|
|
||||||
|
@ -82,12 +82,12 @@ public class TwoInstanceUnbalancedShardsEmbeddedSearchTests extends AbstractServ
|
||||||
|
|
||||||
private SearchPhaseController searchPhaseController;
|
private SearchPhaseController searchPhaseController;
|
||||||
|
|
||||||
@BeforeClass public void createServerAndInitWithData() throws Exception {
|
@BeforeClass public void createNodeAndInitWithData() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
|
|
||||||
clusterService = ((InternalServer) server("server1")).injector().getInstance(ClusterService.class);
|
clusterService = ((InternalNode) node("server1")).injector().getInstance(ClusterService.class);
|
||||||
indicesService = ((InternalServer) server("server1")).injector().getInstance(IndicesService.class);
|
indicesService = ((InternalNode) node("server1")).injector().getInstance(IndicesService.class);
|
||||||
|
|
||||||
client("server1").admin().indices().create(Requests.createIndexRequest("test")).actionGet();
|
client("server1").admin().indices().create(Requests.createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
|
@ -96,19 +96,19 @@ public class TwoInstanceUnbalancedShardsEmbeddedSearchTests extends AbstractServ
|
||||||
}
|
}
|
||||||
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
client("server1").admin().indices().refresh(refreshRequest("test")).actionGet();
|
||||||
|
|
||||||
SearchService searchService1 = ((InternalServer) server("server1")).injector().getInstance(SearchService.class);
|
SearchService searchService1 = ((InternalNode) node("server1")).injector().getInstance(SearchService.class);
|
||||||
SearchService searchService2 = ((InternalServer) server("server2")).injector().getInstance(SearchService.class);
|
SearchService searchService2 = ((InternalNode) node("server2")).injector().getInstance(SearchService.class);
|
||||||
|
|
||||||
nodeToSearchService = ImmutableMap.<String, SearchService>builder()
|
nodeToSearchService = ImmutableMap.<String, SearchService>builder()
|
||||||
.put(((InternalServer) server("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService1)
|
.put(((InternalNode) node("server1")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService1)
|
||||||
.put(((InternalServer) server("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService2)
|
.put(((InternalNode) node("server2")).injector().getInstance(ClusterService.class).state().nodes().localNodeId(), searchService2)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
searchPhaseController = ((InternalServer) server("server1")).injector().getInstance(SearchPhaseController.class);
|
searchPhaseController = ((InternalNode) node("server1")).injector().getInstance(SearchPhaseController.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass public void closeServers() {
|
@AfterClass public void closeNodes() {
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testDfsQueryFetch() throws Exception {
|
@Test public void testDfsQueryFetch() throws Exception {
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.Requests;
|
import org.elasticsearch.client.Requests;
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.util.json.JsonBuilder;
|
import org.elasticsearch.util.json.JsonBuilder;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
import org.testng.annotations.BeforeClass;
|
import org.testng.annotations.BeforeClass;
|
||||||
|
@ -45,13 +45,13 @@ import static org.hamcrest.Matchers.*;
|
||||||
/**
|
/**
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
public class HighlightSearchTests extends AbstractServersTests {
|
public class HighlightSearchTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
@BeforeClass public void createServers() throws Exception {
|
@BeforeClass public void createNodes() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client = getClient();
|
client = getClient();
|
||||||
|
|
||||||
client.admin().indices().create(createIndexRequest("test")).actionGet();
|
client.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
@ -65,9 +65,9 @@ public class HighlightSearchTests extends AbstractServersTests {
|
||||||
client.admin().indices().refresh(refreshRequest("test")).actionGet();
|
client.admin().indices().refresh(refreshRequest("test")).actionGet();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass public void closeServers() {
|
@AfterClass public void closeNodes() {
|
||||||
client.close();
|
client.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient() {
|
protected Client getClient() {
|
||||||
|
|
|
@ -21,19 +21,19 @@ package org.elasticsearch.test.integration.terms;
|
||||||
|
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.server.internal.InternalServer;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
import org.elasticsearch.util.transport.TransportAddress;
|
import org.elasticsearch.util.transport.TransportAddress;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kimchy (Shay Banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public class ClientTransportTermsActionTests extends TermsActionTests {
|
public class ClientTransportTermsActionTests extends TermsActionTests {
|
||||||
|
|
||||||
@Override protected Client getClient() {
|
@Override protected Client getClient() {
|
||||||
TransportAddress server1Address = ((InternalServer) server("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
TransportAddress server1Address = ((InternalNode) node("server1")).injector().getInstance(TransportService.class).boundAddress().publishAddress();
|
||||||
TransportClient client = new TransportClient();
|
TransportClient client = new TransportClient();
|
||||||
client.addTransportAddress(server1Address);
|
client.addTransportAddress(server1Address);
|
||||||
return client;
|
return client;
|
||||||
|
|
|
@ -26,7 +26,7 @@ import org.elasticsearch.action.admin.indices.status.IndexStatus;
|
||||||
import org.elasticsearch.action.terms.TermsRequest;
|
import org.elasticsearch.action.terms.TermsRequest;
|
||||||
import org.elasticsearch.action.terms.TermsResponse;
|
import org.elasticsearch.action.terms.TermsResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -42,13 +42,13 @@ import static org.hamcrest.Matchers.*;
|
||||||
* @author kimchy (shay.banon)
|
* @author kimchy (shay.banon)
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public class TermsActionTests extends AbstractServersTests {
|
public class TermsActionTests extends AbstractNodesTests {
|
||||||
|
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
@BeforeMethod public void createServersAndClient() throws Exception {
|
@BeforeMethod public void createNodesAndClient() throws Exception {
|
||||||
startServer("server1");
|
startNode("server1");
|
||||||
startServer("server2");
|
startNode("server2");
|
||||||
client = getClient();
|
client = getClient();
|
||||||
|
|
||||||
logger.info("Creating index test");
|
logger.info("Creating index test");
|
||||||
|
@ -60,9 +60,9 @@ public class TermsActionTests extends AbstractServersTests {
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterMethod public void closeServers() {
|
@AfterMethod public void closeNodes() {
|
||||||
client.close();
|
client.close();
|
||||||
closeAllServers();
|
closeAllNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Client getClient() {
|
protected Client getClient() {
|
||||||
|
|
|
@ -22,14 +22,14 @@ package org.elasticsearch.plugin.attachments.test;
|
||||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
import org.elasticsearch.action.count.CountResponse;
|
import org.elasticsearch.action.count.CountResponse;
|
||||||
import org.elasticsearch.server.Server;
|
import org.elasticsearch.node.Node;
|
||||||
import org.elasticsearch.util.logging.Loggers;
|
import org.elasticsearch.util.logging.Loggers;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.testng.annotations.*;
|
import org.testng.annotations.*;
|
||||||
|
|
||||||
import static org.elasticsearch.client.Requests.*;
|
import static org.elasticsearch.client.Requests.*;
|
||||||
import static org.elasticsearch.index.query.json.JsonQueryBuilders.*;
|
import static org.elasticsearch.index.query.json.JsonQueryBuilders.*;
|
||||||
import static org.elasticsearch.server.ServerBuilder.*;
|
import static org.elasticsearch.node.NodeBuilder.*;
|
||||||
import static org.elasticsearch.util.io.Streams.*;
|
import static org.elasticsearch.util.io.Streams.*;
|
||||||
import static org.elasticsearch.util.json.JsonBuilder.*;
|
import static org.elasticsearch.util.json.JsonBuilder.*;
|
||||||
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
import static org.elasticsearch.util.settings.ImmutableSettings.*;
|
||||||
|
@ -44,21 +44,21 @@ public class SimpleAttachmentIntegrationTests {
|
||||||
|
|
||||||
private final Logger logger = Loggers.getLogger(getClass());
|
private final Logger logger = Loggers.getLogger(getClass());
|
||||||
|
|
||||||
private Server server;
|
private Node node;
|
||||||
|
|
||||||
@BeforeClass public void setupServer() {
|
@BeforeClass public void setupServer() {
|
||||||
server = serverBuilder().settings(settingsBuilder().put("node.local", true)).server();
|
node = nodeBuilder().settings(settingsBuilder().put("node.local", true)).node();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass public void closeServer() {
|
@AfterClass public void closeServer() {
|
||||||
server.close();
|
node.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeMethod public void createIndex() {
|
@BeforeMethod public void createIndex() {
|
||||||
logger.info("creating index [test]");
|
logger.info("creating index [test]");
|
||||||
server.client().admin().indices().create(createIndexRequest("test").settings(settingsBuilder().put("index.numberOfReplicas", 0))).actionGet();
|
node.client().admin().indices().create(createIndexRequest("test").settings(settingsBuilder().put("index.numberOfReplicas", 0))).actionGet();
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = server.client().admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -66,22 +66,22 @@ public class SimpleAttachmentIntegrationTests {
|
||||||
|
|
||||||
@AfterMethod public void deleteIndex() {
|
@AfterMethod public void deleteIndex() {
|
||||||
logger.info("deleting index [test]");
|
logger.info("deleting index [test]");
|
||||||
server.client().admin().indices().delete(deleteIndexRequest("test")).actionGet();
|
node.client().admin().indices().delete(deleteIndexRequest("test")).actionGet();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testSimpleAttachment() throws Exception {
|
@Test public void testSimpleAttachment() throws Exception {
|
||||||
String mapping = copyToStringFromClasspath("/org/elasticsearch/plugin/attachments/index/mapper/test-mapping.json");
|
String mapping = copyToStringFromClasspath("/org/elasticsearch/plugin/attachments/index/mapper/test-mapping.json");
|
||||||
|
|
||||||
server.client().admin().indices().putMapping(putMappingRequest("test").mappingSource(mapping)).actionGet();
|
node.client().admin().indices().putMapping(putMappingRequest("test").mappingSource(mapping)).actionGet();
|
||||||
|
|
||||||
server.client().index(indexRequest("test").type("person")
|
node.client().index(indexRequest("test").type("person")
|
||||||
.source(jsonBuilder().startObject().field("file", copyToBytesFromClasspath("/org/elasticsearch/plugin/attachments/index/mapper/testXHTML.html")).endObject())).actionGet();
|
.source(jsonBuilder().startObject().field("file", copyToBytesFromClasspath("/org/elasticsearch/plugin/attachments/index/mapper/testXHTML.html")).endObject())).actionGet();
|
||||||
server.client().admin().indices().refresh(refreshRequest()).actionGet();
|
node.client().admin().indices().refresh(refreshRequest()).actionGet();
|
||||||
|
|
||||||
CountResponse countResponse = server.client().count(countRequest("test").querySource(fieldQuery("file.title", "test document"))).actionGet();
|
CountResponse countResponse = node.client().count(countRequest("test").querySource(fieldQuery("file.title", "test document"))).actionGet();
|
||||||
assertThat(countResponse.count(), equalTo(1l));
|
assertThat(countResponse.count(), equalTo(1l));
|
||||||
|
|
||||||
countResponse = server.client().count(countRequest("test").querySource(fieldQuery("file", "tests the ability"))).actionGet();
|
countResponse = node.client().count(countRequest("test").querySource(fieldQuery("file", "tests the ability"))).actionGet();
|
||||||
assertThat(countResponse.count(), equalTo(1l));
|
assertThat(countResponse.count(), equalTo(1l));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue