Class TransportSingleShardAction<Request extends SingleShardRequest<Request>,Response extends ActionResponse>
- java.lang.Object
-
- org.elasticsearch.common.component.AbstractComponent
-
- 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
,TransportFieldCapabilitiesIndexAction
,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 Classes Modifier and Type Class Description protected class
TransportSingleShardAction.InternalRequest
Internal request class that gets built on each node.
-
Field Summary
Fields Modifier and Type Field Description protected ClusterService
clusterService
protected TransportService
transportService
-
Fields inherited from class org.elasticsearch.action.support.TransportAction
actionName, indexNameExpressionResolver, taskManager, threadPool
-
Fields inherited from class org.elasticsearch.common.component.AbstractComponent
logger
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TransportSingleShardAction(Settings settings, java.lang.String actionName, ThreadPool threadPool, ClusterService clusterService, TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, java.util.function.Supplier<Request> request, java.lang.String executor)
-
Method Summary
Modifier and Type Method Description protected void
asyncShardOperation(Request request, ShardId shardId, ActionListener<Response> listener)
protected ClusterBlockException
checkGlobalBlock(ClusterState state)
protected ClusterBlockException
checkRequestBlock(ClusterState state, TransportSingleShardAction.InternalRequest request)
protected void
doExecute(Request request, ActionListener<Response> listener)
protected java.lang.String
getExecutor(Request request, ShardId shardId)
protected boolean
isSubAction()
Tells whether the action is a main one or a subaction.protected abstract Response
newResponse()
protected abstract boolean
resolveIndex(Request request)
protected void
resolveRequest(ClusterState state, TransportSingleShardAction.InternalRequest request)
protected abstract Response
shardOperation(Request request, ShardId shardId)
protected abstract ShardsIterator
shards(ClusterState state, TransportSingleShardAction.InternalRequest request)
Returns the candidate shards to execute the operation on ornull
the execute the operation locally (the node that received the request)
-
-
-
Field Detail
-
clusterService
protected final ClusterService clusterService
-
transportService
protected final TransportService transportService
-
-
Constructor Detail
-
TransportSingleShardAction
protected TransportSingleShardAction(Settings settings, java.lang.String actionName, ThreadPool threadPool, ClusterService clusterService, TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, java.util.function.Supplier<Request> request, java.lang.String executor)
-
-
Method Detail
-
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
protected void doExecute(Request request, ActionListener<Response> listener)
- Specified by:
doExecute
in classTransportAction<Request extends SingleShardRequest<Request>,Response extends ActionResponse>
-
shardOperation
protected abstract Response shardOperation(Request request, ShardId shardId) throws java.io.IOException
- Throws:
java.io.IOException
-
asyncShardOperation
protected void asyncShardOperation(Request request, ShardId shardId, ActionListener<Response> listener) throws java.io.IOException
- Throws:
java.io.IOException
-
newResponse
protected abstract Response newResponse()
-
resolveIndex
protected abstract boolean resolveIndex(Request request)
-
checkGlobalBlock
protected ClusterBlockException checkGlobalBlock(ClusterState state)
-
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 ornull
the execute the operation locally (the node that received the request)
-
-