Convert `client.type` to new settings infra
This commit is contained in:
parent
bbba1e5d7f
commit
d296d26ce2
|
@ -50,7 +50,7 @@ public final class ThreadedActionListener<Response> implements ActionListener<Re
|
||||||
this.threadPool = threadPool;
|
this.threadPool = threadPool;
|
||||||
// Should the action listener be threaded or not by default. Action listeners are automatically threaded for client
|
// Should the action listener be threaded or not by default. Action listeners are automatically threaded for client
|
||||||
// nodes and transport client in order to make sure client side code is not executed on IO threads.
|
// nodes and transport client in order to make sure client side code is not executed on IO threads.
|
||||||
this.threadedListener = DiscoveryNode.clientNode(settings) || TransportClient.CLIENT_TYPE.equals(settings.get(Client.CLIENT_TYPE_SETTING));
|
this.threadedListener = DiscoveryNode.clientNode(settings) || TransportClient.CLIENT_TYPE.equals(Client.CLIENT_TYPE_SETTING_S.get(settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
public <Response> ActionListener<Response> wrap(ActionListener<Response> listener) {
|
public <Response> ActionListener<Response> wrap(ActionListener<Response> listener) {
|
||||||
|
|
|
@ -83,8 +83,11 @@ import org.elasticsearch.action.update.UpdateResponse;
|
||||||
import org.elasticsearch.client.support.Headers;
|
import org.elasticsearch.client.support.Headers;
|
||||||
import org.elasticsearch.common.Nullable;
|
import org.elasticsearch.common.Nullable;
|
||||||
import org.elasticsearch.common.lease.Releasable;
|
import org.elasticsearch.common.lease.Releasable;
|
||||||
|
import org.elasticsearch.common.settings.Setting;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A client provides a one stop interface for performing actions/operations against the cluster.
|
* A client provides a one stop interface for performing actions/operations against the cluster.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -100,7 +103,15 @@ import org.elasticsearch.common.settings.Settings;
|
||||||
*/
|
*/
|
||||||
public interface Client extends ElasticsearchClient, Releasable {
|
public interface Client extends ElasticsearchClient, Releasable {
|
||||||
|
|
||||||
String CLIENT_TYPE_SETTING = "client.type";
|
Setting<String> CLIENT_TYPE_SETTING_S = new Setting<>("client.type", "node", (s) -> {
|
||||||
|
switch (s) {
|
||||||
|
case "node":
|
||||||
|
case "transport":
|
||||||
|
return s;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Can't parse [client.type] must be one of [node, transport]");
|
||||||
|
}
|
||||||
|
}, false, Setting.Scope.CLUSTER);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The admin client that can be used to perform administrative operations.
|
* The admin client that can be used to perform administrative operations.
|
||||||
|
|
|
@ -115,7 +115,7 @@ public class TransportClient extends AbstractClient {
|
||||||
.put( InternalSettingsPreparer.prepareSettings(settings))
|
.put( InternalSettingsPreparer.prepareSettings(settings))
|
||||||
.put("network.server", false)
|
.put("network.server", false)
|
||||||
.put(Node.NODE_CLIENT_SETTING.getKey(), true)
|
.put(Node.NODE_CLIENT_SETTING.getKey(), true)
|
||||||
.put(CLIENT_TYPE_SETTING, CLIENT_TYPE);
|
.put(CLIENT_TYPE_SETTING_S.getKey(), CLIENT_TYPE);
|
||||||
return new PluginsService(settingsBuilder.build(), null, null, pluginClasses);
|
return new PluginsService(settingsBuilder.build(), null, null, pluginClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.elasticsearch.action.admin.indices.close.TransportCloseIndexAction;
|
||||||
import org.elasticsearch.action.support.AutoCreateIndex;
|
import org.elasticsearch.action.support.AutoCreateIndex;
|
||||||
import org.elasticsearch.action.support.DestructiveOperations;
|
import org.elasticsearch.action.support.DestructiveOperations;
|
||||||
import org.elasticsearch.action.support.master.TransportMasterNodeReadAction;
|
import org.elasticsearch.action.support.master.TransportMasterNodeReadAction;
|
||||||
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.client.transport.TransportClientNodesService;
|
import org.elasticsearch.client.transport.TransportClientNodesService;
|
||||||
import org.elasticsearch.cluster.ClusterModule;
|
import org.elasticsearch.cluster.ClusterModule;
|
||||||
import org.elasticsearch.cluster.ClusterName;
|
import org.elasticsearch.cluster.ClusterName;
|
||||||
|
@ -270,6 +271,7 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
||||||
AutoCreateIndex.AUTO_CREATE_INDEX_SETTING,
|
AutoCreateIndex.AUTO_CREATE_INDEX_SETTING,
|
||||||
BaseRestHandler.MULTI_ALLOW_EXPLICIT_INDEX,
|
BaseRestHandler.MULTI_ALLOW_EXPLICIT_INDEX,
|
||||||
ClusterName.CLUSTER_NAME_SETTING,
|
ClusterName.CLUSTER_NAME_SETTING,
|
||||||
|
Client.CLIENT_TYPE_SETTING_S,
|
||||||
InternalSettingsPreparer.IGNORE_SYSTEM_PROPERTIES_SETTING,
|
InternalSettingsPreparer.IGNORE_SYSTEM_PROPERTIES_SETTING,
|
||||||
ClusterModule.SHARDS_ALLOCATOR_TYPE_SETTING,
|
ClusterModule.SHARDS_ALLOCATOR_TYPE_SETTING,
|
||||||
EsExecutors.PROCESSORS_SETTING)));
|
EsExecutors.PROCESSORS_SETTING)));
|
||||||
|
|
|
@ -149,7 +149,7 @@ public class Node implements Releasable {
|
||||||
|
|
||||||
protected Node(Environment tmpEnv, Version version, Collection<Class<? extends Plugin>> classpathPlugins) {
|
protected Node(Environment tmpEnv, Version version, Collection<Class<? extends Plugin>> classpathPlugins) {
|
||||||
Settings tmpSettings = settingsBuilder().put(tmpEnv.settings())
|
Settings tmpSettings = settingsBuilder().put(tmpEnv.settings())
|
||||||
.put(Client.CLIENT_TYPE_SETTING, CLIENT_TYPE).build();
|
.put(Client.CLIENT_TYPE_SETTING_S.getKey(), CLIENT_TYPE).build();
|
||||||
tmpSettings = TribeService.processSettings(tmpSettings);
|
tmpSettings = TribeService.processSettings(tmpSettings);
|
||||||
|
|
||||||
ESLogger logger = Loggers.getLogger(Node.class, tmpSettings.get("name"));
|
ESLogger logger = Loggers.getLogger(Node.class, tmpSettings.get("name"));
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class ListenerActionIT extends ESIntegTestCase {
|
||||||
|
|
||||||
latch.await();
|
latch.await();
|
||||||
|
|
||||||
boolean shouldBeThreaded = DiscoveryNode.clientNode(client.settings()) || TransportClient.CLIENT_TYPE.equals(client.settings().get(Client.CLIENT_TYPE_SETTING));
|
boolean shouldBeThreaded = DiscoveryNode.clientNode(client.settings()) || TransportClient.CLIENT_TYPE.equals(Client.CLIENT_TYPE_SETTING_S.get(client.settings()));
|
||||||
if (shouldBeThreaded) {
|
if (shouldBeThreaded) {
|
||||||
assertTrue(threadName.get().contains("listener"));
|
assertTrue(threadName.get().contains("listener"));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -34,12 +34,12 @@ import static org.hamcrest.Matchers.is;
|
||||||
public class NodeClientIT extends ESIntegTestCase {
|
public class NodeClientIT extends ESIntegTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected Settings nodeSettings(int nodeOrdinal) {
|
protected Settings nodeSettings(int nodeOrdinal) {
|
||||||
return settingsBuilder().put(super.nodeSettings(nodeOrdinal)).put(Client.CLIENT_TYPE_SETTING, "anything").build();
|
return settingsBuilder().put(super.nodeSettings(nodeOrdinal)).put(Client.CLIENT_TYPE_SETTING_S.getKey(), "anything").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testThatClientTypeSettingCannotBeChanged() {
|
public void testThatClientTypeSettingCannotBeChanged() {
|
||||||
for (Settings settings : internalCluster().getInstances(Settings.class)) {
|
for (Settings settings : internalCluster().getInstances(Settings.class)) {
|
||||||
assertThat(settings.get(Client.CLIENT_TYPE_SETTING), is("node"));
|
assertThat(Client.CLIENT_TYPE_SETTING_S.get(settings), is("node"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,17 +86,16 @@ public class TransportClientIT extends ESIntegTestCase {
|
||||||
public void testThatTransportClientSettingIsSet() {
|
public void testThatTransportClientSettingIsSet() {
|
||||||
TransportClient client = (TransportClient) internalCluster().client();
|
TransportClient client = (TransportClient) internalCluster().client();
|
||||||
Settings settings = client.injector.getInstance(Settings.class);
|
Settings settings = client.injector.getInstance(Settings.class);
|
||||||
assertThat(settings.get(Client.CLIENT_TYPE_SETTING), is("transport"));
|
assertThat(Client.CLIENT_TYPE_SETTING_S.get(settings), is("transport"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testThatTransportClientSettingCannotBeChanged() {
|
public void testThatTransportClientSettingCannotBeChanged() {
|
||||||
Settings baseSettings = settingsBuilder()
|
Settings baseSettings = settingsBuilder()
|
||||||
.put(Client.CLIENT_TYPE_SETTING, "anything")
|
|
||||||
.put(Environment.PATH_HOME_SETTING.getKey(), createTempDir())
|
.put(Environment.PATH_HOME_SETTING.getKey(), createTempDir())
|
||||||
.build();
|
.build();
|
||||||
try (TransportClient client = TransportClient.builder().settings(baseSettings).build()) {
|
try (TransportClient client = TransportClient.builder().settings(baseSettings).build()) {
|
||||||
Settings settings = client.injector.getInstance(Settings.class);
|
Settings settings = client.injector.getInstance(Settings.class);
|
||||||
assertThat(settings.get(Client.CLIENT_TYPE_SETTING), is("transport"));
|
assertThat(Client.CLIENT_TYPE_SETTING_S.get(settings), is("transport"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue