Class TransportSingleShardAction<Request extends SingleShardRequest<Request>,Response extends ActionResponse>
java.lang.Object
org.elasticsearch.action.support.TransportAction<Request,Response>
org.elasticsearch.action.support.single.shard.TransportSingleShardAction<Request,Response>
- Direct Known Subclasses:
RetentionLeaseActions.Add.TransportAction,RetentionLeaseActions.Remove.TransportAction,RetentionLeaseActions.Renew.TransportAction,TransportAnalyzeAction,TransportExplainAction,TransportGetAction,TransportGetFieldMappingsIndexAction,TransportShardMultiGetAction,TransportShardMultiTermsVectorAction,TransportTermVectorsAction
public abstract class TransportSingleShardAction<Request extends SingleShardRequest<Request>,Response extends ActionResponse>
extends TransportAction<Request,Response>
A base class for operations that need to perform a read operation on a single shard copy. If the operation fails,
the read operation can be performed on other shard copies. Concrete implementations can provide their own list
of candidate shards to try the read operation on.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classInternal request class that gets built on each node. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ClusterServiceprotected IndexNameExpressionResolverprotected ThreadPoolprotected TransportServiceFields inherited from class org.elasticsearch.action.support.TransportAction
actionName, localConnection, logger, taskManager -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTransportSingleShardAction(String actionName, ThreadPool threadPool, ClusterService clusterService, TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, Writeable.Reader<Request> request, String executor) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidasyncShardOperation(Request request, ShardId shardId, ActionListener<Response> listener)protected ClusterBlockExceptioncheckGlobalBlock(ClusterState state)protected ClusterBlockExceptioncheckRequestBlock(ClusterState state, TransportSingleShardAction.InternalRequest request)protected voiddoExecute(Task task, Request request, ActionListener<Response> listener)protected StringgetExecutor(Request request, ShardId shardId)protected abstract Writeable.Reader<Response>protected booleanTells whether the action is a main one or a subaction.protected abstract booleanresolveIndex(Request request)protected voidresolveRequest(ClusterState state, TransportSingleShardAction.InternalRequest request)protected abstract ResponseshardOperation(Request request, ShardId shardId)protected abstract ShardsIteratorshards(ClusterState state, TransportSingleShardAction.InternalRequest request)Returns the candidate shards to execute the operation on ornullthe execute the operation locally (the node that received the request)Methods inherited from class org.elasticsearch.action.support.TransportAction
execute, execute, execute
-
Field Details
-
threadPool
-
clusterService
-
transportService
-
indexNameExpressionResolver
-
-
Constructor Details
-
TransportSingleShardAction
protected TransportSingleShardAction(String actionName, ThreadPool threadPool, ClusterService clusterService, TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, Writeable.Reader<Request> request, String executor)
-
-
Method Details
-
isSubAction
protected boolean isSubAction()Tells whether the action is a main one or a subaction. Used to decide whether we need to register the main transport handler. In fact if the action is a subaction, its execute method will be called locally to its parent action. -
doExecute
- Specified by:
doExecutein classTransportAction<Request extends SingleShardRequest<Request>,Response extends ActionResponse>
-
shardOperation
- Throws:
IOException
-
asyncShardOperation
protected void asyncShardOperation(Request request, ShardId shardId, ActionListener<Response> listener) throws IOException- Throws:
IOException
-
getResponseReader
-
resolveIndex
-
checkGlobalBlock
-
checkRequestBlock
protected ClusterBlockException checkRequestBlock(ClusterState state, TransportSingleShardAction.InternalRequest request) -
resolveRequest
protected void resolveRequest(ClusterState state, TransportSingleShardAction.InternalRequest request) -
shards
@Nullable protected abstract ShardsIterator shards(ClusterState state, TransportSingleShardAction.InternalRequest request)Returns the candidate shards to execute the operation on ornullthe execute the operation locally (the node that received the request) -
getExecutor
-