Skip to content

Commit 5ca5993

Browse files
A few additional TransportAction subclasses implements interface TransportIndicesResolvingAction
Signed-off-by: Lukasz Soszynski <[email protected]>
1 parent 9c61172 commit 5ca5993

File tree

23 files changed

+300
-55
lines changed

23 files changed

+300
-55
lines changed

modules/lang-mustache/src/main/java/org/opensearch/script/mustache/TransportRenderSearchTemplateAction.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
package org.opensearch.script.mustache;
1010

11+
import org.opensearch.action.search.TransportSearchAction;
1112
import org.opensearch.action.support.ActionFilters;
1213
import org.opensearch.common.inject.Inject;
1314
import org.opensearch.core.xcontent.NamedXContentRegistry;
@@ -23,8 +24,17 @@ public TransportRenderSearchTemplateAction(
2324
ActionFilters actionFilters,
2425
ScriptService scriptService,
2526
NamedXContentRegistry xContentRegistry,
26-
NodeClient client
27+
NodeClient client,
28+
TransportSearchAction transportSearchAction
2729
) {
28-
super(RenderSearchTemplateAction.NAME, transportService, actionFilters, scriptService, xContentRegistry, client);
30+
super(
31+
RenderSearchTemplateAction.NAME,
32+
transportService,
33+
actionFilters,
34+
scriptService,
35+
xContentRegistry,
36+
client,
37+
transportSearchAction
38+
);
2939
}
3040
}

modules/lang-mustache/src/main/java/org/opensearch/script/mustache/TransportSearchTemplateAction.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@
3434

3535
import org.opensearch.action.search.SearchRequest;
3636
import org.opensearch.action.search.SearchResponse;
37+
import org.opensearch.action.search.TransportSearchAction;
3738
import org.opensearch.action.support.ActionFilters;
3839
import org.opensearch.action.support.HandledTransportAction;
40+
import org.opensearch.action.support.TransportIndicesResolvingAction;
41+
import org.opensearch.cluster.metadata.ResolvedIndices;
3942
import org.opensearch.common.inject.Inject;
4043
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
4144
import org.opensearch.core.action.ActionListener;
@@ -57,26 +60,30 @@
5760
import java.io.IOException;
5861
import java.util.Collections;
5962

60-
public class TransportSearchTemplateAction extends HandledTransportAction<SearchTemplateRequest, SearchTemplateResponse> {
61-
63+
public class TransportSearchTemplateAction extends HandledTransportAction<SearchTemplateRequest, SearchTemplateResponse>
64+
implements
65+
TransportIndicesResolvingAction<SearchTemplateRequest> {
6266
private static final String TEMPLATE_LANG = MustacheScriptEngine.NAME;
6367

6468
protected final ScriptService scriptService;
6569
protected final NamedXContentRegistry xContentRegistry;
6670
protected final NodeClient client;
71+
private final TransportSearchAction transportSearchAction;
6772

6873
@Inject
6974
public TransportSearchTemplateAction(
7075
TransportService transportService,
7176
ActionFilters actionFilters,
7277
ScriptService scriptService,
7378
NamedXContentRegistry xContentRegistry,
74-
NodeClient client
79+
NodeClient client,
80+
TransportSearchAction transportSearchAction
7581
) {
7682
super(SearchTemplateAction.NAME, transportService, actionFilters, SearchTemplateRequest::new);
7783
this.scriptService = scriptService;
7884
this.xContentRegistry = xContentRegistry;
7985
this.client = client;
86+
this.transportSearchAction = transportSearchAction;
8087
}
8188

8289
public TransportSearchTemplateAction(
@@ -85,12 +92,14 @@ public TransportSearchTemplateAction(
8592
ActionFilters actionFilters,
8693
ScriptService scriptService,
8794
NamedXContentRegistry xContentRegistry,
88-
NodeClient client
95+
NodeClient client,
96+
TransportSearchAction transportSearchAction
8997
) {
9098
super(actionName, transportService, actionFilters, SearchTemplateRequest::new);
9199
this.scriptService = scriptService;
92100
this.xContentRegistry = xContentRegistry;
93101
this.client = client;
102+
this.transportSearchAction = transportSearchAction;
94103
}
95104

96105
@Override
@@ -180,4 +189,10 @@ private static void checkRestTotalHitsAsInt(SearchRequest searchRequest, SearchS
180189
}
181190
}
182191
}
192+
193+
@Override
194+
public ResolvedIndices resolveIndices(SearchTemplateRequest request) {
195+
SearchRequest searchRequest = request.getRequest();
196+
return transportSearchAction.resolveIndices(searchRequest);
197+
}
183198
}

modules/reindex/src/main/java/org/opensearch/index/reindex/TransportDeleteByQueryAction.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,12 @@
3232

3333
package org.opensearch.index.reindex;
3434

35+
import org.opensearch.action.search.SearchRequest;
36+
import org.opensearch.action.search.TransportSearchAction;
3537
import org.opensearch.action.support.ActionFilters;
3638
import org.opensearch.action.support.HandledTransportAction;
39+
import org.opensearch.action.support.TransportIndicesResolvingAction;
40+
import org.opensearch.cluster.metadata.ResolvedIndices;
3741
import org.opensearch.cluster.service.ClusterService;
3842
import org.opensearch.common.inject.Inject;
3943
import org.opensearch.core.action.ActionListener;
@@ -45,12 +49,15 @@
4549
import org.opensearch.transport.client.Client;
4650
import org.opensearch.transport.client.ParentTaskAssigningClient;
4751

48-
public class TransportDeleteByQueryAction extends HandledTransportAction<DeleteByQueryRequest, BulkByScrollResponse> {
52+
public class TransportDeleteByQueryAction extends HandledTransportAction<DeleteByQueryRequest, BulkByScrollResponse>
53+
implements
54+
TransportIndicesResolvingAction<DeleteByQueryRequest> {
4955

5056
private final ThreadPool threadPool;
5157
private final Client client;
5258
private final ScriptService scriptService;
5359
private final ClusterService clusterService;
60+
private final TransportSearchAction transportSearchAction;
5461

5562
@Inject
5663
public TransportDeleteByQueryAction(
@@ -59,7 +66,8 @@ public TransportDeleteByQueryAction(
5966
Client client,
6067
TransportService transportService,
6168
ScriptService scriptService,
62-
ClusterService clusterService
69+
ClusterService clusterService,
70+
TransportSearchAction transportSearchAction
6371
) {
6472
super(
6573
DeleteByQueryAction.NAME,
@@ -71,6 +79,7 @@ public TransportDeleteByQueryAction(
7179
this.client = client;
7280
this.scriptService = scriptService;
7381
this.clusterService = clusterService;
82+
this.transportSearchAction = transportSearchAction;
7483
}
7584

7685
@Override
@@ -94,4 +103,10 @@ public void doExecute(Task task, DeleteByQueryRequest request, ActionListener<Bu
94103
}
95104
);
96105
}
106+
107+
@Override
108+
public ResolvedIndices resolveIndices(DeleteByQueryRequest request) {
109+
SearchRequest searchRequest = request.getSearchRequest();
110+
return transportSearchAction.resolveIndices(searchRequest);
111+
}
97112
}

modules/reindex/src/main/java/org/opensearch/index/reindex/TransportUpdateByQueryAction.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,12 @@
3434

3535
import org.apache.logging.log4j.Logger;
3636
import org.opensearch.action.index.IndexRequest;
37+
import org.opensearch.action.search.TransportSearchAction;
3738
import org.opensearch.action.support.ActionFilters;
3839
import org.opensearch.action.support.HandledTransportAction;
40+
import org.opensearch.action.support.TransportIndicesResolvingAction;
3941
import org.opensearch.cluster.ClusterState;
42+
import org.opensearch.cluster.metadata.ResolvedIndices;
4043
import org.opensearch.cluster.service.ClusterService;
4144
import org.opensearch.common.inject.Inject;
4245
import org.opensearch.core.action.ActionListener;
@@ -55,12 +58,15 @@
5558
import java.util.Map;
5659
import java.util.function.BiFunction;
5760

58-
public class TransportUpdateByQueryAction extends HandledTransportAction<UpdateByQueryRequest, BulkByScrollResponse> {
61+
public class TransportUpdateByQueryAction extends HandledTransportAction<UpdateByQueryRequest, BulkByScrollResponse>
62+
implements
63+
TransportIndicesResolvingAction<UpdateByQueryRequest> {
5964

6065
private final ThreadPool threadPool;
6166
private final Client client;
6267
private final ScriptService scriptService;
6368
private final ClusterService clusterService;
69+
private final TransportSearchAction transportSearchAction;
6470

6571
@Inject
6672
public TransportUpdateByQueryAction(
@@ -69,7 +75,8 @@ public TransportUpdateByQueryAction(
6975
Client client,
7076
TransportService transportService,
7177
ScriptService scriptService,
72-
ClusterService clusterService
78+
ClusterService clusterService,
79+
TransportSearchAction transportSearchAction
7380
) {
7481
super(
7582
UpdateByQueryAction.NAME,
@@ -81,6 +88,7 @@ public TransportUpdateByQueryAction(
8188
this.client = client;
8289
this.scriptService = scriptService;
8390
this.clusterService = clusterService;
91+
this.transportSearchAction = transportSearchAction;
8492
}
8593

8694
@Override
@@ -106,6 +114,11 @@ protected void doExecute(Task task, UpdateByQueryRequest request, ActionListener
106114
);
107115
}
108116

117+
@Override
118+
public ResolvedIndices resolveIndices(UpdateByQueryRequest request) {
119+
return transportSearchAction.resolveIndices(request.getSearchRequest());
120+
}
121+
109122
/**
110123
* Simple implementation of update-by-query using scrolling and bulk.
111124
*/

modules/reindex/src/test/java/org/opensearch/index/reindex/UpdateByQueryWithScriptTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ protected TransportUpdateByQueryAction.AsyncIndexBySearchAction action(ScriptSer
7979
null,
8080
transportService,
8181
scriptService,
82+
null,
8283
null
8384
);
8485
return new TransportUpdateByQueryAction.AsyncIndexBySearchAction(

server/src/main/java/org/opensearch/action/admin/cluster/shards/TransportClusterSearchShardsAction.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@
3333
package org.opensearch.action.admin.cluster.shards;
3434

3535
import org.opensearch.action.support.ActionFilters;
36+
import org.opensearch.action.support.TransportIndicesResolvingAction;
3637
import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeReadAction;
3738
import org.opensearch.cluster.ClusterState;
3839
import org.opensearch.cluster.block.ClusterBlockException;
3940
import org.opensearch.cluster.block.ClusterBlockLevel;
4041
import org.opensearch.cluster.metadata.IndexNameExpressionResolver;
42+
import org.opensearch.cluster.metadata.ResolvedIndices;
4143
import org.opensearch.cluster.node.DiscoveryNode;
4244
import org.opensearch.cluster.routing.GroupShardsIterator;
4345
import org.opensearch.cluster.routing.ShardIterator;
@@ -65,7 +67,7 @@
6567
*/
6668
public class TransportClusterSearchShardsAction extends TransportClusterManagerNodeReadAction<
6769
ClusterSearchShardsRequest,
68-
ClusterSearchShardsResponse> {
70+
ClusterSearchShardsResponse> implements TransportIndicesResolvingAction<ClusterSearchShardsRequest> {
6971

7072
private final IndicesService indicesService;
7173

@@ -99,8 +101,7 @@ protected String executor() {
99101

100102
@Override
101103
protected ClusterBlockException checkBlock(ClusterSearchShardsRequest request, ClusterState state) {
102-
return state.blocks()
103-
.indicesBlockedException(ClusterBlockLevel.METADATA_READ, indexNameExpressionResolver.concreteIndexNames(state, request));
104+
return state.blocks().indicesBlockedException(ClusterBlockLevel.METADATA_READ, resolveIndices(state, request));
104105
}
105106

106107
@Override
@@ -115,7 +116,7 @@ protected void clusterManagerOperation(
115116
final ActionListener<ClusterSearchShardsResponse> listener
116117
) {
117118
ClusterState clusterState = clusterService.state();
118-
String[] concreteIndices = indexNameExpressionResolver.concreteIndexNames(clusterState, request);
119+
String[] concreteIndices = resolveIndices(clusterState, request);
119120
Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(state, request.routing(), request.indices());
120121
Map<String, AliasFilter> indicesAndFilters = new HashMap<>();
121122
Set<String> indicesAndAliases = indexNameExpressionResolver.resolveExpressions(clusterState, request.indices());
@@ -155,4 +156,13 @@ protected void clusterManagerOperation(
155156
}
156157
listener.onResponse(new ClusterSearchShardsResponse(groupResponses, nodes, indicesAndFilters));
157158
}
159+
160+
private String[] resolveIndices(ClusterState clusterState, ClusterSearchShardsRequest request) {
161+
return indexNameExpressionResolver.concreteIndexNames(clusterState, request);
162+
}
163+
164+
@Override
165+
public ResolvedIndices resolveIndices(ClusterSearchShardsRequest request) {
166+
return ResolvedIndices.of(resolveIndices(clusterService.state(), request));
167+
}
158168
}

server/src/main/java/org/opensearch/action/admin/cluster/snapshots/create/TransportCreateSnapshotAction.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@
3333
package org.opensearch.action.admin.cluster.snapshots.create;
3434

3535
import org.opensearch.action.support.ActionFilters;
36+
import org.opensearch.action.support.TransportIndicesResolvingAction;
3637
import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeAction;
3738
import org.opensearch.cluster.ClusterState;
3839
import org.opensearch.cluster.block.ClusterBlockException;
3940
import org.opensearch.cluster.block.ClusterBlockLevel;
4041
import org.opensearch.cluster.metadata.IndexNameExpressionResolver;
42+
import org.opensearch.cluster.metadata.ResolvedIndices;
4143
import org.opensearch.cluster.service.ClusterService;
4244
import org.opensearch.common.inject.Inject;
4345
import org.opensearch.core.action.ActionListener;
@@ -57,7 +59,9 @@
5759
*
5860
* @opensearch.internal
5961
*/
60-
public class TransportCreateSnapshotAction extends TransportClusterManagerNodeAction<CreateSnapshotRequest, CreateSnapshotResponse> {
62+
public class TransportCreateSnapshotAction extends TransportClusterManagerNodeAction<CreateSnapshotRequest, CreateSnapshotResponse>
63+
implements
64+
TransportIndicesResolvingAction<CreateSnapshotRequest> {
6165
private final SnapshotsService snapshotsService;
6266

6367
private final RepositoriesService repositoriesService;
@@ -121,4 +125,9 @@ protected void clusterManagerOperation(
121125
snapshotsService.createSnapshot(request, ActionListener.map(listener, snapshot -> new CreateSnapshotResponse()));
122126
}
123127
}
128+
129+
@Override
130+
public ResolvedIndices resolveIndices(CreateSnapshotRequest request) {
131+
return snapshotsService.resolveIndices(request);
132+
}
124133
}

server/src/main/java/org/opensearch/action/admin/indices/alias/get/TransportGetAliasesAction.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@
3232
package org.opensearch.action.admin.indices.alias.get;
3333

3434
import org.opensearch.action.support.ActionFilters;
35+
import org.opensearch.action.support.TransportIndicesResolvingAction;
3536
import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeReadAction;
3637
import org.opensearch.cluster.ClusterState;
3738
import org.opensearch.cluster.block.ClusterBlockException;
3839
import org.opensearch.cluster.block.ClusterBlockLevel;
3940
import org.opensearch.cluster.metadata.AliasMetadata;
4041
import org.opensearch.cluster.metadata.IndexMetadata;
4142
import org.opensearch.cluster.metadata.IndexNameExpressionResolver;
43+
import org.opensearch.cluster.metadata.ResolvedIndices;
4244
import org.opensearch.cluster.service.ClusterService;
4345
import org.opensearch.common.inject.Inject;
4446
import org.opensearch.common.logging.DeprecationLogger;
@@ -65,7 +67,9 @@
6567
*
6668
* @opensearch.internal
6769
*/
68-
public class TransportGetAliasesAction extends TransportClusterManagerNodeReadAction<GetAliasesRequest, GetAliasesResponse> {
70+
public class TransportGetAliasesAction extends TransportClusterManagerNodeReadAction<GetAliasesRequest, GetAliasesResponse>
71+
implements
72+
TransportIndicesResolvingAction<GetAliasesRequest> {
6973
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(TransportGetAliasesAction.class);
7074

7175
private final SystemIndices systemIndices;
@@ -195,4 +199,12 @@ private static void checkSystemAliasAccess(GetAliasesRequest request, SystemIndi
195199
);
196200
}
197201
}
202+
203+
@Override
204+
public ResolvedIndices resolveIndices(GetAliasesRequest request) {
205+
ClusterState state = this.clusterService.state();
206+
try (ThreadContext.StoredContext ignore = threadPool.getThreadContext().newStoredContext(false)) {
207+
return ResolvedIndices.of(indexNameExpressionResolver.concreteIndexNames(state, request));
208+
}
209+
}
198210
}

0 commit comments

Comments
 (0)