diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/health/ClusterHealthAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/health/ClusterHealthAction.java index 50c73be856e..b8ec1c70d07 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/health/ClusterHealthAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/health/ClusterHealthAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterHealthAction extends ClusterAction { public static final ClusterHealthAction INSTANCE = new ClusterHealthAction(); - public static final String NAME = "cluster/health"; + public static final String NAME = "cluster:monitor/health"; private ClusterHealthAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/hotthreads/NodesHotThreadsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/hotthreads/NodesHotThreadsAction.java index 6c496f761b1..64b3c3cfcd8 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/hotthreads/NodesHotThreadsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/hotthreads/NodesHotThreadsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class NodesHotThreadsAction extends ClusterAction { public static final NodesHotThreadsAction INSTANCE = new NodesHotThreadsAction(); - public static final String NAME = "cluster/nodes/hot_threads"; + public static final String NAME = "cluster:monitor/nodes/hot_threads"; private NodesHotThreadsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodesInfoAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodesInfoAction.java index 8c187fe5eac..47d6fae7616 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodesInfoAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodesInfoAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class NodesInfoAction extends ClusterAction { public static final NodesInfoAction INSTANCE = new NodesInfoAction(); - public static final String NAME = "cluster/nodes/info"; + public static final String NAME = "cluster:monitor/nodes/info"; private NodesInfoAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/restart/NodesRestartAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/restart/NodesRestartAction.java index 9846fcb2968..51d4cfa372f 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/restart/NodesRestartAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/restart/NodesRestartAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class NodesRestartAction extends ClusterAction { public static final NodesRestartAction INSTANCE = new NodesRestartAction(); - public static final String NAME = "cluster/nodes/restart"; + public static final String NAME = "cluster:admin/nodes/restart"; private NodesRestartAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/NodesShutdownAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/NodesShutdownAction.java index 89bce5efe16..8906d658c47 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/NodesShutdownAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/NodesShutdownAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class NodesShutdownAction extends ClusterAction { public static final NodesShutdownAction INSTANCE = new NodesShutdownAction(); - public static final String NAME = "cluster/nodes/shutdown"; + public static final String NAME = "cluster:admin/nodes/shutdown"; private NodesShutdownAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/TransportNodesShutdownAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/TransportNodesShutdownAction.java index 311d3db3042..528d20c8d3e 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/TransportNodesShutdownAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/shutdown/TransportNodesShutdownAction.java @@ -47,6 +47,8 @@ import java.util.concurrent.CountDownLatch; */ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAction { + public static final String SHUTDOWN_NODE_ACTION_NAME = NodesShutdownAction.NAME + "[n]"; + private final Node node; private final ClusterName clusterName; private final boolean disabled; @@ -61,7 +63,7 @@ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAc this.disabled = settings.getAsBoolean("action.disable_shutdown", componentSettings.getAsBoolean("disabled", false)); this.delay = componentSettings.getAsTime("delay", TimeValue.timeValueMillis(200)); - this.transportService.registerHandler(NodeShutdownRequestHandler.ACTION, new NodeShutdownRequestHandler()); + this.transportService.registerHandler(SHUTDOWN_NODE_ACTION_NAME, new NodeShutdownRequestHandler()); } @Override @@ -122,7 +124,7 @@ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAc latch.countDown(); } else { logger.trace("[cluster_shutdown]: sending shutdown request to [{}]", node); - transportService.sendRequest(node, NodeShutdownRequestHandler.ACTION, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(node, SHUTDOWN_NODE_ACTION_NAME, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleResponse(TransportResponse.Empty response) { logger.trace("[cluster_shutdown]: received shutdown response from [{}]", node); @@ -146,7 +148,7 @@ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAc // now, kill the master logger.trace("[cluster_shutdown]: shutting down the master [{}]", state.nodes().masterNode()); - transportService.sendRequest(state.nodes().masterNode(), NodeShutdownRequestHandler.ACTION, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(state.nodes().masterNode(), SHUTDOWN_NODE_ACTION_NAME, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleResponse(TransportResponse.Empty response) { logger.trace("[cluster_shutdown]: received shutdown response from master"); @@ -190,7 +192,7 @@ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAc } logger.trace("[partial_cluster_shutdown]: sending shutdown request to [{}]", node); - transportService.sendRequest(node, NodeShutdownRequestHandler.ACTION, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(node, SHUTDOWN_NODE_ACTION_NAME, new NodeShutdownRequest(request), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleResponse(TransportResponse.Empty response) { logger.trace("[partial_cluster_shutdown]: received shutdown response from [{}]", node); @@ -221,8 +223,6 @@ public class TransportNodesShutdownAction extends TransportMasterNodeOperationAc private class NodeShutdownRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "/cluster/nodes/shutdown/node"; - @Override public NodeShutdownRequest newInstance() { return new NodeShutdownRequest(); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/node/stats/NodesStatsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/node/stats/NodesStatsAction.java index 6d2910a8946..252eb1cc1db 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/node/stats/NodesStatsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/node/stats/NodesStatsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class NodesStatsAction extends ClusterAction { public static final NodesStatsAction INSTANCE = new NodesStatsAction(); - public static final String NAME = "cluster/nodes/stats"; + public static final String NAME = "cluster:monitor/nodes/stats"; private NodesStatsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryAction.java index e4f5b99026c..2a9be85e37e 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class DeleteRepositoryAction extends ClusterAction { public static final DeleteRepositoryAction INSTANCE = new DeleteRepositoryAction(); - public static final String NAME = "cluster/repository/delete"; + public static final String NAME = "cluster:admin/repository/delete"; private DeleteRepositoryAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/get/GetRepositoriesAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/get/GetRepositoriesAction.java index 240ea4db42e..befe51fdeb5 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/get/GetRepositoriesAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/get/GetRepositoriesAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class GetRepositoriesAction extends ClusterAction { public static final GetRepositoriesAction INSTANCE = new GetRepositoriesAction(); - public static final String NAME = "cluster/repository/get"; + public static final String NAME = "cluster:admin/repository/get"; private GetRepositoriesAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryAction.java index ab782fbe445..30e9733663c 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class PutRepositoryAction extends ClusterAction { public static final PutRepositoryAction INSTANCE = new PutRepositoryAction(); - public static final String NAME = "cluster/repository/put"; + public static final String NAME = "cluster:admin/repository/put"; private PutRepositoryAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteAction.java index 286146ad3df..d2fc5a313ec 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterRerouteAction extends ClusterAction { public static final ClusterRerouteAction INSTANCE = new ClusterRerouteAction(); - public static final String NAME = "cluster/reroute"; + public static final String NAME = "cluster:admin/reroute"; private ClusterRerouteAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/settings/ClusterUpdateSettingsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/settings/ClusterUpdateSettingsAction.java index 69bc9e59ea2..8e8a6bdb365 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/settings/ClusterUpdateSettingsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/settings/ClusterUpdateSettingsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterUpdateSettingsAction extends ClusterAction { public static final ClusterUpdateSettingsAction INSTANCE = new ClusterUpdateSettingsAction(); - public static final String NAME = "cluster/settings/update"; + public static final String NAME = "cluster:admin/settings/update"; private ClusterUpdateSettingsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsAction.java index 3d935e95b2f..15a218fc1f1 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterSearchShardsAction extends ClusterAction { public static final ClusterSearchShardsAction INSTANCE = new ClusterSearchShardsAction(); - public static final String NAME = "cluster/shards/search_shards"; + public static final String NAME = "indices:admin/shards/search_shards"; private ClusterSearchShardsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/create/CreateSnapshotAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/create/CreateSnapshotAction.java index 761c89186fc..0bbeb2d5279 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/create/CreateSnapshotAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/create/CreateSnapshotAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class CreateSnapshotAction extends ClusterAction { public static final CreateSnapshotAction INSTANCE = new CreateSnapshotAction(); - public static final String NAME = "cluster/snapshot/create"; + public static final String NAME = "cluster:admin/snapshot/create"; private CreateSnapshotAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/delete/DeleteSnapshotAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/delete/DeleteSnapshotAction.java index 2589deece44..3abf3937627 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/delete/DeleteSnapshotAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/delete/DeleteSnapshotAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class DeleteSnapshotAction extends ClusterAction { public static final DeleteSnapshotAction INSTANCE = new DeleteSnapshotAction(); - public static final String NAME = "cluster/snapshot/delete"; + public static final String NAME = "cluster:admin/snapshot/delete"; private DeleteSnapshotAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/get/GetSnapshotsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/get/GetSnapshotsAction.java index 6b5fb7e8046..0613b3776c8 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/get/GetSnapshotsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/get/GetSnapshotsAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class GetSnapshotsAction extends ClusterAction { public static final GetSnapshotsAction INSTANCE = new GetSnapshotsAction(); - public static final String NAME = "cluster/snapshot/get"; + public static final String NAME = "cluster:admin/snapshot/get"; private GetSnapshotsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/restore/RestoreSnapshotAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/restore/RestoreSnapshotAction.java index 859a22c3794..3e7cbb5e602 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/restore/RestoreSnapshotAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/restore/RestoreSnapshotAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class RestoreSnapshotAction extends ClusterAction { public static final RestoreSnapshotAction INSTANCE = new RestoreSnapshotAction(); - public static final String NAME = "cluster/snapshot/restore"; + public static final String NAME = "cluster:admin/snapshot/restore"; private RestoreSnapshotAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotsStatusAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotsStatusAction.java index 0e4ba489020..adfea744547 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotsStatusAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotsStatusAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class SnapshotsStatusAction extends ClusterAction { public static final SnapshotsStatusAction INSTANCE = new SnapshotsStatusAction(); - public static final String NAME = "cluster/snapshot/status"; + public static final String NAME = "cluster:admin/snapshot/status"; private SnapshotsStatusAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/TransportNodesSnapshotsStatus.java b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/TransportNodesSnapshotsStatus.java index 1eccd01ed38..da93831c7a8 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/TransportNodesSnapshotsStatus.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/status/TransportNodesSnapshotsStatus.java @@ -51,7 +51,7 @@ import java.util.concurrent.atomic.AtomicReferenceArray; */ public class TransportNodesSnapshotsStatus extends TransportNodesOperationAction { - private static final String ACTION_NAME = "cluster/snapshot/status/nodes"; + public static final String ACTION_NAME = SnapshotsStatusAction.NAME + "[nodes]"; private final SnapshotsService snapshotsService; diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/state/ClusterStateAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/state/ClusterStateAction.java index d55647ba4cb..a339129ec09 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/state/ClusterStateAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/state/ClusterStateAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterStateAction extends ClusterAction { public static final ClusterStateAction INSTANCE = new ClusterStateAction(); - public static final String NAME = "cluster/state"; + public static final String NAME = "cluster:monitor/state"; private ClusterStateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsAction.java index ae2463fad65..34bddac0234 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class ClusterStatsAction extends ClusterAction { public static final ClusterStatsAction INSTANCE = new ClusterStatsAction(); - public static final String NAME = "cluster/stats"; + public static final String NAME = "cluster:monitor/stats"; private ClusterStatsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/cluster/tasks/PendingClusterTasksAction.java b/src/main/java/org/elasticsearch/action/admin/cluster/tasks/PendingClusterTasksAction.java index e96752c080d..b074d054e60 100644 --- a/src/main/java/org/elasticsearch/action/admin/cluster/tasks/PendingClusterTasksAction.java +++ b/src/main/java/org/elasticsearch/action/admin/cluster/tasks/PendingClusterTasksAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.ClusterAdminClient; public class PendingClusterTasksAction extends ClusterAction { public static final PendingClusterTasksAction INSTANCE = new PendingClusterTasksAction(); - public static final String NAME = "cluster/task"; + public static final String NAME = "cluster:monitor/task"; private PendingClusterTasksAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesAction.java b/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesAction.java index d34b2594568..c8dea4db2b9 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class IndicesAliasesAction extends IndicesAction { public static final IndicesAliasesAction INSTANCE = new IndicesAliasesAction(); - public static final String NAME = "indices/aliases"; + public static final String NAME = "indices:admin/aliases"; private IndicesAliasesAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/alias/exists/AliasesExistAction.java b/src/main/java/org/elasticsearch/action/admin/indices/alias/exists/AliasesExistAction.java index 4009ec1d23e..18d281eb99a 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/alias/exists/AliasesExistAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/alias/exists/AliasesExistAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class AliasesExistAction extends IndicesAction { public static final AliasesExistAction INSTANCE = new AliasesExistAction(); - public static final String NAME = "indices/exists/aliases"; + public static final String NAME = "indices:admin/aliases/exists"; private AliasesExistAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesAction.java b/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesAction.java index 85d2a595318..fd8acb8beba 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetAliasesAction extends IndicesAction { public static final GetAliasesAction INSTANCE = new GetAliasesAction(); - public static final String NAME = "indices/get/aliases"; + public static final String NAME = "indices:admin/aliases/get"; private GetAliasesAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/analyze/AnalyzeAction.java b/src/main/java/org/elasticsearch/action/admin/indices/analyze/AnalyzeAction.java index a8c2183e13e..b2843e71099 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/analyze/AnalyzeAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/analyze/AnalyzeAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class AnalyzeAction extends IndicesAction { public static final AnalyzeAction INSTANCE = new AnalyzeAction(); - public static final String NAME = "indices/analyze"; + public static final String NAME = "indices:admin/analyze"; private AnalyzeAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheAction.java b/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheAction.java index 244ca6cd7ee..16adc9cb1a4 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class ClearIndicesCacheAction extends IndicesAction { public static final ClearIndicesCacheAction INSTANCE = new ClearIndicesCacheAction(); - public static final String NAME = "indices/cache/clear"; + public static final String NAME = "indices:admin/cache/clear"; private ClearIndicesCacheAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexAction.java b/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexAction.java index 4956d17283f..01e6c3e37a3 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class CloseIndexAction extends IndicesAction { public static final CloseIndexAction INSTANCE = new CloseIndexAction(); - public static final String NAME = "indices/close"; + public static final String NAME = "indices:admin/close"; private CloseIndexAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexAction.java b/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexAction.java index 705f7c19afb..520b3d1a0a2 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class CreateIndexAction extends IndicesAction { public static final CreateIndexAction INSTANCE = new CreateIndexAction(); - public static final String NAME = "indices/create"; + public static final String NAME = "indices:admin/create"; private CreateIndexAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexAction.java b/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexAction.java index 7d35afb3695..ac9d5eba86f 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class DeleteIndexAction extends IndicesAction { public static final DeleteIndexAction INSTANCE = new DeleteIndexAction(); - public static final String NAME = "indices/delete"; + public static final String NAME = "indices:admin/delete"; private DeleteIndexAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/exists/indices/IndicesExistsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/exists/indices/IndicesExistsAction.java index e4a107f0dd6..734e20e407f 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/exists/indices/IndicesExistsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/exists/indices/IndicesExistsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class IndicesExistsAction extends IndicesAction { public static final IndicesExistsAction INSTANCE = new IndicesExistsAction(); - public static final String NAME = "indices/exists"; + public static final String NAME = "indices:admin/exists"; private IndicesExistsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsAction.java index 7150c22715b..9feb5568668 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsAction.java @@ -26,7 +26,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class TypesExistsAction extends IndicesAction { public static final TypesExistsAction INSTANCE = new TypesExistsAction(); - public static final String NAME = "indices/types/exists"; + public static final String NAME = "indices:admin/types/exists"; private TypesExistsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/flush/FlushAction.java b/src/main/java/org/elasticsearch/action/admin/indices/flush/FlushAction.java index c78fa59d91d..78e46715139 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/flush/FlushAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/flush/FlushAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class FlushAction extends IndicesAction { public static final FlushAction INSTANCE = new FlushAction(); - public static final String NAME = "indices/flush"; + public static final String NAME = "indices:admin/flush"; private FlushAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/mapping/delete/DeleteMappingAction.java b/src/main/java/org/elasticsearch/action/admin/indices/mapping/delete/DeleteMappingAction.java index e6b8b8db5fc..f4792ef79d8 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/mapping/delete/DeleteMappingAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/mapping/delete/DeleteMappingAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class DeleteMappingAction extends IndicesAction { public static final DeleteMappingAction INSTANCE = new DeleteMappingAction(); - public static final String NAME = "indices/mapping/delete"; + public static final String NAME = "indices:admin/mapping/delete"; private DeleteMappingAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetFieldMappingsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetFieldMappingsAction.java index 0b11b3570aa..222b99762c5 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetFieldMappingsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetFieldMappingsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetFieldMappingsAction extends IndicesAction { public static final GetFieldMappingsAction INSTANCE = new GetFieldMappingsAction(); - public static final String NAME = "mappings/fields/get"; + public static final String NAME = "indices:admin/mappings/fields/get"; private GetFieldMappingsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetMappingsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetMappingsAction.java index ebf7642b240..2ac4d58bc88 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetMappingsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/GetMappingsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetMappingsAction extends IndicesAction { public static final GetMappingsAction INSTANCE = new GetMappingsAction(); - public static final String NAME = "mappings/get"; + public static final String NAME = "indices:admin/mappings/get"; private GetMappingsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java index ea82ad706b6..8ea71eda4e2 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java @@ -56,7 +56,7 @@ import java.util.List; */ public class TransportGetFieldMappingsIndexAction extends TransportSingleCustomOperationAction { - private static final String ACTION_NAME = GetFieldMappingsAction.NAME + "/index"; + private static final String ACTION_NAME = GetFieldMappingsAction.NAME + "[index]"; protected final ClusterService clusterService; private final IndicesService indicesService; diff --git a/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingAction.java b/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingAction.java index 2631247c6e9..01bfccdb46c 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class PutMappingAction extends IndicesAction { public static final PutMappingAction INSTANCE = new PutMappingAction(); - public static final String NAME = "indices/mapping/put"; + public static final String NAME = "indices:admin/mapping/put"; private PutMappingAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexAction.java b/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexAction.java index c0b45412d57..09bd6ff8f5a 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class OpenIndexAction extends IndicesAction { public static final OpenIndexAction INSTANCE = new OpenIndexAction(); - public static final String NAME = "indices/open"; + public static final String NAME = "indices:admin/open"; private OpenIndexAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/optimize/OptimizeAction.java b/src/main/java/org/elasticsearch/action/admin/indices/optimize/OptimizeAction.java index 6a3dc66820e..65d2ce43f01 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/optimize/OptimizeAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/optimize/OptimizeAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class OptimizeAction extends IndicesAction { public static final OptimizeAction INSTANCE = new OptimizeAction(); - public static final String NAME = "indices/optimize"; + public static final String NAME = "indices:admin/optimize"; private OptimizeAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/recovery/RecoveryAction.java b/src/main/java/org/elasticsearch/action/admin/indices/recovery/RecoveryAction.java index d7ecfeb85f4..1b210c004a0 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/recovery/RecoveryAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/recovery/RecoveryAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.action.admin.indices.IndicesAction; public class RecoveryAction extends IndicesAction { public static final RecoveryAction INSTANCE = new RecoveryAction(); - public static final String NAME = "indices/recovery"; + public static final String NAME = "indices:monitor/recovery"; private RecoveryAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/refresh/RefreshAction.java b/src/main/java/org/elasticsearch/action/admin/indices/refresh/RefreshAction.java index e4a55243110..985de9fd85d 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/refresh/RefreshAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/refresh/RefreshAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class RefreshAction extends IndicesAction { public static final RefreshAction INSTANCE = new RefreshAction(); - public static final String NAME = "indices/refresh"; + public static final String NAME = "indices:admin/refresh"; private RefreshAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsAction.java index dd46a03e649..80a01d8ae3c 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class IndicesSegmentsAction extends IndicesAction { public static final IndicesSegmentsAction INSTANCE = new IndicesSegmentsAction(); - public static final String NAME = "indices/segments"; + public static final String NAME = "indices:monitor/segments"; private IndicesSegmentsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsAction.java index 7c77c20396e..0b729bd7999 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetSettingsAction extends IndicesAction { public static final GetSettingsAction INSTANCE = new GetSettingsAction(); - public static final String NAME = "indices/settings/get"; + public static final String NAME = "indices:monitor/settings/get"; public GetSettingsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsAction.java index 98a45b2dde9..df67115bb3a 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class UpdateSettingsAction extends IndicesAction { public static final UpdateSettingsAction INSTANCE = new UpdateSettingsAction(); - public static final String NAME = "indices/settings/update"; + public static final String NAME = "indices:admin/settings/update"; private UpdateSettingsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsAction.java b/src/main/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsAction.java index 327c6053b15..19b4f5ceca3 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class IndicesStatsAction extends IndicesAction { public static final IndicesStatsAction INSTANCE = new IndicesStatsAction(); - public static final String NAME = "indices/stats"; + public static final String NAME = "indices:monitor/stats"; private IndicesStatsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/template/delete/DeleteIndexTemplateAction.java b/src/main/java/org/elasticsearch/action/admin/indices/template/delete/DeleteIndexTemplateAction.java index 2d604b13379..e826b76f971 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/template/delete/DeleteIndexTemplateAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/template/delete/DeleteIndexTemplateAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class DeleteIndexTemplateAction extends IndicesAction { public static final DeleteIndexTemplateAction INSTANCE = new DeleteIndexTemplateAction(); - public static final String NAME = "indices/template/delete"; + public static final String NAME = "indices:admin/template/delete"; private DeleteIndexTemplateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetIndexTemplatesAction.java b/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetIndexTemplatesAction.java index f0a445cbb6b..de3ded1a64e 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetIndexTemplatesAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetIndexTemplatesAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetIndexTemplatesAction extends IndicesAction { public static final GetIndexTemplatesAction INSTANCE = new GetIndexTemplatesAction(); - public static final String NAME = "indices/template/get"; + public static final String NAME = "indices:admin/template/get"; protected GetIndexTemplatesAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateAction.java b/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateAction.java index 0435ba94ced..00f98bc46b6 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class PutIndexTemplateAction extends IndicesAction { public static final PutIndexTemplateAction INSTANCE = new PutIndexTemplateAction(); - public static final String NAME = "indices/template/put"; + public static final String NAME = "indices:admin/template/put"; private PutIndexTemplateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryAction.java b/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryAction.java index 8bfcc3ed44c..76bb9523183 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class ValidateQueryAction extends IndicesAction { public static final ValidateQueryAction INSTANCE = new ValidateQueryAction(); - public static final String NAME = "indices/validate/query"; + public static final String NAME = "indices:admin/validate/query"; private ValidateQueryAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/warmer/delete/DeleteWarmerAction.java b/src/main/java/org/elasticsearch/action/admin/indices/warmer/delete/DeleteWarmerAction.java index 8473129055d..6c544050a67 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/warmer/delete/DeleteWarmerAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/warmer/delete/DeleteWarmerAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class DeleteWarmerAction extends IndicesAction { public static final DeleteWarmerAction INSTANCE = new DeleteWarmerAction(); - public static final String NAME = "indices/warmer/delete"; + public static final String NAME = "indices:admin/warmers/delete"; private DeleteWarmerAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/warmer/get/GetWarmersAction.java b/src/main/java/org/elasticsearch/action/admin/indices/warmer/get/GetWarmersAction.java index 01445cff4a4..e16b4ada778 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/warmer/get/GetWarmersAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/warmer/get/GetWarmersAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class GetWarmersAction extends IndicesAction { public static final GetWarmersAction INSTANCE = new GetWarmersAction(); - public static final String NAME = "warmers/get"; + public static final String NAME = "indices:admin/warmers/get"; private GetWarmersAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/admin/indices/warmer/put/PutWarmerAction.java b/src/main/java/org/elasticsearch/action/admin/indices/warmer/put/PutWarmerAction.java index ee799c82db7..726bb29687c 100644 --- a/src/main/java/org/elasticsearch/action/admin/indices/warmer/put/PutWarmerAction.java +++ b/src/main/java/org/elasticsearch/action/admin/indices/warmer/put/PutWarmerAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.IndicesAdminClient; public class PutWarmerAction extends IndicesAction { public static final PutWarmerAction INSTANCE = new PutWarmerAction(); - public static final String NAME = "indices/warmer/put"; + public static final String NAME = "indices:admin/warmers/put"; private PutWarmerAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/bench/AbortBenchmarkAction.java b/src/main/java/org/elasticsearch/action/bench/AbortBenchmarkAction.java index f17de510263..47abd130bc2 100644 --- a/src/main/java/org/elasticsearch/action/bench/AbortBenchmarkAction.java +++ b/src/main/java/org/elasticsearch/action/bench/AbortBenchmarkAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.Client; public class AbortBenchmarkAction extends ClientAction { public static final AbortBenchmarkAction INSTANCE = new AbortBenchmarkAction(); - public static final String NAME = "benchmark/abort"; + public static final String NAME = "indices:data/benchmark/abort"; private AbortBenchmarkAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/bench/BenchmarkAction.java b/src/main/java/org/elasticsearch/action/bench/BenchmarkAction.java index a2c66dbc5a4..3dceb7740d9 100644 --- a/src/main/java/org/elasticsearch/action/bench/BenchmarkAction.java +++ b/src/main/java/org/elasticsearch/action/bench/BenchmarkAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.common.Strings; public class BenchmarkAction extends ClientAction { public static final BenchmarkAction INSTANCE = new BenchmarkAction(); - public static final String NAME = "benchmark/start"; + public static final String NAME = "indices:data/benchmark/start"; private BenchmarkAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/bench/BenchmarkService.java b/src/main/java/org/elasticsearch/action/bench/BenchmarkService.java index 278507d5d54..0ebfd47593e 100644 --- a/src/main/java/org/elasticsearch/action/bench/BenchmarkService.java +++ b/src/main/java/org/elasticsearch/action/bench/BenchmarkService.java @@ -59,6 +59,10 @@ public class BenchmarkService extends AbstractLifecycleComponent { - static final String ACTION = "benchmark/executor/start"; - @Override public NodeBenchRequest newInstance() { return new NodeBenchRequest(); @@ -278,8 +280,6 @@ public class BenchmarkService extends AbstractLifecycleComponent { - static final String ACTION = "benchmark/executor/status"; - @Override public NodeStatusRequest newInstance() { return new NodeStatusRequest(); @@ -301,8 +301,6 @@ public class BenchmarkService extends AbstractLifecycleComponent { - static final String ACTION = "benchmark/executor/abort"; - @Override public NodeAbortRequest newInstance() { return new NodeAbortRequest(); diff --git a/src/main/java/org/elasticsearch/action/bench/BenchmarkStatusAction.java b/src/main/java/org/elasticsearch/action/bench/BenchmarkStatusAction.java index 568fba45e93..1523c93c717 100644 --- a/src/main/java/org/elasticsearch/action/bench/BenchmarkStatusAction.java +++ b/src/main/java/org/elasticsearch/action/bench/BenchmarkStatusAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.Client; public class BenchmarkStatusAction extends ClientAction { public static final BenchmarkStatusAction INSTANCE = new BenchmarkStatusAction(); - public static final String NAME = "benchmark/status"; + public static final String NAME = "indices:data/benchmark/status"; public BenchmarkStatusAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/bulk/BulkAction.java b/src/main/java/org/elasticsearch/action/bulk/BulkAction.java index 0e03ad2f9a8..e7a8ea13de8 100644 --- a/src/main/java/org/elasticsearch/action/bulk/BulkAction.java +++ b/src/main/java/org/elasticsearch/action/bulk/BulkAction.java @@ -29,7 +29,7 @@ import org.elasticsearch.transport.TransportRequestOptions; public class BulkAction extends ClientAction { public static final BulkAction INSTANCE = new BulkAction(); - public static final String NAME = "bulk"; + public static final String NAME = "indices:data/write/bulk"; private BulkAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java b/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java index 91615ffc5cc..24fcd827711 100644 --- a/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java +++ b/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java @@ -76,7 +76,7 @@ public class TransportShardBulkAction extends TransportShardReplicationOperation private final static String OP_TYPE_UPDATE = "update"; private final static String OP_TYPE_DELETE = "delete"; - private static final String ACTION_NAME = BulkAction.NAME + "/shard"; + private static final String ACTION_NAME = BulkAction.NAME + "[s]"; private final MappingUpdatedAction mappingUpdatedAction; private final UpdateHelper updateHelper; diff --git a/src/main/java/org/elasticsearch/action/count/CountAction.java b/src/main/java/org/elasticsearch/action/count/CountAction.java index 33fd2e2be67..319ca5366d5 100644 --- a/src/main/java/org/elasticsearch/action/count/CountAction.java +++ b/src/main/java/org/elasticsearch/action/count/CountAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class CountAction extends ClientAction { public static final CountAction INSTANCE = new CountAction(); - public static final String NAME = "count"; + public static final String NAME = "indices:data/read/count"; private CountAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/delete/DeleteAction.java b/src/main/java/org/elasticsearch/action/delete/DeleteAction.java index b0e9666ac33..ac094069548 100644 --- a/src/main/java/org/elasticsearch/action/delete/DeleteAction.java +++ b/src/main/java/org/elasticsearch/action/delete/DeleteAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class DeleteAction extends ClientAction { public static final DeleteAction INSTANCE = new DeleteAction(); - public static final String NAME = "delete"; + public static final String NAME = "indices:data/write/delete"; private DeleteAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/delete/index/TransportIndexDeleteAction.java b/src/main/java/org/elasticsearch/action/delete/index/TransportIndexDeleteAction.java index 88176ec4651..7e2c04ccfdb 100644 --- a/src/main/java/org/elasticsearch/action/delete/index/TransportIndexDeleteAction.java +++ b/src/main/java/org/elasticsearch/action/delete/index/TransportIndexDeleteAction.java @@ -20,6 +20,7 @@ package org.elasticsearch.action.delete.index; import org.elasticsearch.action.ShardOperationFailedException; +import org.elasticsearch.action.delete.DeleteAction; import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.replication.TransportIndexReplicationOperationAction; import org.elasticsearch.cluster.ClusterService; @@ -39,7 +40,7 @@ import java.util.List; */ public class TransportIndexDeleteAction extends TransportIndexReplicationOperationAction { - private static final String ACTION_NAME = "indices/index/delete"; + private static final String ACTION_NAME = DeleteAction.NAME + "[index]"; @Inject public TransportIndexDeleteAction(Settings settings, ClusterService clusterService, TransportService transportService, diff --git a/src/main/java/org/elasticsearch/action/delete/index/TransportShardDeleteAction.java b/src/main/java/org/elasticsearch/action/delete/index/TransportShardDeleteAction.java index d36fb2f5e39..bcc1e681273 100644 --- a/src/main/java/org/elasticsearch/action/delete/index/TransportShardDeleteAction.java +++ b/src/main/java/org/elasticsearch/action/delete/index/TransportShardDeleteAction.java @@ -20,6 +20,7 @@ package org.elasticsearch.action.delete.index; import org.elasticsearch.ElasticsearchIllegalStateException; +import org.elasticsearch.action.delete.DeleteAction; import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction; import org.elasticsearch.cluster.ClusterService; @@ -43,7 +44,7 @@ import org.elasticsearch.transport.TransportService; */ public class TransportShardDeleteAction extends TransportShardReplicationOperationAction { - private static final String ACTION_NAME = "indices/index/b_shard/delete"; + private static final String ACTION_NAME = DeleteAction.NAME + "[s]"; @Inject public TransportShardDeleteAction(Settings settings, TransportService transportService, diff --git a/src/main/java/org/elasticsearch/action/deletebyquery/DeleteByQueryAction.java b/src/main/java/org/elasticsearch/action/deletebyquery/DeleteByQueryAction.java index 6b0811a20c1..8a35aef6818 100644 --- a/src/main/java/org/elasticsearch/action/deletebyquery/DeleteByQueryAction.java +++ b/src/main/java/org/elasticsearch/action/deletebyquery/DeleteByQueryAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class DeleteByQueryAction extends ClientAction { public static final DeleteByQueryAction INSTANCE = new DeleteByQueryAction(); - public static final String NAME = "deleteByQuery"; + public static final String NAME = "indices:data/write/delete/by_query"; private DeleteByQueryAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/deletebyquery/TransportIndexDeleteByQueryAction.java b/src/main/java/org/elasticsearch/action/deletebyquery/TransportIndexDeleteByQueryAction.java index bb7c1a02ab5..861352b00dd 100644 --- a/src/main/java/org/elasticsearch/action/deletebyquery/TransportIndexDeleteByQueryAction.java +++ b/src/main/java/org/elasticsearch/action/deletebyquery/TransportIndexDeleteByQueryAction.java @@ -39,7 +39,7 @@ import java.util.List; */ public class TransportIndexDeleteByQueryAction extends TransportIndexReplicationOperationAction { - private static final String ACTION_NAME = DeleteByQueryAction.NAME + "/index"; + private static final String ACTION_NAME = DeleteByQueryAction.NAME + "[index]"; @Inject public TransportIndexDeleteByQueryAction(Settings settings, ClusterService clusterService, TransportService transportService, diff --git a/src/main/java/org/elasticsearch/action/deletebyquery/TransportShardDeleteByQueryAction.java b/src/main/java/org/elasticsearch/action/deletebyquery/TransportShardDeleteByQueryAction.java index f39d567d761..a4e651a0bda 100644 --- a/src/main/java/org/elasticsearch/action/deletebyquery/TransportShardDeleteByQueryAction.java +++ b/src/main/java/org/elasticsearch/action/deletebyquery/TransportShardDeleteByQueryAction.java @@ -55,7 +55,7 @@ public class TransportShardDeleteByQueryAction extends TransportShardReplication public final static String DELETE_BY_QUERY_API = "delete_by_query"; - private static final String ACTION_NAME = DeleteByQueryAction.NAME + "/shard"; + private static final String ACTION_NAME = DeleteByQueryAction.NAME + "[s]"; private final ScriptService scriptService; private final CacheRecycler cacheRecycler; diff --git a/src/main/java/org/elasticsearch/action/exists/ExistsAction.java b/src/main/java/org/elasticsearch/action/exists/ExistsAction.java index 3719f04a938..e37f81c5e44 100644 --- a/src/main/java/org/elasticsearch/action/exists/ExistsAction.java +++ b/src/main/java/org/elasticsearch/action/exists/ExistsAction.java @@ -25,7 +25,7 @@ import org.elasticsearch.client.Client; public class ExistsAction extends ClientAction { public static final ExistsAction INSTANCE = new ExistsAction(); - public static final String NAME = "exists"; + public static final String NAME = "indices:data/read/exists"; private ExistsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/explain/ExplainAction.java b/src/main/java/org/elasticsearch/action/explain/ExplainAction.java index 63d339500b7..772e55ba163 100644 --- a/src/main/java/org/elasticsearch/action/explain/ExplainAction.java +++ b/src/main/java/org/elasticsearch/action/explain/ExplainAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.Client; public class ExplainAction extends ClientAction { public static final ExplainAction INSTANCE = new ExplainAction(); - public static final String NAME = "explain"; + public static final String NAME = "indices:data/read/explain"; private ExplainAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/get/GetAction.java b/src/main/java/org/elasticsearch/action/get/GetAction.java index 061d83bd797..93e4f26e150 100644 --- a/src/main/java/org/elasticsearch/action/get/GetAction.java +++ b/src/main/java/org/elasticsearch/action/get/GetAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class GetAction extends ClientAction { public static final GetAction INSTANCE = new GetAction(); - public static final String NAME = "get"; + public static final String NAME = "indices:data/read/get"; private GetAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/get/MultiGetAction.java b/src/main/java/org/elasticsearch/action/get/MultiGetAction.java index e846fedf57b..0a15892a057 100644 --- a/src/main/java/org/elasticsearch/action/get/MultiGetAction.java +++ b/src/main/java/org/elasticsearch/action/get/MultiGetAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class MultiGetAction extends ClientAction { public static final MultiGetAction INSTANCE = new MultiGetAction(); - public static final String NAME = "mget"; + public static final String NAME = "indices:data/read/mget"; private MultiGetAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java b/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java index 148ad018a00..fe21a01c163 100644 --- a/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java +++ b/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java @@ -43,7 +43,7 @@ import org.elasticsearch.transport.TransportService; public class TransportShardMultiGetAction extends TransportShardSingleOperationAction { - private static final String ACTION_NAME = MultiGetAction.NAME + "/shard"; + private static final String ACTION_NAME = MultiGetAction.NAME + "[shard]"; private final IndicesService indicesService; diff --git a/src/main/java/org/elasticsearch/action/index/IndexAction.java b/src/main/java/org/elasticsearch/action/index/IndexAction.java index e9d2859fa06..1f6e5a5c8ea 100644 --- a/src/main/java/org/elasticsearch/action/index/IndexAction.java +++ b/src/main/java/org/elasticsearch/action/index/IndexAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class IndexAction extends ClientAction { public static final IndexAction INSTANCE = new IndexAction(); - public static final String NAME = "index"; + public static final String NAME = "indices:data/write/index"; private IndexAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/indexedscripts/delete/DeleteIndexedScriptAction.java b/src/main/java/org/elasticsearch/action/indexedscripts/delete/DeleteIndexedScriptAction.java index 3e1fd37870a..94009796b19 100644 --- a/src/main/java/org/elasticsearch/action/indexedscripts/delete/DeleteIndexedScriptAction.java +++ b/src/main/java/org/elasticsearch/action/indexedscripts/delete/DeleteIndexedScriptAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class DeleteIndexedScriptAction extends ClientAction { public static final DeleteIndexedScriptAction INSTANCE = new DeleteIndexedScriptAction(); - public static final String NAME = "deleteIndexedScript"; + public static final String NAME = "indices:data/write/script/delete"; private DeleteIndexedScriptAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/indexedscripts/get/GetIndexedScriptAction.java b/src/main/java/org/elasticsearch/action/indexedscripts/get/GetIndexedScriptAction.java index 1d4e7dc34eb..a909b78d289 100644 --- a/src/main/java/org/elasticsearch/action/indexedscripts/get/GetIndexedScriptAction.java +++ b/src/main/java/org/elasticsearch/action/indexedscripts/get/GetIndexedScriptAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class GetIndexedScriptAction extends ClientAction { public static final GetIndexedScriptAction INSTANCE = new GetIndexedScriptAction(); - public static final String NAME = "getIndexedScript"; + public static final String NAME = "indices:data/read/script/get"; private GetIndexedScriptAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/indexedscripts/put/PutIndexedScriptAction.java b/src/main/java/org/elasticsearch/action/indexedscripts/put/PutIndexedScriptAction.java index 4baa1a19a5a..3949e05af18 100644 --- a/src/main/java/org/elasticsearch/action/indexedscripts/put/PutIndexedScriptAction.java +++ b/src/main/java/org/elasticsearch/action/indexedscripts/put/PutIndexedScriptAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.Client; public class PutIndexedScriptAction extends ClientAction { public static final PutIndexedScriptAction INSTANCE = new PutIndexedScriptAction(); - public static final String NAME = "putIndexedScript"; + public static final String NAME = "indices:data/write/script/put"; private PutIndexedScriptAction() { diff --git a/src/main/java/org/elasticsearch/action/mlt/MoreLikeThisAction.java b/src/main/java/org/elasticsearch/action/mlt/MoreLikeThisAction.java index 0eeef1403bf..b2561650d77 100644 --- a/src/main/java/org/elasticsearch/action/mlt/MoreLikeThisAction.java +++ b/src/main/java/org/elasticsearch/action/mlt/MoreLikeThisAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.client.Client; public class MoreLikeThisAction extends ClientAction { public static final MoreLikeThisAction INSTANCE = new MoreLikeThisAction(); - public static final String NAME = "mlt"; + public static final String NAME = "indices:data/read/mlt"; private MoreLikeThisAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/percolate/MultiPercolateAction.java b/src/main/java/org/elasticsearch/action/percolate/MultiPercolateAction.java index a464c88dd18..fadb290683c 100644 --- a/src/main/java/org/elasticsearch/action/percolate/MultiPercolateAction.java +++ b/src/main/java/org/elasticsearch/action/percolate/MultiPercolateAction.java @@ -26,7 +26,7 @@ import org.elasticsearch.client.Client; public class MultiPercolateAction extends ClientAction { public static final MultiPercolateAction INSTANCE = new MultiPercolateAction(); - public static final String NAME = "mpercolate"; + public static final String NAME = "indices:data/read/mpercolate"; private MultiPercolateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/percolate/PercolateAction.java b/src/main/java/org/elasticsearch/action/percolate/PercolateAction.java index ec5b227641c..6d85d207719 100644 --- a/src/main/java/org/elasticsearch/action/percolate/PercolateAction.java +++ b/src/main/java/org/elasticsearch/action/percolate/PercolateAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class PercolateAction extends ClientAction { public static final PercolateAction INSTANCE = new PercolateAction(); - public static final String NAME = "percolate"; + public static final String NAME = "indices:data/read/percolate"; private PercolateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/percolate/TransportShardMultiPercolateAction.java b/src/main/java/org/elasticsearch/action/percolate/TransportShardMultiPercolateAction.java index fe2b4ac9f74..c3e2481de1b 100644 --- a/src/main/java/org/elasticsearch/action/percolate/TransportShardMultiPercolateAction.java +++ b/src/main/java/org/elasticsearch/action/percolate/TransportShardMultiPercolateAction.java @@ -52,7 +52,7 @@ public class TransportShardMultiPercolateAction extends TransportShardSingleOper private final PercolatorService percolatorService; - private static final String ACTION_NAME = "mpercolate/shard"; + private static final String ACTION_NAME = MultiPercolateAction.NAME + "[shard]"; @Inject public TransportShardMultiPercolateAction(Settings settings, ThreadPool threadPool, ClusterService clusterService, TransportService transportService, PercolatorService percolatorService, ActionFilters actionFilters) { diff --git a/src/main/java/org/elasticsearch/action/search/ClearScrollAction.java b/src/main/java/org/elasticsearch/action/search/ClearScrollAction.java index bb7adb04557..769c14fa369 100644 --- a/src/main/java/org/elasticsearch/action/search/ClearScrollAction.java +++ b/src/main/java/org/elasticsearch/action/search/ClearScrollAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class ClearScrollAction extends ClientAction { public static final ClearScrollAction INSTANCE = new ClearScrollAction(); - public static final String NAME = "clear_sc"; + public static final String NAME = "indices:data/read/scroll/clear"; private ClearScrollAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java b/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java index ce54fa1b85e..f052a927a16 100644 --- a/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java +++ b/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class MultiSearchAction extends ClientAction { public static final MultiSearchAction INSTANCE = new MultiSearchAction(); - public static final String NAME = "msearch"; + public static final String NAME = "indices:data/read/msearch"; private MultiSearchAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/search/SearchAction.java b/src/main/java/org/elasticsearch/action/search/SearchAction.java index c541b760b1a..450e65eed19 100644 --- a/src/main/java/org/elasticsearch/action/search/SearchAction.java +++ b/src/main/java/org/elasticsearch/action/search/SearchAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class SearchAction extends ClientAction { public static final SearchAction INSTANCE = new SearchAction(); - public static final String NAME = "search"; + public static final String NAME = "indices:data/read/search"; private SearchAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/search/SearchScrollAction.java b/src/main/java/org/elasticsearch/action/search/SearchScrollAction.java index 0f736ae06ad..0647b2e6554 100644 --- a/src/main/java/org/elasticsearch/action/search/SearchScrollAction.java +++ b/src/main/java/org/elasticsearch/action/search/SearchScrollAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class SearchScrollAction extends ClientAction { public static final SearchScrollAction INSTANCE = new SearchScrollAction(); - public static final String NAME = "search/scroll"; + public static final String NAME = "indices:data/read/scroll"; private SearchScrollAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/suggest/SuggestAction.java b/src/main/java/org/elasticsearch/action/suggest/SuggestAction.java index 868f62d28fb..59bfe4e6e19 100644 --- a/src/main/java/org/elasticsearch/action/suggest/SuggestAction.java +++ b/src/main/java/org/elasticsearch/action/suggest/SuggestAction.java @@ -28,7 +28,7 @@ import org.elasticsearch.search.suggest.Suggest; public class SuggestAction extends ClientAction { public static final SuggestAction INSTANCE = new SuggestAction(); - public static final String NAME = "suggest"; + public static final String NAME = "indices:data/read/suggest"; private SuggestAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/support/broadcast/TransportBroadcastOperationAction.java b/src/main/java/org/elasticsearch/action/support/broadcast/TransportBroadcastOperationAction.java index 839d1fbd6c6..354b571b53e 100644 --- a/src/main/java/org/elasticsearch/action/support/broadcast/TransportBroadcastOperationAction.java +++ b/src/main/java/org/elasticsearch/action/support/broadcast/TransportBroadcastOperationAction.java @@ -59,7 +59,7 @@ public abstract class TransportBroadcastOperationAction { public static final MultiTermVectorsAction INSTANCE = new MultiTermVectorsAction(); - public static final String NAME = "mtv"; + public static final String NAME = "indices:data/read/mtv"; private MultiTermVectorsAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/termvector/TermVectorAction.java b/src/main/java/org/elasticsearch/action/termvector/TermVectorAction.java index 1aed1c6f96d..cf837fdfed8 100644 --- a/src/main/java/org/elasticsearch/action/termvector/TermVectorAction.java +++ b/src/main/java/org/elasticsearch/action/termvector/TermVectorAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class TermVectorAction extends ClientAction { public static final TermVectorAction INSTANCE = new TermVectorAction(); - public static final String NAME = "tv"; + public static final String NAME = "indices:data/read/tv"; private TermVectorAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/action/termvector/TransportSingleShardMultiTermsVectorAction.java b/src/main/java/org/elasticsearch/action/termvector/TransportSingleShardMultiTermsVectorAction.java index 6086b7cedce..c86b78b9ec7 100644 --- a/src/main/java/org/elasticsearch/action/termvector/TransportSingleShardMultiTermsVectorAction.java +++ b/src/main/java/org/elasticsearch/action/termvector/TransportSingleShardMultiTermsVectorAction.java @@ -41,7 +41,7 @@ public class TransportSingleShardMultiTermsVectorAction extends TransportShardSi private final IndicesService indicesService; - private static final String ACTION_NAME = MultiTermVectorsAction.NAME + "/shard"; + private static final String ACTION_NAME = MultiTermVectorsAction.NAME + "[shard]"; @Inject public TransportSingleShardMultiTermsVectorAction(Settings settings, ClusterService clusterService, TransportService transportService, diff --git a/src/main/java/org/elasticsearch/action/update/UpdateAction.java b/src/main/java/org/elasticsearch/action/update/UpdateAction.java index b1438c74055..c149a8839d2 100644 --- a/src/main/java/org/elasticsearch/action/update/UpdateAction.java +++ b/src/main/java/org/elasticsearch/action/update/UpdateAction.java @@ -27,7 +27,7 @@ import org.elasticsearch.client.Client; public class UpdateAction extends ClientAction { public static final UpdateAction INSTANCE = new UpdateAction(); - public static final String NAME = "update"; + public static final String NAME = "indices:data/write/update"; private UpdateAction() { super(NAME); diff --git a/src/main/java/org/elasticsearch/client/transport/TransportClientNodesService.java b/src/main/java/org/elasticsearch/client/transport/TransportClientNodesService.java index 3d3d87b0ce4..52358b126e5 100644 --- a/src/main/java/org/elasticsearch/client/transport/TransportClientNodesService.java +++ b/src/main/java/org/elasticsearch/client/transport/TransportClientNodesService.java @@ -397,7 +397,7 @@ public class TransportClientNodesService extends AbstractComponent { if (!transportService.nodeConnected(listedNode)) { try { - // if its one of hte actual nodes we will talk to, not to listed nodes, fully connect + // if its one of the actual nodes we will talk to, not to listed nodes, fully connect if (nodes.contains(listedNode)) { logger.trace("connecting to cluster node [{}]", listedNode); transportService.connectToNode(listedNode); diff --git a/src/main/java/org/elasticsearch/cluster/action/index/MappingUpdatedAction.java b/src/main/java/org/elasticsearch/cluster/action/index/MappingUpdatedAction.java index 142d4aa5339..761d27bc350 100644 --- a/src/main/java/org/elasticsearch/cluster/action/index/MappingUpdatedAction.java +++ b/src/main/java/org/elasticsearch/cluster/action/index/MappingUpdatedAction.java @@ -67,8 +67,7 @@ import java.util.concurrent.atomic.AtomicLong; public class MappingUpdatedAction extends TransportMasterNodeOperationAction { public static final String INDICES_MAPPING_ADDITIONAL_MAPPING_CHANGE_TIME = "indices.mapping.additional_mapping_change_time"; - - private static final String ACTION_NAME = "cluster/mappingUpdated"; + public static final String ACTION_NAME = "internal:cluster/mapping_updated"; private final AtomicLong mappingUpdateOrderGen = new AtomicLong(); private final MetaDataMappingService metaDataMappingService; diff --git a/src/main/java/org/elasticsearch/cluster/action/index/NodeIndexDeletedAction.java b/src/main/java/org/elasticsearch/cluster/action/index/NodeIndexDeletedAction.java index fde6739dfde..110dddfead3 100644 --- a/src/main/java/org/elasticsearch/cluster/action/index/NodeIndexDeletedAction.java +++ b/src/main/java/org/elasticsearch/cluster/action/index/NodeIndexDeletedAction.java @@ -39,6 +39,9 @@ import java.util.concurrent.CopyOnWriteArrayList; */ public class NodeIndexDeletedAction extends AbstractComponent { + public static final String INDEX_DELETED_ACTION_NAME = "internal:cluster/node/index/deleted"; + public static final String INDEX_STORE_DELETED_ACTION_NAME = "internal:cluster/node/index_store/deleted"; + private final ThreadPool threadPool; private final TransportService transportService; private final List listeners = new CopyOnWriteArrayList<>(); @@ -48,8 +51,8 @@ public class NodeIndexDeletedAction extends AbstractComponent { super(settings); this.threadPool = threadPool; this.transportService = transportService; - transportService.registerHandler(NodeIndexDeletedTransportHandler.ACTION, new NodeIndexDeletedTransportHandler()); - transportService.registerHandler(NodeIndexStoreDeletedTransportHandler.ACTION, new NodeIndexStoreDeletedTransportHandler()); + transportService.registerHandler(INDEX_DELETED_ACTION_NAME, new NodeIndexDeletedTransportHandler()); + transportService.registerHandler(INDEX_STORE_DELETED_ACTION_NAME, new NodeIndexStoreDeletedTransportHandler()); } public void add(Listener listener) { @@ -71,7 +74,7 @@ public class NodeIndexDeletedAction extends AbstractComponent { }); } else { transportService.sendRequest(clusterState.nodes().masterNode(), - NodeIndexDeletedTransportHandler.ACTION, new NodeIndexDeletedMessage(index, nodeId), EmptyTransportResponseHandler.INSTANCE_SAME); + INDEX_DELETED_ACTION_NAME, new NodeIndexDeletedMessage(index, nodeId), EmptyTransportResponseHandler.INSTANCE_SAME); } } @@ -86,7 +89,7 @@ public class NodeIndexDeletedAction extends AbstractComponent { }); } else { transportService.sendRequest(clusterState.nodes().masterNode(), - NodeIndexStoreDeletedTransportHandler.ACTION, new NodeIndexStoreDeletedMessage(index, nodeId), EmptyTransportResponseHandler.INSTANCE_SAME); + INDEX_STORE_DELETED_ACTION_NAME, new NodeIndexStoreDeletedMessage(index, nodeId), EmptyTransportResponseHandler.INSTANCE_SAME); } } @@ -110,8 +113,6 @@ public class NodeIndexDeletedAction extends AbstractComponent { private class NodeIndexDeletedTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/nodeIndexDeleted"; - @Override public NodeIndexDeletedMessage newInstance() { return new NodeIndexDeletedMessage(); @@ -131,8 +132,6 @@ public class NodeIndexDeletedAction extends AbstractComponent { private class NodeIndexStoreDeletedTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/nodeIndexStoreDeleted"; - @Override public NodeIndexStoreDeletedMessage newInstance() { return new NodeIndexStoreDeletedMessage(); diff --git a/src/main/java/org/elasticsearch/cluster/action/index/NodeMappingRefreshAction.java b/src/main/java/org/elasticsearch/cluster/action/index/NodeMappingRefreshAction.java index 6b3b3e69360..3ff56b139bc 100644 --- a/src/main/java/org/elasticsearch/cluster/action/index/NodeMappingRefreshAction.java +++ b/src/main/java/org/elasticsearch/cluster/action/index/NodeMappingRefreshAction.java @@ -41,6 +41,8 @@ import java.io.IOException; */ public class NodeMappingRefreshAction extends AbstractComponent { + public static final String ACTION_NAME = "internal:cluster/node/mapping/refresh"; + private final TransportService transportService; private final MetaDataMappingService metaDataMappingService; @@ -49,7 +51,7 @@ public class NodeMappingRefreshAction extends AbstractComponent { super(settings); this.transportService = transportService; this.metaDataMappingService = metaDataMappingService; - transportService.registerHandler(NodeMappingRefreshTransportHandler.ACTION, new NodeMappingRefreshTransportHandler()); + transportService.registerHandler(ACTION_NAME, new NodeMappingRefreshTransportHandler()); } public void nodeMappingRefresh(final ClusterState state, final NodeMappingRefreshRequest request) throws ElasticsearchException { @@ -58,7 +60,7 @@ public class NodeMappingRefreshAction extends AbstractComponent { innerMappingRefresh(request); } else { transportService.sendRequest(state.nodes().masterNode(), - NodeMappingRefreshTransportHandler.ACTION, request, EmptyTransportResponseHandler.INSTANCE_SAME); + ACTION_NAME, request, EmptyTransportResponseHandler.INSTANCE_SAME); } } @@ -68,8 +70,6 @@ public class NodeMappingRefreshAction extends AbstractComponent { private class NodeMappingRefreshTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/nodeMappingRefresh"; - @Override public NodeMappingRefreshRequest newInstance() { return new NodeMappingRefreshRequest(); diff --git a/src/main/java/org/elasticsearch/cluster/action/shard/ShardStateAction.java b/src/main/java/org/elasticsearch/cluster/action/shard/ShardStateAction.java index 28e69116590..50e47cec634 100644 --- a/src/main/java/org/elasticsearch/cluster/action/shard/ShardStateAction.java +++ b/src/main/java/org/elasticsearch/cluster/action/shard/ShardStateAction.java @@ -54,6 +54,9 @@ import static org.elasticsearch.cluster.routing.ImmutableShardRouting.readShardR */ public class ShardStateAction extends AbstractComponent { + public static final String SHARD_STARTED_ACTION_NAME = "internal:cluster/shard/failure"; + public static final String SHARD_FAILED_ACTION_NAME = "internal:cluster/shard/started"; + private final TransportService transportService; private final ClusterService clusterService; private final AllocationService allocationService; @@ -71,8 +74,8 @@ public class ShardStateAction extends AbstractComponent { this.allocationService = allocationService; this.threadPool = threadPool; - transportService.registerHandler(ShardStartedTransportHandler.ACTION, new ShardStartedTransportHandler()); - transportService.registerHandler(ShardFailedTransportHandler.ACTION, new ShardFailedTransportHandler()); + transportService.registerHandler(SHARD_STARTED_ACTION_NAME, new ShardStartedTransportHandler()); + transportService.registerHandler(SHARD_FAILED_ACTION_NAME, new ShardFailedTransportHandler()); } public void shardFailed(final ShardRouting shardRouting, final String indexUUID, final String reason) throws ElasticsearchException { @@ -100,7 +103,7 @@ public class ShardStateAction extends AbstractComponent { innerShardFailed(shardRoutingEntry); } else { transportService.sendRequest(masterNode, - ShardFailedTransportHandler.ACTION, shardRoutingEntry, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + SHARD_FAILED_ACTION_NAME, shardRoutingEntry, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { logger.warn("failed to send failed shard to {}", exp, masterNode); @@ -128,7 +131,7 @@ public class ShardStateAction extends AbstractComponent { innerShardStarted(shardRoutingEntry); } else { transportService.sendRequest(masterNode, - ShardStartedTransportHandler.ACTION, new ShardRoutingEntry(shardRouting, indexUUID, reason), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + SHARD_STARTED_ACTION_NAME, new ShardRoutingEntry(shardRouting, indexUUID, reason), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { logger.warn("failed to send shard started to [{}]", exp, masterNode); @@ -291,8 +294,6 @@ public class ShardStateAction extends AbstractComponent { private class ShardFailedTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/shardFailure"; - @Override public ShardRoutingEntry newInstance() { return new ShardRoutingEntry(); @@ -312,8 +313,6 @@ public class ShardStateAction extends AbstractComponent { class ShardStartedTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/shardStarted"; - @Override public ShardRoutingEntry newInstance() { return new ShardRoutingEntry(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java b/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java index d1191543398..421e1adeb71 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java +++ b/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java @@ -78,6 +78,8 @@ import static org.elasticsearch.common.unit.TimeValue.timeValueSeconds; */ public class ZenDiscovery extends AbstractLifecycleComponent implements Discovery, DiscoveryNodesProvider { + public static final String DISCOVERY_REJOIN_ACTION_NAME = "internal:discovery/zen/rejoin"; + private final ThreadPool threadPool; private final TransportService transportService; private final ClusterService clusterService; @@ -156,7 +158,7 @@ public class ZenDiscovery extends AbstractLifecycleComponent implemen this.pingService.setNodesProvider(this); this.membership = new MembershipAction(settings, clusterService, transportService, this, new MembershipListener()); - transportService.registerHandler(RejoinClusterRequestHandler.ACTION, new RejoinClusterRequestHandler()); + transportService.registerHandler(DISCOVERY_REJOIN_ACTION_NAME, new RejoinClusterRequestHandler()); } @Override @@ -570,7 +572,7 @@ public class ZenDiscovery extends AbstractLifecycleComponent implemen // since the network connections are asymmetric, it may be that we received a state but have disconnected from the node // in the past (after a master failure, for example) transportService.connectToNode(newState.nodes().masterNode()); - transportService.sendRequest(newState.nodes().masterNode(), RejoinClusterRequestHandler.ACTION, new RejoinClusterRequest(currentState.nodes().localNodeId()), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(newState.nodes().masterNode(), DISCOVERY_REJOIN_ACTION_NAME, new RejoinClusterRequest(currentState.nodes().localNodeId()), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { logger.warn("failed to send rejoin request to [{}]", exp, newState.nodes().masterNode()); @@ -946,8 +948,6 @@ public class ZenDiscovery extends AbstractLifecycleComponent implemen class RejoinClusterRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/rejoin"; - @Override public RejoinClusterRequest newInstance() { return new RejoinClusterRequest(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/fd/MasterFaultDetection.java b/src/main/java/org/elasticsearch/discovery/zen/fd/MasterFaultDetection.java index 6b08297f84c..26fd2b00e94 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/fd/MasterFaultDetection.java +++ b/src/main/java/org/elasticsearch/discovery/zen/fd/MasterFaultDetection.java @@ -43,6 +43,8 @@ import static org.elasticsearch.transport.TransportRequestOptions.options; */ public class MasterFaultDetection extends AbstractComponent { + public static final String MASTER_PING_ACTION_NAME = "internal:discovery/zen/fd/master_ping"; + public static interface Listener { void onMasterFailure(DiscoveryNode masterNode, String reason); @@ -102,7 +104,7 @@ public class MasterFaultDetection extends AbstractComponent { transportService.addConnectionListener(connectionListener); } - transportService.registerHandler(MasterPingRequestHandler.ACTION, new MasterPingRequestHandler()); + transportService.registerHandler(MASTER_PING_ACTION_NAME, new MasterPingRequestHandler()); } public DiscoveryNode masterNode() { @@ -182,7 +184,7 @@ public class MasterFaultDetection extends AbstractComponent { stop("closing"); this.listeners.clear(); transportService.removeConnectionListener(connectionListener); - transportService.removeHandler(MasterPingRequestHandler.ACTION); + transportService.removeHandler(MASTER_PING_ACTION_NAME); } private void handleTransportDisconnect(DiscoveryNode node) { @@ -266,7 +268,7 @@ public class MasterFaultDetection extends AbstractComponent { threadPool.schedule(pingInterval, ThreadPool.Names.SAME, MasterPinger.this); return; } - transportService.sendRequest(masterToPing, MasterPingRequestHandler.ACTION, new MasterPingRequest(nodesProvider.nodes().localNode().id(), masterToPing.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), + transportService.sendRequest(masterToPing, MASTER_PING_ACTION_NAME, new MasterPingRequest(nodesProvider.nodes().localNode().id(), masterToPing.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), new BaseTransportResponseHandler() { @Override public MasterPingResponseResponse newInstance() { @@ -324,7 +326,7 @@ public class MasterFaultDetection extends AbstractComponent { notifyMasterFailure(masterToPing, "failed to ping, tried [" + pingRetryCount + "] times, each with maximum [" + pingRetryTimeout + "] timeout"); } else { // resend the request, not reschedule, rely on send timeout - transportService.sendRequest(masterToPing, MasterPingRequestHandler.ACTION, new MasterPingRequest(nodesProvider.nodes().localNode().id(), masterToPing.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), this); + transportService.sendRequest(masterToPing, MASTER_PING_ACTION_NAME, new MasterPingRequest(nodesProvider.nodes().localNode().id(), masterToPing.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), this); } } } @@ -362,8 +364,6 @@ public class MasterFaultDetection extends AbstractComponent { private class MasterPingRequestHandler extends BaseTransportRequestHandler { - public static final String ACTION = "discovery/zen/fd/masterPing"; - @Override public MasterPingRequest newInstance() { return new MasterPingRequest(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/fd/NodesFaultDetection.java b/src/main/java/org/elasticsearch/discovery/zen/fd/NodesFaultDetection.java index ee4fc71a04e..6f4e403610c 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/fd/NodesFaultDetection.java +++ b/src/main/java/org/elasticsearch/discovery/zen/fd/NodesFaultDetection.java @@ -44,6 +44,8 @@ import static org.elasticsearch.transport.TransportRequestOptions.options; */ public class NodesFaultDetection extends AbstractComponent { + public static final String PING_ACTION_NAME = "internal:discovery/zen/fd/ping"; + public static interface Listener { void onNodeFailure(DiscoveryNode node, String reason); @@ -89,7 +91,7 @@ public class NodesFaultDetection extends AbstractComponent { logger.debug("[node ] uses ping_interval [{}], ping_timeout [{}], ping_retries [{}]", pingInterval, pingRetryTimeout, pingRetryCount); - transportService.registerHandler(PingRequestHandler.ACTION, new PingRequestHandler()); + transportService.registerHandler(PING_ACTION_NAME, new PingRequestHandler()); this.connectionListener = new FDConnectionListener(); if (registerConnectionListener) { @@ -145,7 +147,7 @@ public class NodesFaultDetection extends AbstractComponent { public void close() { stop(); - transportService.removeHandler(PingRequestHandler.ACTION); + transportService.removeHandler(PING_ACTION_NAME); transportService.removeConnectionListener(connectionListener); } @@ -200,7 +202,7 @@ public class NodesFaultDetection extends AbstractComponent { if (!running) { return; } - transportService.sendRequest(node, PingRequestHandler.ACTION, new PingRequest(node.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), + transportService.sendRequest(node, PING_ACTION_NAME, new PingRequest(node.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), new BaseTransportResponseHandler() { @Override public PingResponse newInstance() { @@ -248,7 +250,7 @@ public class NodesFaultDetection extends AbstractComponent { } } else { // resend the request, not reschedule, rely on send timeout - transportService.sendRequest(node, PingRequestHandler.ACTION, new PingRequest(node.id()), + transportService.sendRequest(node, PING_ACTION_NAME, new PingRequest(node.id()), options().withType(TransportRequestOptions.Type.PING).withTimeout(pingRetryTimeout), this); } } @@ -282,8 +284,6 @@ public class NodesFaultDetection extends AbstractComponent { class PingRequestHandler extends BaseTransportRequestHandler { - public static final String ACTION = "discovery/zen/fd/ping"; - @Override public PingRequest newInstance() { return new PingRequest(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/membership/MembershipAction.java b/src/main/java/org/elasticsearch/discovery/zen/membership/MembershipAction.java index 164db1809fd..9e5279eeb86 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/membership/MembershipAction.java +++ b/src/main/java/org/elasticsearch/discovery/zen/membership/MembershipAction.java @@ -41,6 +41,10 @@ import java.util.concurrent.TimeUnit; */ public class MembershipAction extends AbstractComponent { + public static final String DISCOVERY_JOIN_ACTION_NAME = "internal:discovery/zen/join"; + public static final String DISCOVERY_JOIN_VALIDATE_ACTION_NAME = "internal:discovery/zen/join/validate"; + public static final String DISCOVERY_LEAVE_ACTION_NAME = "internal:discovery/zen/leave"; + public static interface JoinCallback { void onSuccess(); @@ -68,31 +72,31 @@ public class MembershipAction extends AbstractComponent { this.listener = listener; this.clusterService = clusterService; - transportService.registerHandler(JoinRequestRequestHandler.ACTION, new JoinRequestRequestHandler()); - transportService.registerHandler(ValidateJoinRequestRequestHandler.ACTION, new ValidateJoinRequestRequestHandler()); - transportService.registerHandler(LeaveRequestRequestHandler.ACTION, new LeaveRequestRequestHandler()); + transportService.registerHandler(DISCOVERY_JOIN_ACTION_NAME, new JoinRequestRequestHandler()); + transportService.registerHandler(DISCOVERY_JOIN_VALIDATE_ACTION_NAME, new ValidateJoinRequestRequestHandler()); + transportService.registerHandler(DISCOVERY_LEAVE_ACTION_NAME, new LeaveRequestRequestHandler()); } public void close() { - transportService.removeHandler(JoinRequestRequestHandler.ACTION); - transportService.removeHandler(ValidateJoinRequestRequestHandler.ACTION); - transportService.removeHandler(LeaveRequestRequestHandler.ACTION); + transportService.removeHandler(DISCOVERY_JOIN_ACTION_NAME); + transportService.removeHandler(DISCOVERY_JOIN_VALIDATE_ACTION_NAME); + transportService.removeHandler(DISCOVERY_LEAVE_ACTION_NAME); } public void sendLeaveRequest(DiscoveryNode masterNode, DiscoveryNode node) { - transportService.sendRequest(node, LeaveRequestRequestHandler.ACTION, new LeaveRequest(masterNode), EmptyTransportResponseHandler.INSTANCE_SAME); + transportService.sendRequest(node, DISCOVERY_LEAVE_ACTION_NAME, new LeaveRequest(masterNode), EmptyTransportResponseHandler.INSTANCE_SAME); } public void sendLeaveRequestBlocking(DiscoveryNode masterNode, DiscoveryNode node, TimeValue timeout) throws ElasticsearchException { - transportService.submitRequest(masterNode, LeaveRequestRequestHandler.ACTION, new LeaveRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME).txGet(timeout.millis(), TimeUnit.MILLISECONDS); + transportService.submitRequest(masterNode, DISCOVERY_LEAVE_ACTION_NAME, new LeaveRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME).txGet(timeout.millis(), TimeUnit.MILLISECONDS); } public void sendJoinRequest(DiscoveryNode masterNode, DiscoveryNode node) { - transportService.sendRequest(masterNode, JoinRequestRequestHandler.ACTION, new JoinRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME); + transportService.sendRequest(masterNode, DISCOVERY_JOIN_ACTION_NAME, new JoinRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME); } public void sendJoinRequestBlocking(DiscoveryNode masterNode, DiscoveryNode node, TimeValue timeout) throws ElasticsearchException { - transportService.submitRequest(masterNode, JoinRequestRequestHandler.ACTION, new JoinRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME) + transportService.submitRequest(masterNode, DISCOVERY_JOIN_ACTION_NAME, new JoinRequest(node), EmptyTransportResponseHandler.INSTANCE_SAME) .txGet(timeout.millis(), TimeUnit.MILLISECONDS); } @@ -100,7 +104,7 @@ public class MembershipAction extends AbstractComponent { * Validates the join request, throwing a failure if it failed. */ public void sendValidateJoinRequestBlocking(DiscoveryNode node, TimeValue timeout) throws ElasticsearchException { - transportService.submitRequest(node, ValidateJoinRequestRequestHandler.ACTION, new ValidateJoinRequest(), EmptyTransportResponseHandler.INSTANCE_SAME) + transportService.submitRequest(node, DISCOVERY_JOIN_VALIDATE_ACTION_NAME, new ValidateJoinRequest(), EmptyTransportResponseHandler.INSTANCE_SAME) .txGet(timeout.millis(), TimeUnit.MILLISECONDS); } @@ -167,8 +171,6 @@ public class MembershipAction extends AbstractComponent { private class JoinRequestRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/join"; - @Override public JoinRequest newInstance() { return new JoinRequest(); @@ -232,8 +234,6 @@ public class MembershipAction extends AbstractComponent { private class ValidateJoinRequestRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/join/validate"; - @Override public ValidateJoinRequest newInstance() { return new ValidateJoinRequest(); @@ -277,8 +277,6 @@ public class MembershipAction extends AbstractComponent { private class LeaveRequestRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/leave"; - @Override public LeaveRequest newInstance() { return new LeaveRequest(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/ping/multicast/MulticastZenPing.java b/src/main/java/org/elasticsearch/discovery/zen/ping/multicast/MulticastZenPing.java index 31cea10e919..346b0793d1b 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/ping/multicast/MulticastZenPing.java +++ b/src/main/java/org/elasticsearch/discovery/zen/ping/multicast/MulticastZenPing.java @@ -62,6 +62,8 @@ import static org.elasticsearch.common.util.concurrent.ConcurrentCollections.new */ public class MulticastZenPing extends AbstractLifecycleComponent implements ZenPing { + public static final String ACTION_NAME = "internal:discovery/zen/multicast"; + private static final byte[] INTERNAL_HEADER = new byte[]{1, 9, 8, 4}; private final String address; @@ -106,7 +108,7 @@ public class MulticastZenPing extends AbstractLifecycleComponent implem logger.debug("using group [{}], with port [{}], ttl [{}], and address [{}]", group, port, ttl, address); - this.transportService.registerHandler(MulticastPingResponseRequestHandler.ACTION, new MulticastPingResponseRequestHandler()); + this.transportService.registerHandler(ACTION_NAME, new MulticastPingResponseRequestHandler()); } @Override @@ -234,8 +236,6 @@ public class MulticastZenPing extends AbstractLifecycleComponent implem class MulticastPingResponseRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/multicast"; - @Override public MulticastPingResponse newInstance() { return new MulticastPingResponse(); @@ -445,7 +445,7 @@ public class MulticastZenPing extends AbstractLifecycleComponent implem // connect to the node if possible try { transportService.connectToNode(requestingNode); - transportService.sendRequest(requestingNode, MulticastPingResponseRequestHandler.ACTION, multicastPingResponse, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(requestingNode, ACTION_NAME, multicastPingResponse, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { logger.warn("failed to receive confirmation on sent ping response to [{}]", exp, requestingNode); @@ -459,7 +459,7 @@ public class MulticastZenPing extends AbstractLifecycleComponent implem } }); } else { - transportService.sendRequest(requestingNode, MulticastPingResponseRequestHandler.ACTION, multicastPingResponse, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(requestingNode, ACTION_NAME, multicastPingResponse, new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { if (lifecycle.started()) { diff --git a/src/main/java/org/elasticsearch/discovery/zen/ping/unicast/UnicastZenPing.java b/src/main/java/org/elasticsearch/discovery/zen/ping/unicast/UnicastZenPing.java index 825f0a93429..25a43ead8ef 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/ping/unicast/UnicastZenPing.java +++ b/src/main/java/org/elasticsearch/discovery/zen/ping/unicast/UnicastZenPing.java @@ -20,10 +20,7 @@ package org.elasticsearch.discovery.zen.ping.unicast; import com.google.common.collect.Lists; -import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.ElasticsearchIllegalArgumentException; -import org.elasticsearch.ElasticsearchIllegalStateException; -import org.elasticsearch.Version; +import org.elasticsearch.*; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodes; @@ -58,12 +55,13 @@ import static org.elasticsearch.discovery.zen.ping.ZenPing.PingResponse.readPing */ public class UnicastZenPing extends AbstractLifecycleComponent implements ZenPing { + public static final String ACTION_NAME = "internal:discovery/zen/unicast"; + public static final int LIMIT_PORTS_COUNT = 1; private final ThreadPool threadPool; private final TransportService transportService; private final ClusterName clusterName; - private final Version version; private final int concurrentConnects; @@ -85,7 +83,6 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen this.threadPool = threadPool; this.transportService = transportService; this.clusterName = clusterName; - this.version = version; if (unicastHostsProviders != null) { for (UnicastHostsProvider unicastHostsProvider : unicastHostsProviders) { @@ -109,7 +106,7 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen TransportAddress[] addresses = transportService.addressesFromString(host); // we only limit to 1 addresses, makes no sense to ping 100 ports for (int i = 0; (i < addresses.length && i < LIMIT_PORTS_COUNT); i++) { - nodes.add(new DiscoveryNode("#zen_unicast_" + (++idCounter) + "#", addresses[i], version)); + nodes.add(new DiscoveryNode("#zen_unicast_" + (++idCounter) + "#", addresses[i], version.minimumCompatibilityVersion())); } } catch (Exception e) { throw new ElasticsearchIllegalArgumentException("Failed to resolve address for [" + host + "]", e); @@ -117,7 +114,7 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen } this.nodes = nodes.toArray(new DiscoveryNode[nodes.size()]); - transportService.registerHandler(UnicastPingRequestHandler.ACTION, new UnicastPingRequestHandler()); + transportService.registerHandler(ACTION_NAME, new UnicastPingRequestHandler()); } @Override @@ -130,7 +127,7 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen @Override protected void doClose() throws ElasticsearchException { - transportService.removeHandler(UnicastPingRequestHandler.ACTION); + transportService.removeHandler(ACTION_NAME); } public void addHostsProvider(UnicastHostsProvider provider) { @@ -328,9 +325,9 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen } } - private void sendPingRequestToNode(final int id, TimeValue timeout, UnicastPingRequest pingRequest, final CountDownLatch latch, final DiscoveryNode node, final DiscoveryNode nodeToSend) { + private void sendPingRequestToNode(final int id, final TimeValue timeout, final UnicastPingRequest pingRequest, final CountDownLatch latch, final DiscoveryNode node, final DiscoveryNode nodeToSend) { logger.trace("[{}] sending to {}", id, nodeToSend); - transportService.sendRequest(nodeToSend, UnicastPingRequestHandler.ACTION, pingRequest, TransportRequestOptions.options().withTimeout((long) (timeout.millis() * 1.25)), new BaseTransportResponseHandler() { + transportService.sendRequest(nodeToSend, ACTION_NAME, pingRequest, TransportRequestOptions.options().withTimeout((long) (timeout.millis() * 1.25)), new BaseTransportResponseHandler() { @Override public UnicastPingResponse newInstance() { @@ -418,8 +415,6 @@ public class UnicastZenPing extends AbstractLifecycleComponent implemen class UnicastPingRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/unicast"; - @Override public UnicastPingRequest newInstance() { return new UnicastPingRequest(); diff --git a/src/main/java/org/elasticsearch/discovery/zen/publish/PublishClusterStateAction.java b/src/main/java/org/elasticsearch/discovery/zen/publish/PublishClusterStateAction.java index 5ed8133c1d4..554848422ba 100644 --- a/src/main/java/org/elasticsearch/discovery/zen/publish/PublishClusterStateAction.java +++ b/src/main/java/org/elasticsearch/discovery/zen/publish/PublishClusterStateAction.java @@ -45,6 +45,8 @@ import java.util.Map; */ public class PublishClusterStateAction extends AbstractComponent { + public static final String ACTION_NAME = "internal:discovery/zen/publish"; + public static interface NewClusterStateListener { static interface NewStateProcessed { @@ -69,11 +71,11 @@ public class PublishClusterStateAction extends AbstractComponent { this.nodesProvider = nodesProvider; this.listener = listener; this.discoverySettings = discoverySettings; - transportService.registerHandler(PublishClusterStateRequestHandler.ACTION, new PublishClusterStateRequestHandler()); + transportService.registerHandler(ACTION_NAME, new PublishClusterStateRequestHandler()); } public void close() { - transportService.removeHandler(PublishClusterStateRequestHandler.ACTION); + transportService.removeHandler(ACTION_NAME); } public void publish(ClusterState clusterState, final Discovery.AckListener ackListener) { @@ -112,7 +114,7 @@ public class PublishClusterStateAction extends AbstractComponent { TransportRequestOptions options = TransportRequestOptions.options().withType(TransportRequestOptions.Type.STATE).withCompress(false); // no need to put a timeout on the options here, because we want the response to eventually be received // and not log an error if it arrives after the timeout - transportService.sendRequest(node, PublishClusterStateRequestHandler.ACTION, + transportService.sendRequest(node, ACTION_NAME, new BytesTransportRequest(bytes, node.version()), options, // no need to compress, we already compressed the bytes @@ -152,8 +154,6 @@ public class PublishClusterStateAction extends AbstractComponent { private class PublishClusterStateRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "discovery/zen/publish"; - @Override public BytesTransportRequest newInstance() { return new BytesTransportRequest(); diff --git a/src/main/java/org/elasticsearch/gateway/local/state/meta/LocalAllocateDangledIndices.java b/src/main/java/org/elasticsearch/gateway/local/state/meta/LocalAllocateDangledIndices.java index 157a1a67682..7df739e04cd 100644 --- a/src/main/java/org/elasticsearch/gateway/local/state/meta/LocalAllocateDangledIndices.java +++ b/src/main/java/org/elasticsearch/gateway/local/state/meta/LocalAllocateDangledIndices.java @@ -45,6 +45,8 @@ import java.util.Arrays; */ public class LocalAllocateDangledIndices extends AbstractComponent { + public static final String ACTION_NAME = "internal:gateway/local/allocate_dangled"; + private final TransportService transportService; private final ClusterService clusterService; @@ -57,7 +59,7 @@ public class LocalAllocateDangledIndices extends AbstractComponent { this.transportService = transportService; this.clusterService = clusterService; this.allocationService = allocationService; - transportService.registerHandler(AllocateDangledRequestHandler.ACTION, new AllocateDangledRequestHandler()); + transportService.registerHandler(ACTION_NAME, new AllocateDangledRequestHandler()); } public void allocateDangled(IndexMetaData[] indices, final Listener listener) { @@ -68,7 +70,7 @@ public class LocalAllocateDangledIndices extends AbstractComponent { return; } AllocateDangledRequest request = new AllocateDangledRequest(clusterService.localNode(), indices); - transportService.sendRequest(masterNode, AllocateDangledRequestHandler.ACTION, request, new TransportResponseHandler() { + transportService.sendRequest(masterNode, ACTION_NAME, request, new TransportResponseHandler() { @Override public AllocateDangledResponse newInstance() { return new AllocateDangledResponse(); @@ -99,8 +101,6 @@ public class LocalAllocateDangledIndices extends AbstractComponent { class AllocateDangledRequestHandler extends BaseTransportRequestHandler { - public static final String ACTION = "/gateway/local/allocate_dangled"; - @Override public AllocateDangledRequest newInstance() { return new AllocateDangledRequest(); diff --git a/src/main/java/org/elasticsearch/gateway/local/state/meta/TransportNodesListGatewayMetaState.java b/src/main/java/org/elasticsearch/gateway/local/state/meta/TransportNodesListGatewayMetaState.java index c567e86be9e..2cee1e5ed48 100644 --- a/src/main/java/org/elasticsearch/gateway/local/state/meta/TransportNodesListGatewayMetaState.java +++ b/src/main/java/org/elasticsearch/gateway/local/state/meta/TransportNodesListGatewayMetaState.java @@ -47,7 +47,7 @@ import java.util.concurrent.atomic.AtomicReferenceArray; */ public class TransportNodesListGatewayMetaState extends TransportNodesOperationAction { - private static final String ACTION_NAME = "/gateway/local/meta-state"; + public static final String ACTION_NAME = "internal:gateway/local/meta_state"; private LocalGatewayMetaState metaState; diff --git a/src/main/java/org/elasticsearch/gateway/local/state/shards/TransportNodesListGatewayStartedShards.java b/src/main/java/org/elasticsearch/gateway/local/state/shards/TransportNodesListGatewayStartedShards.java index e24ffc87c14..9bc4e964141 100644 --- a/src/main/java/org/elasticsearch/gateway/local/state/shards/TransportNodesListGatewayStartedShards.java +++ b/src/main/java/org/elasticsearch/gateway/local/state/shards/TransportNodesListGatewayStartedShards.java @@ -48,8 +48,7 @@ import java.util.concurrent.atomic.AtomicReferenceArray; */ public class TransportNodesListGatewayStartedShards extends TransportNodesOperationAction { - private static final String ACTION_NAME = "/gateway/local/started-shards"; - + public static final String ACTION_NAME = "internal:gateway/local/started_shards"; private LocalGatewayShardsState shardsState; diff --git a/src/main/java/org/elasticsearch/indices/recovery/RecoverySource.java b/src/main/java/org/elasticsearch/indices/recovery/RecoverySource.java index 6f725f28d70..ca534f37def 100644 --- a/src/main/java/org/elasticsearch/indices/recovery/RecoverySource.java +++ b/src/main/java/org/elasticsearch/indices/recovery/RecoverySource.java @@ -72,7 +72,7 @@ import java.util.concurrent.atomic.AtomicReference; public class RecoverySource extends AbstractComponent { public static class Actions { - public static final String START_RECOVERY = "index/shard/recovery/startRecovery"; + public static final String START_RECOVERY = "internal:index/shard/recovery/start_recovery"; } private final TransportService transportService; diff --git a/src/main/java/org/elasticsearch/indices/recovery/RecoveryTarget.java b/src/main/java/org/elasticsearch/indices/recovery/RecoveryTarget.java index b7b2aa5e22e..9712eef1e92 100644 --- a/src/main/java/org/elasticsearch/indices/recovery/RecoveryTarget.java +++ b/src/main/java/org/elasticsearch/indices/recovery/RecoveryTarget.java @@ -65,12 +65,12 @@ import static org.elasticsearch.common.unit.TimeValue.timeValueMillis; public class RecoveryTarget extends AbstractComponent { public static class Actions { - public static final String FILES_INFO = "index/shard/recovery/filesInfo"; - public static final String FILE_CHUNK = "index/shard/recovery/fileChunk"; - public static final String CLEAN_FILES = "index/shard/recovery/cleanFiles"; - public static final String TRANSLOG_OPS = "index/shard/recovery/translogOps"; - public static final String PREPARE_TRANSLOG = "index/shard/recovery/prepareTranslog"; - public static final String FINALIZE = "index/shard/recovery/finalize"; + public static final String FILES_INFO = "internal:index/shard/recovery/filesInfo"; + public static final String FILE_CHUNK = "internal:index/shard/recovery/file_chunk"; + public static final String CLEAN_FILES = "internal:index/shard/recovery/clean_files"; + public static final String TRANSLOG_OPS = "internal:index/shard/recovery/translog_ops"; + public static final String PREPARE_TRANSLOG = "internal:index/shard/recovery/prepare_translog"; + public static final String FINALIZE = "internal:index/shard/recovery/finalize"; } private final ThreadPool threadPool; diff --git a/src/main/java/org/elasticsearch/indices/store/IndicesStore.java b/src/main/java/org/elasticsearch/indices/store/IndicesStore.java index cb7174a6b06..02420d0e3d5 100644 --- a/src/main/java/org/elasticsearch/indices/store/IndicesStore.java +++ b/src/main/java/org/elasticsearch/indices/store/IndicesStore.java @@ -61,7 +61,8 @@ public class IndicesStore extends AbstractComponent implements ClusterStateListe public static final String INDICES_STORE_THROTTLE_TYPE = "indices.store.throttle.type"; public static final String INDICES_STORE_THROTTLE_MAX_BYTES_PER_SEC = "indices.store.throttle.max_bytes_per_sec"; - private static final String ACTION_SHARD_EXISTS = "index/shard/exists"; + public static final String ACTION_SHARD_EXISTS = "internal:index/shard/exists"; + private static final EnumSet ACTIVE_STATES = EnumSet.of(IndexShardState.STARTED, IndexShardState.RELOCATED); class ApplySettings implements NodeSettingsService.Listener { diff --git a/src/main/java/org/elasticsearch/indices/store/TransportNodesListShardStoreMetaData.java b/src/main/java/org/elasticsearch/indices/store/TransportNodesListShardStoreMetaData.java index 522ce0b444b..d394786fe7f 100644 --- a/src/main/java/org/elasticsearch/indices/store/TransportNodesListShardStoreMetaData.java +++ b/src/main/java/org/elasticsearch/indices/store/TransportNodesListShardStoreMetaData.java @@ -61,7 +61,7 @@ import java.util.concurrent.atomic.AtomicReferenceArray; */ public class TransportNodesListShardStoreMetaData extends TransportNodesOperationAction { - private static final String ACTION_NAME = "/cluster/nodes/indices/shard/store"; + public static final String ACTION_NAME = "internal:cluster/nodes/indices/shard/store"; private final IndicesService indicesService; diff --git a/src/main/java/org/elasticsearch/river/cluster/PublishRiverClusterStateAction.java b/src/main/java/org/elasticsearch/river/cluster/PublishRiverClusterStateAction.java index 29315399213..0b39d50d4bf 100644 --- a/src/main/java/org/elasticsearch/river/cluster/PublishRiverClusterStateAction.java +++ b/src/main/java/org/elasticsearch/river/cluster/PublishRiverClusterStateAction.java @@ -36,6 +36,8 @@ import java.io.IOException; */ public class PublishRiverClusterStateAction extends AbstractComponent { + public static final String ACTION_NAME = "internal:river/state/publish"; + public static interface NewClusterStateListener { void onNewClusterState(RiverClusterState clusterState); } @@ -52,11 +54,11 @@ public class PublishRiverClusterStateAction extends AbstractComponent { this.transportService = transportService; this.clusterService = clusterService; this.listener = listener; - transportService.registerHandler(PublishClusterStateRequestHandler.ACTION, new PublishClusterStateRequestHandler()); + transportService.registerHandler(ACTION_NAME, new PublishClusterStateRequestHandler()); } public void close() { - transportService.removeHandler(PublishClusterStateRequestHandler.ACTION); + transportService.removeHandler(ACTION_NAME); } public void publish(RiverClusterState clusterState) { @@ -76,7 +78,7 @@ public class PublishRiverClusterStateAction extends AbstractComponent { continue; } - transportService.sendRequest(node, PublishClusterStateRequestHandler.ACTION, new PublishClusterStateRequest(clusterState), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { + transportService.sendRequest(node, ACTION_NAME, new PublishClusterStateRequest(clusterState), new EmptyTransportResponseHandler(ThreadPool.Names.SAME) { @Override public void handleException(TransportException exp) { logger.debug("failed to send cluster state to [{}], should be detected as failed soon...", exp, node); @@ -111,8 +113,6 @@ public class PublishRiverClusterStateAction extends AbstractComponent { private class PublishClusterStateRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "river/state/publish"; - @Override public PublishClusterStateRequest newInstance() { return new PublishClusterStateRequest(); diff --git a/src/main/java/org/elasticsearch/search/action/SearchServiceTransportAction.java b/src/main/java/org/elasticsearch/search/action/SearchServiceTransportAction.java index 44f87e417c8..602e4ecc3d9 100644 --- a/src/main/java/org/elasticsearch/search/action/SearchServiceTransportAction.java +++ b/src/main/java/org/elasticsearch/search/action/SearchServiceTransportAction.java @@ -53,6 +53,19 @@ import java.util.concurrent.Callable; */ public class SearchServiceTransportAction extends AbstractComponent { + public static final String FREE_CONTEXT_ACTION_NAME = "indices:data/read/search[free_context]"; + public static final String CLEAR_SCROLL_CONTEXTS_ACTION_NAME = "indices:data/read/search[clear_scroll_contexts]"; + public static final String DFS_ACTION_NAME = "indices:data/read/search[phase/dfs]"; + public static final String QUERY_ACTION_NAME = "indices:data/read/search[phase/query]"; + public static final String QUERY_ID_ACTION_NAME = "indices:data/read/search[phase/query/id]"; + public static final String QUERY_SCROLL_ACTION_NAME = "indices:data/read/search[phase/query/scroll]"; + public static final String QUERY_FETCH_ACTION_NAME = "indices:data/read/search[phase/query+fetch]"; + public static final String QUERY_QUERY_FETCH_ACTION_NAME = "indices:data/read/search[phase/query/query+fetch]"; + public static final String QUERY_FETCH_SCROLL_ACTION_NAME = "indices:data/read/search[phase/query+fetch/scroll]"; + public static final String FETCH_ID_ACTION_NAME = "indices:data/read/search[phase/fetch/id]"; + public static final String SCAN_ACTION_NAME = "indices:data/read/search[phase/scan]"; + public static final String SCAN_SCROLL_ACTION_NAME = "indices:data/read/search[phase/scan/scroll]"; + static final class FreeContextResponseHandler implements TransportResponseHandler { private final ActionListener listener; @@ -104,25 +117,25 @@ public class SearchServiceTransportAction extends AbstractComponent { this.clusterService = clusterService; this.searchService = searchService; - transportService.registerHandler(SearchFreeContextTransportHandler.ACTION, new SearchFreeContextTransportHandler()); - transportService.registerHandler(ClearScrollContextsTransportHandler.ACTION, new ClearScrollContextsTransportHandler()); - transportService.registerHandler(SearchDfsTransportHandler.ACTION, new SearchDfsTransportHandler()); - transportService.registerHandler(SearchQueryTransportHandler.ACTION, new SearchQueryTransportHandler()); - transportService.registerHandler(SearchQueryByIdTransportHandler.ACTION, new SearchQueryByIdTransportHandler()); - transportService.registerHandler(SearchQueryScrollTransportHandler.ACTION, new SearchQueryScrollTransportHandler()); - transportService.registerHandler(SearchQueryFetchTransportHandler.ACTION, new SearchQueryFetchTransportHandler()); - transportService.registerHandler(SearchQueryQueryFetchTransportHandler.ACTION, new SearchQueryQueryFetchTransportHandler()); - transportService.registerHandler(SearchQueryFetchScrollTransportHandler.ACTION, new SearchQueryFetchScrollTransportHandler()); - transportService.registerHandler(SearchFetchByIdTransportHandler.ACTION, new SearchFetchByIdTransportHandler()); - transportService.registerHandler(SearchScanTransportHandler.ACTION, new SearchScanTransportHandler()); - transportService.registerHandler(SearchScanScrollTransportHandler.ACTION, new SearchScanScrollTransportHandler()); + transportService.registerHandler(FREE_CONTEXT_ACTION_NAME, new SearchFreeContextTransportHandler()); + transportService.registerHandler(CLEAR_SCROLL_CONTEXTS_ACTION_NAME, new ClearScrollContextsTransportHandler()); + transportService.registerHandler(DFS_ACTION_NAME, new SearchDfsTransportHandler()); + transportService.registerHandler(QUERY_ACTION_NAME, new SearchQueryTransportHandler()); + transportService.registerHandler(QUERY_ID_ACTION_NAME, new SearchQueryByIdTransportHandler()); + transportService.registerHandler(QUERY_SCROLL_ACTION_NAME, new SearchQueryScrollTransportHandler()); + transportService.registerHandler(QUERY_FETCH_ACTION_NAME, new SearchQueryFetchTransportHandler()); + transportService.registerHandler(QUERY_QUERY_FETCH_ACTION_NAME, new SearchQueryQueryFetchTransportHandler()); + transportService.registerHandler(QUERY_FETCH_SCROLL_ACTION_NAME, new SearchQueryFetchScrollTransportHandler()); + transportService.registerHandler(FETCH_ID_ACTION_NAME, new SearchFetchByIdTransportHandler()); + transportService.registerHandler(SCAN_ACTION_NAME, new SearchScanTransportHandler()); + transportService.registerHandler(SCAN_SCROLL_ACTION_NAME, new SearchScanScrollTransportHandler()); } public void sendFreeContext(DiscoveryNode node, final long contextId, SearchRequest request) { if (clusterService.state().nodes().localNodeId().equals(node.id())) { searchService.freeContext(contextId); } else { - transportService.sendRequest(node, SearchFreeContextTransportHandler.ACTION, new SearchFreeContextRequest(request, contextId), freeContextResponseHandler); + transportService.sendRequest(node, FREE_CONTEXT_ACTION_NAME, new SearchFreeContextRequest(request, contextId), freeContextResponseHandler); } } @@ -131,7 +144,7 @@ public class SearchServiceTransportAction extends AbstractComponent { boolean freed = searchService.freeContext(contextId); actionListener.onResponse(freed); } else { - transportService.sendRequest(node, SearchFreeContextTransportHandler.ACTION, new SearchFreeContextRequest(request, contextId), new FreeContextResponseHandler(actionListener)); + transportService.sendRequest(node, FREE_CONTEXT_ACTION_NAME, new SearchFreeContextRequest(request, contextId), new FreeContextResponseHandler(actionListener)); } } @@ -140,7 +153,7 @@ public class SearchServiceTransportAction extends AbstractComponent { searchService.freeAllScrollContexts(); actionListener.onResponse(true); } else { - transportService.sendRequest(node, ClearScrollContextsTransportHandler.ACTION, new ClearScrollContextsRequest(request), new TransportResponseHandler() { + transportService.sendRequest(node, CLEAR_SCROLL_CONTEXTS_ACTION_NAME, new ClearScrollContextsRequest(request), new TransportResponseHandler() { @Override public TransportResponse newInstance() { return TransportResponse.Empty.INSTANCE; @@ -173,7 +186,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchDfsTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, DFS_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public DfsSearchResult newInstance() { @@ -207,7 +220,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public QuerySearchResult newInstance() { @@ -241,7 +254,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryByIdTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_ID_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public QuerySearchResult newInstance() { @@ -275,7 +288,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryScrollTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_SCROLL_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public ScrollQuerySearchResult newInstance() { @@ -309,7 +322,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryFetchTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_FETCH_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public QueryFetchSearchResult newInstance() { @@ -343,7 +356,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryQueryFetchTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_QUERY_FETCH_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public QueryFetchSearchResult newInstance() { @@ -377,7 +390,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchQueryFetchScrollTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, QUERY_FETCH_SCROLL_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public ScrollQueryFetchSearchResult newInstance() { @@ -411,7 +424,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchFetchByIdTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, FETCH_ID_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public FetchSearchResult newInstance() { @@ -445,7 +458,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchScanTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, SCAN_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public QuerySearchResult newInstance() { @@ -479,7 +492,7 @@ public class SearchServiceTransportAction extends AbstractComponent { } }, listener); } else { - transportService.sendRequest(node, SearchScanScrollTransportHandler.ACTION, request, new BaseTransportResponseHandler() { + transportService.sendRequest(node, SCAN_SCROLL_ACTION_NAME, request, new BaseTransportResponseHandler() { @Override public ScrollQueryFetchSearchResult newInstance() { @@ -598,8 +611,6 @@ public class SearchServiceTransportAction extends AbstractComponent { class SearchFreeContextTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/freeContext"; - @Override public SearchFreeContextRequest newInstance() { return new SearchFreeContextRequest(); @@ -632,8 +643,6 @@ public class SearchServiceTransportAction extends AbstractComponent { class ClearScrollContextsTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/clearScrollContexts"; - @Override public ClearScrollContextsRequest newInstance() { return new ClearScrollContextsRequest(); @@ -655,8 +664,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchDfsTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/dfs"; - @Override public ShardSearchRequest newInstance() { return new ShardSearchRequest(); @@ -676,8 +683,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query"; - @Override public ShardSearchRequest newInstance() { return new ShardSearchRequest(); @@ -697,8 +702,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryByIdTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query/id"; - @Override public QuerySearchRequest newInstance() { return new QuerySearchRequest(); @@ -718,8 +721,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryScrollTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query/scroll"; - @Override public InternalScrollSearchRequest newInstance() { return new InternalScrollSearchRequest(); @@ -739,8 +740,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryFetchTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query+fetch"; - @Override public ShardSearchRequest newInstance() { return new ShardSearchRequest(); @@ -760,8 +759,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryQueryFetchTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query/query+fetch"; - @Override public QuerySearchRequest newInstance() { return new QuerySearchRequest(); @@ -781,8 +778,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchFetchByIdTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/fetch/id"; - @Override public FetchSearchRequest newInstance() { return new FetchSearchRequest(); @@ -802,8 +797,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchQueryFetchScrollTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/query+fetch/scroll"; - @Override public InternalScrollSearchRequest newInstance() { return new InternalScrollSearchRequest(); @@ -823,8 +816,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchScanTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/scan"; - @Override public ShardSearchRequest newInstance() { return new ShardSearchRequest(); @@ -844,8 +835,6 @@ public class SearchServiceTransportAction extends AbstractComponent { private class SearchScanScrollTransportHandler extends BaseTransportRequestHandler { - static final String ACTION = "search/phase/scan/scroll"; - @Override public InternalScrollSearchRequest newInstance() { return new InternalScrollSearchRequest(); diff --git a/src/main/java/org/elasticsearch/snapshots/RestoreService.java b/src/main/java/org/elasticsearch/snapshots/RestoreService.java index 9b02bd1ec48..aaba177827f 100644 --- a/src/main/java/org/elasticsearch/snapshots/RestoreService.java +++ b/src/main/java/org/elasticsearch/snapshots/RestoreService.java @@ -80,6 +80,8 @@ import static org.elasticsearch.cluster.metadata.MetaDataIndexStateService.INDEX */ public class RestoreService extends AbstractComponent implements ClusterStateListener { + public static final String UPDATE_RESTORE_ACTION_NAME = "internal:cluster/snapshot/update_restore"; + private final ClusterService clusterService; private final RepositoriesService repositoriesService; @@ -100,7 +102,7 @@ public class RestoreService extends AbstractComponent implements ClusterStateLis this.transportService = transportService; this.allocationService = allocationService; this.createIndexService = createIndexService; - transportService.registerHandler(UpdateRestoreStateRequestHandler.ACTION, new UpdateRestoreStateRequestHandler()); + transportService.registerHandler(UPDATE_RESTORE_ACTION_NAME, new UpdateRestoreStateRequestHandler()); clusterService.add(this); } @@ -322,7 +324,7 @@ public class RestoreService extends AbstractComponent implements ClusterStateLis innerUpdateRestoreState(request); } else { transportService.sendRequest(clusterService.state().nodes().masterNode(), - UpdateRestoreStateRequestHandler.ACTION, request, EmptyTransportResponseHandler.INSTANCE_SAME); + UPDATE_RESTORE_ACTION_NAME, request, EmptyTransportResponseHandler.INSTANCE_SAME); } } @@ -488,7 +490,7 @@ public class RestoreService extends AbstractComponent implements ClusterStateLis innerUpdateRestoreState(request); } else { transportService.sendRequest(clusterService.state().nodes().masterNode(), - UpdateRestoreStateRequestHandler.ACTION, request, EmptyTransportResponseHandler.INSTANCE_SAME); + UPDATE_RESTORE_ACTION_NAME, request, EmptyTransportResponseHandler.INSTANCE_SAME); } } @@ -814,8 +816,6 @@ public class RestoreService extends AbstractComponent implements ClusterStateLis */ private class UpdateRestoreStateRequestHandler extends BaseTransportRequestHandler { - static final String ACTION = "cluster/snapshot/update_restore"; - @Override public UpdateIndexShardRestoreStatusRequest newInstance() { return new UpdateIndexShardRestoreStatusRequest(); diff --git a/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java b/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java index c3fc6f3dc0d..98cf72c9197 100644 --- a/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java +++ b/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java @@ -87,6 +87,8 @@ import static com.google.common.collect.Sets.newHashSet; */ public class SnapshotsService extends AbstractLifecycleComponent implements ClusterStateListener { + public static final String UPDATE_SNAPSHOT_ACTION_NAME = "internal:cluster/snapshot/update_snapshot"; + private final ClusterService clusterService; private final RepositoriesService repositoriesService; @@ -116,7 +118,7 @@ public class SnapshotsService extends AbstractLifecycleComponent { - static final String ACTION = "cluster/snapshot/update_snapshot"; - @Override public UpdateIndexShardSnapshotStatusRequest newInstance() { return new UpdateIndexShardSnapshotStatusRequest(); diff --git a/src/main/java/org/elasticsearch/transport/ActionNames.java b/src/main/java/org/elasticsearch/transport/ActionNames.java new file mode 100644 index 00000000000..1882418dc27 --- /dev/null +++ b/src/main/java/org/elasticsearch/transport/ActionNames.java @@ -0,0 +1,344 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.transport; + +import com.google.common.collect.ImmutableBiMap; +import org.elasticsearch.Version; +import org.elasticsearch.action.admin.cluster.health.ClusterHealthAction; +import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsAction; +import org.elasticsearch.action.admin.cluster.node.info.NodesInfoAction; +import org.elasticsearch.action.admin.cluster.node.restart.NodesRestartAction; +import org.elasticsearch.action.admin.cluster.node.shutdown.NodesShutdownAction; +import org.elasticsearch.action.admin.cluster.node.shutdown.TransportNodesShutdownAction; +import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsAction; +import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryAction; +import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesAction; +import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryAction; +import org.elasticsearch.action.admin.cluster.reroute.ClusterRerouteAction; +import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsAction; +import org.elasticsearch.action.admin.cluster.shards.ClusterSearchShardsAction; +import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotAction; +import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotAction; +import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsAction; +import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotAction; +import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusAction; +import org.elasticsearch.action.admin.cluster.snapshots.status.TransportNodesSnapshotsStatus; +import org.elasticsearch.action.admin.cluster.state.ClusterStateAction; +import org.elasticsearch.action.admin.cluster.stats.ClusterStatsAction; +import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksAction; +import org.elasticsearch.action.admin.indices.alias.IndicesAliasesAction; +import org.elasticsearch.action.admin.indices.alias.exists.AliasesExistAction; +import org.elasticsearch.action.admin.indices.alias.get.GetAliasesAction; +import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; +import org.elasticsearch.action.admin.indices.cache.clear.ClearIndicesCacheAction; +import org.elasticsearch.action.admin.indices.close.CloseIndexAction; +import org.elasticsearch.action.admin.indices.create.CreateIndexAction; +import org.elasticsearch.action.admin.indices.delete.DeleteIndexAction; +import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsAction; +import org.elasticsearch.action.admin.indices.exists.types.TypesExistsAction; +import org.elasticsearch.action.admin.indices.flush.FlushAction; +import org.elasticsearch.action.admin.indices.mapping.delete.DeleteMappingAction; +import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsAction; +import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsAction; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingAction; +import org.elasticsearch.action.admin.indices.open.OpenIndexAction; +import org.elasticsearch.action.admin.indices.optimize.OptimizeAction; +import org.elasticsearch.action.admin.indices.recovery.RecoveryAction; +import org.elasticsearch.action.admin.indices.refresh.RefreshAction; +import org.elasticsearch.action.admin.indices.segments.IndicesSegmentsAction; +import org.elasticsearch.action.admin.indices.settings.get.GetSettingsAction; +import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsAction; +import org.elasticsearch.action.admin.indices.stats.IndicesStatsAction; +import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateAction; +import org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesAction; +import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateAction; +import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryAction; +import org.elasticsearch.action.admin.indices.warmer.delete.DeleteWarmerAction; +import org.elasticsearch.action.admin.indices.warmer.get.GetWarmersAction; +import org.elasticsearch.action.admin.indices.warmer.put.PutWarmerAction; +import org.elasticsearch.action.bulk.BulkAction; +import org.elasticsearch.action.count.CountAction; +import org.elasticsearch.action.delete.DeleteAction; +import org.elasticsearch.action.deletebyquery.DeleteByQueryAction; +import org.elasticsearch.action.explain.ExplainAction; +import org.elasticsearch.action.get.GetAction; +import org.elasticsearch.action.get.MultiGetAction; +import org.elasticsearch.action.index.IndexAction; +import org.elasticsearch.action.indexedscripts.delete.DeleteIndexedScriptAction; +import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptAction; +import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptAction; +import org.elasticsearch.action.mlt.MoreLikeThisAction; +import org.elasticsearch.action.percolate.MultiPercolateAction; +import org.elasticsearch.action.percolate.PercolateAction; +import org.elasticsearch.action.search.ClearScrollAction; +import org.elasticsearch.action.search.MultiSearchAction; +import org.elasticsearch.action.search.SearchAction; +import org.elasticsearch.action.search.SearchScrollAction; +import org.elasticsearch.action.suggest.SuggestAction; +import org.elasticsearch.action.termvector.MultiTermVectorsAction; +import org.elasticsearch.action.termvector.TermVectorAction; +import org.elasticsearch.action.update.UpdateAction; +import org.elasticsearch.cluster.action.index.MappingUpdatedAction; +import org.elasticsearch.cluster.action.index.NodeIndexDeletedAction; +import org.elasticsearch.cluster.action.index.NodeMappingRefreshAction; +import org.elasticsearch.cluster.action.shard.ShardStateAction; +import org.elasticsearch.discovery.zen.ZenDiscovery; +import org.elasticsearch.discovery.zen.fd.MasterFaultDetection; +import org.elasticsearch.discovery.zen.fd.NodesFaultDetection; +import org.elasticsearch.discovery.zen.membership.MembershipAction; +import org.elasticsearch.discovery.zen.ping.multicast.MulticastZenPing; +import org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing; +import org.elasticsearch.discovery.zen.publish.PublishClusterStateAction; +import org.elasticsearch.gateway.local.state.meta.LocalAllocateDangledIndices; +import org.elasticsearch.gateway.local.state.meta.TransportNodesListGatewayMetaState; +import org.elasticsearch.gateway.local.state.shards.TransportNodesListGatewayStartedShards; +import org.elasticsearch.indices.recovery.RecoverySource; +import org.elasticsearch.indices.recovery.RecoveryTarget; +import org.elasticsearch.indices.store.IndicesStore; +import org.elasticsearch.indices.store.TransportNodesListShardStoreMetaData; +import org.elasticsearch.river.cluster.PublishRiverClusterStateAction; +import org.elasticsearch.search.action.SearchServiceTransportAction; +import org.elasticsearch.snapshots.RestoreService; +import org.elasticsearch.snapshots.SnapshotsService; + +final class ActionNames { + + static final ImmutableBiMap ACTION_NAMES = createActionNamesMap(); + + private ActionNames() { + + } + + static String incomingAction(String action, Version version) { + if (version.before(Version.V_1_4_0)) { + String post_1_4_action = post_1_4_action(action); + //custom action e.g. registered through plugin are not mapped, fallback to the original one + if (post_1_4_action != null) { + return post_1_4_action; + } + } + return action; + } + + static String outgoingAction(String action, Version version) { + if (version.before(Version.V_1_4_0)) { + String pre_1_4_Action = pre_1_4_Action(action); + //custom actions e.g. registered through plugins are not mapped, fallback to the original one + if (pre_1_4_Action != null) { + return pre_1_4_Action; + } + } + return action; + } + + static String post_1_4_action(String action) { + return ACTION_NAMES.inverse().get(action); + } + + static String pre_1_4_Action(String action) { + return ACTION_NAMES.get(action); + } + + private static ImmutableBiMap createActionNamesMap() { + ImmutableBiMap.Builder builder = ImmutableBiMap.builder(); + + addNodeAction(NodesRestartAction.NAME, "cluster/nodes/restart", builder); + builder.put(NodesShutdownAction.NAME, "cluster/nodes/shutdown"); + builder.put(TransportNodesShutdownAction.SHUTDOWN_NODE_ACTION_NAME, "/cluster/nodes/shutdown/node"); + + builder.put(DeleteRepositoryAction.NAME, "cluster/repository/delete"); + builder.put(GetRepositoriesAction.NAME, "cluster/repository/get"); + builder.put(PutRepositoryAction.NAME, "cluster/repository/put"); + + builder.put(ClusterRerouteAction.NAME, "cluster/reroute"); + + builder.put(ClusterUpdateSettingsAction.NAME, "cluster/settings/update"); + + builder.put(CreateSnapshotAction.NAME, "cluster/snapshot/create"); + builder.put(DeleteSnapshotAction.NAME, "cluster/snapshot/delete"); + builder.put(GetSnapshotsAction.NAME, "cluster/snapshot/get"); + builder.put(RestoreSnapshotAction.NAME, "cluster/snapshot/restore"); + + builder.put(ClusterHealthAction.NAME, "cluster/health"); + addNodeAction(NodesHotThreadsAction.NAME, "cluster/nodes/hot_threads", builder); + addNodeAction(NodesInfoAction.NAME, "cluster/nodes/info", builder); + addNodeAction(NodesStatsAction.NAME, "cluster/nodes/stats", builder); + + builder.put(SnapshotsStatusAction.NAME, "cluster/snapshot/status"); + addNodeAction(TransportNodesSnapshotsStatus.ACTION_NAME, "cluster/snapshot/status/nodes", builder); + + builder.put(ClusterStateAction.NAME, "cluster/state"); + addNodeAction(ClusterStatsAction.NAME, "cluster/stats", builder); + + builder.put(PendingClusterTasksAction.NAME, "cluster/task"); + + builder.put(IndicesAliasesAction.NAME, "indices/aliases"); + builder.put(AliasesExistAction.NAME, "indices/exists/aliases"); + builder.put(GetAliasesAction.NAME, "indices/get/aliases"); + + addShardAction(AnalyzeAction.NAME, "indices/analyze", builder); + addShardAction(ClearIndicesCacheAction.NAME, "indices/cache/clear", builder); + + builder.put(CloseIndexAction.NAME, "indices/close"); + builder.put(CreateIndexAction.NAME, "indices/create"); + builder.put(DeleteIndexAction.NAME, "indices/delete"); + builder.put(IndicesExistsAction.NAME, "indices/exists"); + addShardAction(FlushAction.NAME, "indices/flush", builder); + + builder.put(DeleteMappingAction.NAME, "indices/mapping/delete"); + builder.put(PutMappingAction.NAME, "indices/mapping/put"); + builder.put(GetFieldMappingsAction.NAME, "mappings/fields/get"); + builder.put(GetFieldMappingsAction.NAME + "[index]", "mappings/fields/get/index"); + builder.put(GetFieldMappingsAction.NAME + "[index][s]", "mappings/fields/get/index/s"); + builder.put(GetMappingsAction.NAME, "mappings/get"); + + builder.put(OpenIndexAction.NAME, "indices/open"); + + addShardAction(OptimizeAction.NAME, "indices/optimize", builder); + addShardAction(RefreshAction.NAME, "indices/refresh", builder); + builder.put(UpdateSettingsAction.NAME, "indices/settings/update"); + builder.put(ClusterSearchShardsAction.NAME, "cluster/shards/search_shards"); + + builder.put(DeleteIndexTemplateAction.NAME, "indices/template/delete"); + builder.put(GetIndexTemplatesAction.NAME, "indices/template/get"); + builder.put(PutIndexTemplateAction.NAME, "indices/template/put"); + + builder.put(TypesExistsAction.NAME, "indices/types/exists"); + addShardAction(ValidateQueryAction.NAME, "indices/validate/query", builder); + + builder.put(DeleteWarmerAction.NAME, "indices/warmer/delete"); + builder.put(GetWarmersAction.NAME, "warmers/get"); + builder.put(PutWarmerAction.NAME, "indices/warmer/put"); + + addShardAction(CountAction.NAME, "count", builder); + addShardAction(ExplainAction.NAME, "explain", builder); + addShardAction(GetAction.NAME, "get", builder); + builder.put(MultiGetAction.NAME, "mget"); + addShardAction(MultiGetAction.NAME + "[shard]", "mget/shard", builder); + + builder.put(GetIndexedScriptAction.NAME, "getIndexedScript"); + builder.put(PutIndexedScriptAction.NAME, "putIndexedScript"); + builder.put(DeleteIndexedScriptAction.NAME, "deleteIndexedScript"); + + builder.put(MoreLikeThisAction.NAME, "mlt"); + + builder.put(MultiPercolateAction.NAME, "mpercolate"); + addShardAction(MultiPercolateAction.NAME + "[shard]", "mpercolate/shard", builder); + + builder.put(MultiSearchAction.NAME, "msearch"); + + builder.put(MultiTermVectorsAction.NAME, "mtv"); + addShardAction(MultiTermVectorsAction.NAME + "[shard]", "mtv/shard", builder); + + addShardAction(PercolateAction.NAME, "percolate", builder); + + builder.put(SearchScrollAction.NAME, "search/scroll"); + builder.put(ClearScrollAction.NAME, "clear_sc"); + + builder.put(SearchAction.NAME, "search"); + builder.put(SearchServiceTransportAction.FREE_CONTEXT_ACTION_NAME, "search/freeContext"); + builder.put(SearchServiceTransportAction.CLEAR_SCROLL_CONTEXTS_ACTION_NAME, "search/clearScrollContexts"); + builder.put(SearchServiceTransportAction.DFS_ACTION_NAME, "search/phase/dfs"); + builder.put(SearchServiceTransportAction.QUERY_ACTION_NAME, "search/phase/query"); + builder.put(SearchServiceTransportAction.QUERY_ID_ACTION_NAME, "search/phase/query/id"); + builder.put(SearchServiceTransportAction.QUERY_SCROLL_ACTION_NAME, "search/phase/query/scroll"); + builder.put(SearchServiceTransportAction.QUERY_FETCH_ACTION_NAME, "search/phase/query+fetch"); + builder.put(SearchServiceTransportAction.QUERY_QUERY_FETCH_ACTION_NAME, "search/phase/query/query+fetch"); + builder.put(SearchServiceTransportAction.QUERY_FETCH_SCROLL_ACTION_NAME, "search/phase/query+fetch/scroll"); + builder.put(SearchServiceTransportAction.FETCH_ID_ACTION_NAME, "search/phase/fetch/id"); + builder.put(SearchServiceTransportAction.SCAN_ACTION_NAME, "search/phase/scan"); + builder.put(SearchServiceTransportAction.SCAN_SCROLL_ACTION_NAME, "search/phase/scan/scroll"); + + addShardAction(SuggestAction.NAME, "suggest", builder); + addShardAction(TermVectorAction.NAME, "tv", builder); + + builder.put(BulkAction.NAME, "bulk"); + builder.put(BulkAction.NAME + "[s]", "bulk/shard"); + builder.put(BulkAction.NAME + "[s][r]", "bulk/shard/replica"); + + builder.put(DeleteAction.NAME, "delete"); + builder.put(DeleteAction.NAME + "[r]", "delete/replica"); + builder.put(DeleteAction.NAME + "[index]", "indices/index/delete"); + builder.put(DeleteAction.NAME + "[s]", "indices/index/b_shard/delete"); + builder.put(DeleteAction.NAME + "[s][r]", "indices/index/b_shard/delete/replica"); + + builder.put(DeleteByQueryAction.NAME, "deleteByQuery"); + builder.put(DeleteByQueryAction.NAME + "[index]", "deleteByQuery/index"); + builder.put(DeleteByQueryAction.NAME + "[s]", "deleteByQuery/shard"); + builder.put(DeleteByQueryAction.NAME + "[s][r]", "deleteByQuery/shard/replica"); + + builder.put(IndexAction.NAME, "index"); + builder.put(IndexAction.NAME + "[r]", "index/replica"); + + builder.put(UpdateAction.NAME, "update"); + + addShardAction(RecoveryAction.NAME, "indices/recovery", builder); + addShardAction(IndicesSegmentsAction.NAME, "indices/segments", builder); + addShardAction(IndicesStatsAction.NAME, "indices/stats", builder); + + builder.put(GetSettingsAction.NAME, "indices/settings/get"); + + builder.put(MappingUpdatedAction.ACTION_NAME, "cluster/mappingUpdated"); + builder.put(NodeIndexDeletedAction.INDEX_DELETED_ACTION_NAME, "cluster/nodeIndexDeleted"); + builder.put(NodeIndexDeletedAction.INDEX_STORE_DELETED_ACTION_NAME, "cluster/nodeIndexStoreDeleted"); + builder.put(NodeMappingRefreshAction.ACTION_NAME, "cluster/nodeMappingRefresh"); + addNodeAction(TransportNodesListShardStoreMetaData.ACTION_NAME, "/cluster/nodes/indices/shard/store", builder); + builder.put(ShardStateAction.SHARD_STARTED_ACTION_NAME, "cluster/shardStarted"); + builder.put(ShardStateAction.SHARD_FAILED_ACTION_NAME, "cluster/shardFailure"); + builder.put(RestoreService.UPDATE_RESTORE_ACTION_NAME, "cluster/snapshot/update_restore"); + builder.put(SnapshotsService.UPDATE_SNAPSHOT_ACTION_NAME, "cluster/snapshot/update_snapshot"); + builder.put(MasterFaultDetection.MASTER_PING_ACTION_NAME, "discovery/zen/fd/masterPing"); + builder.put(NodesFaultDetection.PING_ACTION_NAME, "discovery/zen/fd/ping"); + builder.put(MembershipAction.DISCOVERY_JOIN_ACTION_NAME, "discovery/zen/join"); + builder.put(ZenDiscovery.DISCOVERY_REJOIN_ACTION_NAME, "discovery/zen/rejoin"); + builder.put(MembershipAction.DISCOVERY_JOIN_VALIDATE_ACTION_NAME, "discovery/zen/join/validate"); + builder.put(MembershipAction.DISCOVERY_LEAVE_ACTION_NAME, "discovery/zen/leave"); + builder.put(MulticastZenPing.ACTION_NAME, "discovery/zen/multicast"); + builder.put(PublishClusterStateAction.ACTION_NAME, "discovery/zen/publish"); + builder.put(UnicastZenPing.ACTION_NAME, "discovery/zen/unicast"); + builder.put(LocalAllocateDangledIndices.ACTION_NAME, "/gateway/local/allocate_dangled"); + addNodeAction(TransportNodesListGatewayMetaState.ACTION_NAME, "/gateway/local/meta-state", builder); + addNodeAction(TransportNodesListGatewayStartedShards.ACTION_NAME, "/gateway/local/started-shards", builder); + + builder.put(RecoveryTarget.Actions.CLEAN_FILES, "index/shard/recovery/cleanFiles"); + builder.put(RecoveryTarget.Actions.FILE_CHUNK, "index/shard/recovery/fileChunk"); + builder.put(RecoveryTarget.Actions.FILES_INFO, "index/shard/recovery/filesInfo"); + builder.put(RecoveryTarget.Actions.FINALIZE, "index/shard/recovery/finalize"); + builder.put(RecoveryTarget.Actions.PREPARE_TRANSLOG, "index/shard/recovery/prepareTranslog"); + builder.put(RecoveryTarget.Actions.TRANSLOG_OPS, "index/shard/recovery/translogOps"); + builder.put(RecoverySource.Actions.START_RECOVERY, "index/shard/recovery/startRecovery"); + + builder.put(IndicesStore.ACTION_SHARD_EXISTS, "index/shard/exists"); + + builder.put(PublishRiverClusterStateAction.ACTION_NAME, "river/state/publish"); + + return builder.build(); + } + + private static void addNodeAction(String name, String pre_14_name, ImmutableBiMap.Builder builder) { + builder.put(name, pre_14_name); + builder.put(name + "[n]", pre_14_name + "/n"); + } + + private static void addShardAction(String name, String pre_14_name, ImmutableBiMap.Builder builder) { + builder.put(name, pre_14_name); + builder.put(name + "[s]", pre_14_name + "/s"); + } +} diff --git a/src/main/java/org/elasticsearch/transport/TransportService.java b/src/main/java/org/elasticsearch/transport/TransportService.java index 604af502ac0..e922f1b4932 100644 --- a/src/main/java/org/elasticsearch/transport/TransportService.java +++ b/src/main/java/org/elasticsearch/transport/TransportService.java @@ -22,6 +22,7 @@ package org.elasticsearch.transport; import com.google.common.collect.ImmutableMap; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ElasticsearchIllegalStateException; +import org.elasticsearch.Version; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.component.AbstractLifecycleComponent; @@ -260,8 +261,8 @@ public class TransportService extends AbstractLifecycleComponent implem status = TransportStatus.setRequest(status); stream.writeByte(status); // 0 for request, 1 for response. - stream.writeString(action); + stream.writeString(transportServiceAdapter.action(action, version)); request.writeTo(stream); stream.close(); @@ -237,7 +237,7 @@ public class LocalTransport extends AbstractLifecycleComponent implem final String action = stream.readString(); final LocalTransportChannel transportChannel = new LocalTransportChannel(this, sourceTransport, action, requestId, version); try { - final TransportRequestHandler handler = transportServiceAdapter.handler(action); + final TransportRequestHandler handler = transportServiceAdapter.handler(action, version); if (handler == null) { throw new ActionNotFoundTransportException("Action [" + action + "] not found"); } diff --git a/src/main/java/org/elasticsearch/transport/netty/MessageChannelHandler.java b/src/main/java/org/elasticsearch/transport/netty/MessageChannelHandler.java index 6d896c39b77..3f489c23013 100644 --- a/src/main/java/org/elasticsearch/transport/netty/MessageChannelHandler.java +++ b/src/main/java/org/elasticsearch/transport/netty/MessageChannelHandler.java @@ -205,7 +205,7 @@ public class MessageChannelHandler extends SimpleChannelUpstreamHandler { final NettyTransportChannel transportChannel = new NettyTransportChannel(transport, action, channel, requestId, version); try { - final TransportRequestHandler handler = transportServiceAdapter.handler(action); + final TransportRequestHandler handler = transportServiceAdapter.handler(action, version); if (handler == null) { throw new ActionNotFoundTransportException(action); } diff --git a/src/main/java/org/elasticsearch/transport/netty/NettyTransport.java b/src/main/java/org/elasticsearch/transport/netty/NettyTransport.java index b0cb6cc70df..8579aab0cd7 100644 --- a/src/main/java/org/elasticsearch/transport/netty/NettyTransport.java +++ b/src/main/java/org/elasticsearch/transport/netty/NettyTransport.java @@ -56,7 +56,6 @@ import org.elasticsearch.transport.support.TransportStatus; import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.buffer.CompositeChannelBuffer; import org.jboss.netty.channel.*; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; @@ -507,6 +506,7 @@ public class NettyTransport extends AbstractLifecycleComponent implem @Override public void sendRequest(final DiscoveryNode node, final long requestId, final String action, final TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + Channel targetChannel = nodeChannel(node, options); if (compress) { @@ -535,7 +535,7 @@ public class NettyTransport extends AbstractLifecycleComponent implem Version version = Version.smallest(this.version, node.version()); stream.setVersion(version); - stream.writeString(action); + stream.writeString(transportServiceAdapter.action(action, version)); ReleasableBytesReference bytes; ChannelBuffer buffer; diff --git a/src/test/java/org/elasticsearch/bwcompat/TransportClientBackwardsCompatibilityTest.java b/src/test/java/org/elasticsearch/bwcompat/TransportClientBackwardsCompatibilityTest.java new file mode 100644 index 00000000000..3fbbdb847b2 --- /dev/null +++ b/src/test/java/org/elasticsearch/bwcompat/TransportClientBackwardsCompatibilityTest.java @@ -0,0 +1,83 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.bwcompat; + +import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.cluster.ClusterName; +import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.test.CompositeTestCluster; +import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest; +import org.junit.Test; + +import java.util.concurrent.ExecutionException; + +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchHits; +import static org.hamcrest.CoreMatchers.equalTo; + +public class TransportClientBackwardsCompatibilityTest extends ElasticsearchBackwardsCompatIntegrationTest { + + @Test + public void testSniffMode() throws ExecutionException, InterruptedException { + + Settings settings = ImmutableSettings.builder().put("client.transport.nodes_sampler_interval", "1s") + .put("name", "transport_client_sniff_mode").put(ClusterName.SETTING, cluster().getClusterName()) + .put("client.transport.sniff", true).build(); + + CompositeTestCluster compositeTestCluster = backwardsCluster(); + TransportAddress transportAddress = compositeTestCluster.externalTransportAddress(); + + try(TransportClient client = new TransportClient(settings)) { + client.addTransportAddress(transportAddress); + + assertAcked(client.admin().indices().prepareCreate("test")); + ensureYellow("test"); + + int numDocs = iterations(10, 100); + IndexRequestBuilder[] indexRequestBuilders = new IndexRequestBuilder[numDocs]; + for (int i = 0; i < numDocs; i++) { + String id = "id" + i; + indexRequestBuilders[i] = client.prepareIndex("test", "test", id).setSource("field", "value" + i); + } + indexRandom(false, indexRequestBuilders); + + String randomId = "id" + randomInt(numDocs-1); + GetResponse getResponse = client.prepareGet("test", "test", randomId).get(); + assertThat(getResponse.isExists(), equalTo(true)); + + refresh(); + + SearchResponse searchResponse = client.prepareSearch("test").get(); + assertThat(searchResponse.getHits().totalHits(), equalTo((long)numDocs)); + + int randomDocId = randomInt(numDocs-1); + String fieldValue = "value" + randomDocId; + String id = "id" + randomDocId; + searchResponse = client.prepareSearch("test").setQuery(QueryBuilders.termQuery("field", fieldValue)).get(); + assertSearchHits(searchResponse, id); + } + } +} diff --git a/src/test/java/org/elasticsearch/bwcompat/UnicastBackwardsCompatibilityTest.java b/src/test/java/org/elasticsearch/bwcompat/UnicastBackwardsCompatibilityTest.java new file mode 100644 index 00000000000..befde8a8507 --- /dev/null +++ b/src/test/java/org/elasticsearch/bwcompat/UnicastBackwardsCompatibilityTest.java @@ -0,0 +1,65 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.bwcompat; + +import org.elasticsearch.client.Client; +import org.elasticsearch.cluster.ClusterState; +import org.elasticsearch.cluster.node.DiscoveryNode; +import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest; +import org.junit.Test; + +import static org.hamcrest.Matchers.equalTo; + +public class UnicastBackwardsCompatibilityTest extends ElasticsearchBackwardsCompatIntegrationTest { + + @Override + protected Settings nodeSettings(int nodeOrdinal) { + return ImmutableSettings.builder() + .put("discovery.zen.ping.multicast.enabled", false) + .put("discovery.zen.ping.unicast.hosts", "localhost") + .put(super.nodeSettings(nodeOrdinal)) + .build(); + } + + @Override + protected Settings externalNodeSettings(int nodeOrdinal) { + return ImmutableSettings.settingsBuilder() + .put("discovery.zen.ping.multicast.enabled", false) + .put("discovery.zen.ping.unicast.hosts", "localhost") + .put(super.nodeSettings(nodeOrdinal)) + .build(); + } + + @Test + public void testUnicastDiscovery() { + for (Client client : clients()) { + ClusterState state = client.admin().cluster().prepareState().setLocal(true).get().getState(); + int dataNodes = 0; + for (DiscoveryNode discoveryNode : state.nodes()) { + if (discoveryNode.isDataNode()) { + dataNodes++; + } + } + assertThat(dataNodes, equalTo(cluster().numDataNodes())); + } + } +} diff --git a/src/test/java/org/elasticsearch/index/TransportIndexFailuresTest.java b/src/test/java/org/elasticsearch/index/TransportIndexFailuresTest.java index 3be4ddc1ab2..f8fe46cae1f 100644 --- a/src/test/java/org/elasticsearch/index/TransportIndexFailuresTest.java +++ b/src/test/java/org/elasticsearch/index/TransportIndexFailuresTest.java @@ -22,6 +22,7 @@ package org.elasticsearch.index; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus; +import org.elasticsearch.action.index.IndexAction; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.routing.IndexShardRoutingTable; @@ -112,12 +113,12 @@ public class TransportIndexFailuresTest extends ElasticsearchIntegrationTest { TransportService mockTransportService = internalCluster().getInstance(TransportService.class, primaryNode); ((MockTransportService) mockTransportService).addFailToSendNoConnectRule( internalCluster().getInstance(Discovery.class, replicaNode).localNode(), - ImmutableSet.of("index/replica") + ImmutableSet.of(IndexAction.NAME + "[r]") ); mockTransportService = internalCluster().getInstance(TransportService.class, replicaNode); ((MockTransportService) mockTransportService).addFailToSendNoConnectRule( internalCluster().getInstance(Discovery.class, primaryNode).localNode(), - ImmutableSet.of("index/replica") + ImmutableSet.of(IndexAction.NAME + "[r]") ); logger.info("--> indexing into primary"); diff --git a/src/test/java/org/elasticsearch/test/CompositeTestCluster.java b/src/test/java/org/elasticsearch/test/CompositeTestCluster.java index 51c60cd5e87..6b7615c5860 100644 --- a/src/test/java/org/elasticsearch/test/CompositeTestCluster.java +++ b/src/test/java/org/elasticsearch/test/CompositeTestCluster.java @@ -32,6 +32,7 @@ import org.elasticsearch.client.IndicesAdminClient; import org.elasticsearch.common.breaker.CircuitBreaker; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.TransportAddress; import java.io.IOException; import java.net.InetSocketAddress; @@ -246,6 +247,11 @@ public class CompositeTestCluster extends TestCluster { return true; } + @Override + public String getClusterName() { + return cluster.getClusterName(); + } + @Override public synchronized Iterator iterator() { return Iterators.singletonIterator(client()); @@ -272,6 +278,14 @@ public class CompositeTestCluster extends TestCluster { return runningNodes().size(); } + public TransportAddress externalTransportAddress() { + return RandomPicks.randomFrom(random, externalNodes).getTransportAddress(); + } + + public InternalTestCluster internalCluster() { + return cluster; + } + private synchronized Client internalClient() { Collection externalNodes = runningNodes(); return random.nextBoolean() && !externalNodes.isEmpty() ? RandomPicks.randomFrom(random, externalNodes).getClient() : cluster.client(); diff --git a/src/test/java/org/elasticsearch/test/ExternalNode.java b/src/test/java/org/elasticsearch/test/ExternalNode.java index d90b4a702fb..07fd48aa595 100644 --- a/src/test/java/org/elasticsearch/test/ExternalNode.java +++ b/src/test/java/org/elasticsearch/test/ExternalNode.java @@ -158,13 +158,6 @@ final class ExternalNode implements Closeable { return nodeInfo.getTransport().getAddress().publishAddress(); } - TransportAddress address() { - if (nodeInfo == null) { - throw new IllegalStateException("Node has not started yet"); - } - return nodeInfo.getTransport().getAddress().publishAddress(); - } - synchronized Client getClient() { if (nodeInfo == null) { throw new IllegalStateException("Node has not started yet"); diff --git a/src/test/java/org/elasticsearch/test/ExternalTestCluster.java b/src/test/java/org/elasticsearch/test/ExternalTestCluster.java index 252d526400c..6621a2c4a08 100644 --- a/src/test/java/org/elasticsearch/test/ExternalTestCluster.java +++ b/src/test/java/org/elasticsearch/test/ExternalTestCluster.java @@ -53,6 +53,8 @@ public final class ExternalTestCluster extends TestCluster { private final InetSocketAddress[] httpAddresses; + private final String clusterName; + private final int numDataNodes; private final int numBenchNodes; @@ -64,6 +66,7 @@ public final class ExternalTestCluster extends TestCluster { NodesInfoResponse nodeInfos = this.client.admin().cluster().prepareNodesInfo().clear().setSettings(true).setHttp(true).get(); httpAddresses = new InetSocketAddress[nodeInfos.getNodes().length]; + this.clusterName = nodeInfos.getClusterName().value(); int dataNodes = 0; int benchNodes = 0; for (int i = 0; i < nodeInfos.getNodes().length; i++) { @@ -143,4 +146,9 @@ public final class ExternalTestCluster extends TestCluster { public boolean hasFilterCache() { return true; // default } + + @Override + public String getClusterName() { + return clusterName; + } } diff --git a/src/test/java/org/elasticsearch/test/InternalTestCluster.java b/src/test/java/org/elasticsearch/test/InternalTestCluster.java index 9a833fcb4b0..ab5ff53b1b7 100644 --- a/src/test/java/org/elasticsearch/test/InternalTestCluster.java +++ b/src/test/java/org/elasticsearch/test/InternalTestCluster.java @@ -282,6 +282,7 @@ public final class InternalTestCluster extends TestCluster { } } + @Override public String getClusterName() { return clusterName; } diff --git a/src/test/java/org/elasticsearch/test/TestCluster.java b/src/test/java/org/elasticsearch/test/TestCluster.java index 07cef59c605..68560e52e92 100644 --- a/src/test/java/org/elasticsearch/test/TestCluster.java +++ b/src/test/java/org/elasticsearch/test/TestCluster.java @@ -193,4 +193,8 @@ public abstract class TestCluster implements Iterable, Closeable { */ public abstract boolean hasFilterCache(); + /** + * Returns the cluster name + */ + public abstract String getClusterName(); } diff --git a/src/test/java/org/elasticsearch/test/transport/ConfigurableErrorNettyTransportModule.java b/src/test/java/org/elasticsearch/test/transport/ConfigurableErrorNettyTransportModule.java index 440564c60f4..32f2a4f5c6d 100644 --- a/src/test/java/org/elasticsearch/test/transport/ConfigurableErrorNettyTransportModule.java +++ b/src/test/java/org/elasticsearch/test/transport/ConfigurableErrorNettyTransportModule.java @@ -88,7 +88,7 @@ public class ConfigurableErrorNettyTransportModule extends AbstractModule { final NettyTransportChannel transportChannel = new NettyTransportChannel(transport, action, channel, requestId, version); try { - final TransportRequestHandler handler = transportServiceAdapter.handler(action); + final TransportRequestHandler handler = transportServiceAdapter.handler(action, version); if (handler == null) { throw new ActionNotFoundTransportException(action); } diff --git a/src/test/java/org/elasticsearch/transport/ActionNamesBackwardsCompatibilityTest.java b/src/test/java/org/elasticsearch/transport/ActionNamesBackwardsCompatibilityTest.java new file mode 100644 index 00000000000..37644dc3b0a --- /dev/null +++ b/src/test/java/org/elasticsearch/transport/ActionNamesBackwardsCompatibilityTest.java @@ -0,0 +1,133 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.transport; + +import com.google.common.collect.ImmutableMap; +import org.elasticsearch.Version; +import org.elasticsearch.action.bench.AbortBenchmarkAction; +import org.elasticsearch.action.bench.BenchmarkAction; +import org.elasticsearch.action.bench.BenchmarkService; +import org.elasticsearch.action.bench.BenchmarkStatusAction; +import org.elasticsearch.action.indexedscripts.delete.DeleteIndexedScriptAction; +import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptAction; +import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptAction; +import org.elasticsearch.cluster.node.DiscoveryNode; +import org.elasticsearch.cluster.node.DiscoveryNodes; +import org.elasticsearch.indices.store.IndicesStore; +import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest; +import org.elasticsearch.test.InternalTestCluster; +import org.elasticsearch.threadpool.ThreadPool; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; + +import static org.hamcrest.CoreMatchers.*; + +public class ActionNamesBackwardsCompatibilityTest extends ElasticsearchBackwardsCompatIntegrationTest { + + @Test + @SuppressWarnings("unchecked") + public void testTransportHandlers() throws NoSuchFieldException, IllegalAccessException, InterruptedException { + InternalTestCluster internalCluster = backwardsCluster().internalCluster(); + TransportService transportService = internalCluster.getInstance(TransportService.class); + ImmutableMap requestHandlers = transportService.serverHandlers; + + DiscoveryNodes nodes = client().admin().cluster().prepareState().get().getState().nodes(); + + DiscoveryNode selectedNode = null; + for (DiscoveryNode node : nodes) { + if (node.getVersion().before(Version.CURRENT)) { + selectedNode = node; + break; + } + } + assertThat(selectedNode, notNullValue()); + + final TransportRequest transportRequest = new TransportRequest() {}; + + for (String action : requestHandlers.keySet()) { + + final CountDownLatch latch = new CountDownLatch(1); + final AtomicReference failure = new AtomicReference<>(); + transportService.sendRequest(selectedNode, action, transportRequest, new TransportResponseHandler() { + @Override + public TransportResponse newInstance() { + return new TransportResponse() {}; + } + + @Override + public void handleResponse(TransportResponse response) { + latch.countDown(); + } + + @Override + public void handleException(TransportException exp) { + failure.set(exp); + latch.countDown(); + } + + @Override + public String executor() { + return ThreadPool.Names.SAME; + } + }); + assertThat(latch.await(5, TimeUnit.SECONDS), equalTo(true)); + + if (failure.get() != null) { + Throwable cause = failure.get().unwrapCause(); + if (isActionNotFoundExpected(selectedNode.version(), action)) { + assertThat(cause, instanceOf(ActionNotFoundTransportException.class)); + } else { + assertThat(cause, not(instanceOf(ActionNotFoundTransportException.class))); + if (! (cause instanceof IndexOutOfBoundsException)) { + cause.printStackTrace(); + } + } + } + } + } + + private static boolean isActionNotFoundExpected(Version version, String action) { + Version actionVersion = actionsVersions.get(action); + return actionVersion != null && version.before(actionVersion); + } + + private static final Map actionsVersions = new HashMap<>(); + + static { + actionsVersions.put(BenchmarkService.STATUS_ACTION_NAME, Version.V_1_4_0); + actionsVersions.put(BenchmarkService.START_ACTION_NAME, Version.V_1_4_0); + actionsVersions.put(BenchmarkService.ABORT_ACTION_NAME, Version.V_1_4_0); + actionsVersions.put(BenchmarkAction.NAME, Version.V_1_4_0); + actionsVersions.put(BenchmarkStatusAction.NAME, Version.V_1_4_0); + actionsVersions.put(AbortBenchmarkAction.NAME, Version.V_1_4_0); + + actionsVersions.put(IndicesStore.ACTION_SHARD_EXISTS, Version.V_1_3_0); + + actionsVersions.put(GetIndexedScriptAction.NAME, Version.V_1_3_0); + actionsVersions.put(DeleteIndexedScriptAction.NAME, Version.V_1_3_0); + actionsVersions.put(PutIndexedScriptAction.NAME, Version.V_1_3_0); + + } +} diff --git a/src/test/java/org/elasticsearch/transport/ActionNamesTests.java b/src/test/java/org/elasticsearch/transport/ActionNamesTests.java new file mode 100644 index 00000000000..1ad687bfe02 --- /dev/null +++ b/src/test/java/org/elasticsearch/transport/ActionNamesTests.java @@ -0,0 +1,135 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.transport; + +import org.elasticsearch.Version; +import org.elasticsearch.action.bench.AbortBenchmarkAction; +import org.elasticsearch.action.bench.BenchmarkAction; +import org.elasticsearch.action.bench.BenchmarkService; +import org.elasticsearch.action.bench.BenchmarkStatusAction; +import org.elasticsearch.action.exists.ExistsAction; +import org.elasticsearch.test.ElasticsearchIntegrationTest; +import org.junit.Test; + +import java.util.HashSet; +import java.util.Set; + +import static org.hamcrest.CoreMatchers.*; + +public class ActionNamesTests extends ElasticsearchIntegrationTest { + + @Test + @SuppressWarnings("unchecked") + public void testActionNamesCategories() throws NoSuchFieldException, IllegalAccessException { + TransportService transportService = internalCluster().getInstance(TransportService.class); + for (String action : transportService.serverHandlers.keySet()) { + assertThat("action doesn't belong to known category", action, either(startsWith("indices:admin")).or(startsWith("indices:monitor")) + .or(startsWith("indices:data/read")).or(startsWith("indices:data/write")) + .or(startsWith("indices:data/benchmark")) + .or(startsWith("cluster:admin")).or(startsWith("cluster:monitor")) + .or(startsWith("internal:"))); + } + } + + @Test + public void testActionNamesMapping() { + TransportService transportService = internalCluster().getInstance(TransportService.class); + for (String action : transportService.serverHandlers.keySet()) { + if (post_1_4_actions.contains(action)) { + continue; + } + String pre_1_4_action = ActionNames.pre_1_4_Action(action); + assertThat("no pre 1.4 name for action " + action, pre_1_4_action, notNullValue()); + String post_1_4_action = ActionNames.post_1_4_action(pre_1_4_action); + assertThat(post_1_4_action, equalTo(action)); + } + } + + @Test + public void testOutgoingAction() { + TransportService transportService = internalCluster().getInstance(TransportService.class); + String[] actions = transportService.serverHandlers.keySet().toArray(new String[transportService.serverHandlers.keySet().size()]); + + int iters = iterations(10, 100); + for (int i = 0; i < iters; i++) { + boolean customAction = rarely(); + String action; + if (customAction) { + action = randomAsciiOfLength(randomInt(30)); + } else { + action = randomFrom(actions); + } + + Version version = randomVersion(); + String outgoingAction = ActionNames.outgoingAction(action, version); + if (version.onOrAfter(Version.V_1_4_0) || customAction || post_1_4_actions.contains(action)) { + assertThat(outgoingAction, equalTo(action)); + } else { + assertThat(outgoingAction, not(equalTo(action))); + assertThat(outgoingAction, equalTo(ActionNames.pre_1_4_Action(action))); + } + } + } + + @Test + public void testIncomingAction() { + String[] pre_1_4_names = ActionNames.ACTION_NAMES.inverse().keySet().toArray(new String[ActionNames.ACTION_NAMES.inverse().keySet().size()]); + TransportService transportService = internalCluster().getInstance(TransportService.class); + String[] actions = transportService.serverHandlers.keySet().toArray(new String[transportService.serverHandlers.keySet().size()]); + + Version version = randomVersion(); + int iters = iterations(10, 100); + for (int i = 0; i < iters; i++) { + boolean customAction = rarely(); + String action; + if (customAction) { + action = randomAsciiOfLength(randomInt(30)); + } else { + if (version.before(Version.V_1_4_0)) { + action = randomFrom(pre_1_4_names); + } else { + action = randomFrom(actions); + } + } + + String incomingAction = ActionNames.incomingAction (action, version); + if (version.onOrAfter(Version.V_1_4_0) || customAction) { + assertThat(incomingAction, equalTo(action)); + } else { + assertThat(incomingAction, not(equalTo(action))); + assertThat(incomingAction, equalTo(ActionNames.post_1_4_action(action))); + } + } + } + + private static final Set post_1_4_actions = new HashSet<>(); + + static { + //add here new actions that don't need a mapping as they weren't available prior to 1.4 + post_1_4_actions.add(BenchmarkService.STATUS_ACTION_NAME); + post_1_4_actions.add(BenchmarkService.START_ACTION_NAME); + post_1_4_actions.add(BenchmarkService.ABORT_ACTION_NAME); + post_1_4_actions.add(BenchmarkAction.NAME); + post_1_4_actions.add(BenchmarkStatusAction.NAME); + post_1_4_actions.add(AbortBenchmarkAction.NAME); + post_1_4_actions.add(ExistsAction.NAME); + post_1_4_actions.add(ExistsAction.NAME + "[s]"); + } +}