Skip to content

Commit 5c4b06c

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

File tree

23 files changed

+285
-56
lines changed

23 files changed

+285
-56
lines changed

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

Lines changed: 4 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,9 @@ 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(RenderSearchTemplateAction.NAME, transportService, actionFilters, scriptService, xContentRegistry, client, transportSearchAction);
2931
}
3032
}

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

Lines changed: 18 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,29 @@
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> implements
64+
TransportIndicesResolvingAction<SearchTemplateRequest> {
6265
private static final String TEMPLATE_LANG = MustacheScriptEngine.NAME;
6366

6467
protected final ScriptService scriptService;
6568
protected final NamedXContentRegistry xContentRegistry;
6669
protected final NodeClient client;
70+
private final TransportSearchAction transportSearchAction;
6771

6872
@Inject
6973
public TransportSearchTemplateAction(
7074
TransportService transportService,
7175
ActionFilters actionFilters,
7276
ScriptService scriptService,
7377
NamedXContentRegistry xContentRegistry,
74-
NodeClient client
78+
NodeClient client,
79+
TransportSearchAction transportSearchAction
7580
) {
7681
super(SearchTemplateAction.NAME, transportService, actionFilters, SearchTemplateRequest::new);
7782
this.scriptService = scriptService;
7883
this.xContentRegistry = xContentRegistry;
7984
this.client = client;
85+
this.transportSearchAction = transportSearchAction;
8086
}
8187

8288
public TransportSearchTemplateAction(
@@ -85,12 +91,14 @@ public TransportSearchTemplateAction(
8591
ActionFilters actionFilters,
8692
ScriptService scriptService,
8793
NamedXContentRegistry xContentRegistry,
88-
NodeClient client
94+
NodeClient client,
95+
TransportSearchAction transportSearchAction
8996
) {
9097
super(actionName, transportService, actionFilters, SearchTemplateRequest::new);
9198
this.scriptService = scriptService;
9299
this.xContentRegistry = xContentRegistry;
93100
this.client = client;
101+
this.transportSearchAction = transportSearchAction;
94102
}
95103

96104
@Override
@@ -180,4 +188,10 @@ private static void checkRestTotalHitsAsInt(SearchRequest searchRequest, SearchS
180188
}
181189
}
182190
}
191+
192+
@Override
193+
public ResolvedIndices resolveIndices(SearchTemplateRequest request) {
194+
SearchRequest searchRequest = request.getRequest();
195+
return transportSearchAction.resolveIndices(searchRequest);
196+
}
183197
}

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

Lines changed: 16 additions & 3 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,14 @@
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> implements
53+
TransportIndicesResolvingAction<DeleteByQueryRequest> {
4954

5055
private final ThreadPool threadPool;
5156
private final Client client;
5257
private final ScriptService scriptService;
5358
private final ClusterService clusterService;
59+
private final TransportSearchAction transportSearchAction;
5460

5561
@Inject
5662
public TransportDeleteByQueryAction(
@@ -59,8 +65,8 @@ public TransportDeleteByQueryAction(
5965
Client client,
6066
TransportService transportService,
6167
ScriptService scriptService,
62-
ClusterService clusterService
63-
) {
68+
ClusterService clusterService,
69+
TransportSearchAction transportSearchAction) {
6470
super(
6571
DeleteByQueryAction.NAME,
6672
transportService,
@@ -71,6 +77,7 @@ public TransportDeleteByQueryAction(
7177
this.client = client;
7278
this.scriptService = scriptService;
7379
this.clusterService = clusterService;
80+
this.transportSearchAction = transportSearchAction;
7481
}
7582

7683
@Override
@@ -94,4 +101,10 @@ public void doExecute(Task task, DeleteByQueryRequest request, ActionListener<Bu
94101
}
95102
);
96103
}
104+
105+
@Override
106+
public ResolvedIndices resolveIndices(DeleteByQueryRequest request) {
107+
SearchRequest searchRequest = request.getSearchRequest();
108+
return transportSearchAction.resolveIndices(searchRequest);
109+
}
97110
}

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

Lines changed: 14 additions & 3 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,14 @@
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> implements
62+
TransportIndicesResolvingAction<UpdateByQueryRequest> {
5963

6064
private final ThreadPool threadPool;
6165
private final Client client;
6266
private final ScriptService scriptService;
6367
private final ClusterService clusterService;
68+
private final TransportSearchAction transportSearchAction;
6469

6570
@Inject
6671
public TransportUpdateByQueryAction(
@@ -69,8 +74,8 @@ public TransportUpdateByQueryAction(
6974
Client client,
7075
TransportService transportService,
7176
ScriptService scriptService,
72-
ClusterService clusterService
73-
) {
77+
ClusterService clusterService,
78+
TransportSearchAction transportSearchAction) {
7479
super(
7580
UpdateByQueryAction.NAME,
7681
transportService,
@@ -81,6 +86,7 @@ public TransportUpdateByQueryAction(
8186
this.client = client;
8287
this.scriptService = scriptService;
8388
this.clusterService = clusterService;
89+
this.transportSearchAction = transportSearchAction;
8490
}
8591

8692
@Override
@@ -106,6 +112,11 @@ protected void doExecute(Task task, UpdateByQueryRequest request, ActionListener
106112
);
107113
}
108114

115+
@Override
116+
public ResolvedIndices resolveIndices(UpdateByQueryRequest request) {
117+
return transportSearchAction.resolveIndices(request.getSearchRequest());
118+
}
119+
109120
/**
110121
* Simple implementation of update-by-query using scrolling and bulk.
111122
*/

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ protected TransportUpdateByQueryAction.AsyncIndexBySearchAction action(ScriptSer
7979
null,
8080
transportService,
8181
scriptService,
82-
null
83-
);
82+
null,
83+
null);
8484
return new TransportUpdateByQueryAction.AsyncIndexBySearchAction(
8585
task,
8686
logger,

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

Lines changed: 14 additions & 3 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

@@ -100,7 +102,7 @@ protected String executor() {
100102
@Override
101103
protected ClusterBlockException checkBlock(ClusterSearchShardsRequest request, ClusterState state) {
102104
return state.blocks()
103-
.indicesBlockedException(ClusterBlockLevel.METADATA_READ, indexNameExpressionResolver.concreteIndexNames(state, request));
105+
.indicesBlockedException(ClusterBlockLevel.METADATA_READ, resolveIndices(state, request));
104106
}
105107

106108
@Override
@@ -115,7 +117,7 @@ protected void clusterManagerOperation(
115117
final ActionListener<ClusterSearchShardsResponse> listener
116118
) {
117119
ClusterState clusterState = clusterService.state();
118-
String[] concreteIndices = indexNameExpressionResolver.concreteIndexNames(clusterState, request);
120+
String[] concreteIndices = resolveIndices(clusterState, request);
119121
Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(state, request.routing(), request.indices());
120122
Map<String, AliasFilter> indicesAndFilters = new HashMap<>();
121123
Set<String> indicesAndAliases = indexNameExpressionResolver.resolveExpressions(clusterState, request.indices());
@@ -155,4 +157,13 @@ protected void clusterManagerOperation(
155157
}
156158
listener.onResponse(new ClusterSearchShardsResponse(groupResponses, nodes, indicesAndFilters));
157159
}
160+
161+
private String[] resolveIndices(ClusterState clusterState, ClusterSearchShardsRequest request) {
162+
return indexNameExpressionResolver.concreteIndexNames(clusterState, request);
163+
}
164+
165+
@Override
166+
public ResolvedIndices resolveIndices(ClusterSearchShardsRequest request) {
167+
return ResolvedIndices.of(resolveIndices(clusterService.state(), request));
168+
}
158169
}

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

Lines changed: 9 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,8 @@
5759
*
5860
* @opensearch.internal
5961
*/
60-
public class TransportCreateSnapshotAction extends TransportClusterManagerNodeAction<CreateSnapshotRequest, CreateSnapshotResponse> {
62+
public class TransportCreateSnapshotAction extends TransportClusterManagerNodeAction<CreateSnapshotRequest, CreateSnapshotResponse> implements
63+
TransportIndicesResolvingAction<CreateSnapshotRequest> {
6164
private final SnapshotsService snapshotsService;
6265

6366
private final RepositoriesService repositoriesService;
@@ -121,4 +124,9 @@ protected void clusterManagerOperation(
121124
snapshotsService.createSnapshot(request, ActionListener.map(listener, snapshot -> new CreateSnapshotResponse()));
122125
}
123126
}
127+
128+
@Override
129+
public ResolvedIndices resolveIndices(CreateSnapshotRequest request) {
130+
return snapshotsService.resolveIndices(request);
131+
}
124132
}

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

Lines changed: 12 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,8 @@
6567
*
6668
* @opensearch.internal
6769
*/
68-
public class TransportGetAliasesAction extends TransportClusterManagerNodeReadAction<GetAliasesRequest, GetAliasesResponse> {
70+
public class TransportGetAliasesAction extends TransportClusterManagerNodeReadAction<GetAliasesRequest, GetAliasesResponse> implements
71+
TransportIndicesResolvingAction<GetAliasesRequest> {
6972
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(TransportGetAliasesAction.class);
7073

7174
private final SystemIndices systemIndices;
@@ -195,4 +198,12 @@ private static void checkSystemAliasAccess(GetAliasesRequest request, SystemIndi
195198
);
196199
}
197200
}
201+
202+
@Override
203+
public ResolvedIndices resolveIndices(GetAliasesRequest request) {
204+
ClusterState state = this.clusterService.state();
205+
try (ThreadContext.StoredContext ignore = threadPool.getThreadContext().newStoredContext(false)) {
206+
return ResolvedIndices.of(indexNameExpressionResolver.concreteIndexNames(state, request));
207+
}
208+
}
198209
}

server/src/main/java/org/opensearch/action/admin/indices/close/TransportCloseIndexAction.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@
3737
import org.apache.logging.log4j.message.ParameterizedMessage;
3838
import org.opensearch.action.support.ActionFilters;
3939
import org.opensearch.action.support.DestructiveOperations;
40+
import org.opensearch.action.support.TransportIndicesResolvingAction;
4041
import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeAction;
4142
import org.opensearch.cluster.ClusterState;
4243
import org.opensearch.cluster.block.ClusterBlockException;
4344
import org.opensearch.cluster.block.ClusterBlockLevel;
4445
import org.opensearch.cluster.metadata.IndexNameExpressionResolver;
4546
import org.opensearch.cluster.metadata.MetadataIndexStateService;
47+
import org.opensearch.cluster.metadata.ResolvedIndices;
4648
import org.opensearch.cluster.service.ClusterService;
4749
import org.opensearch.common.inject.Inject;
4850
import org.opensearch.common.settings.ClusterSettings;
@@ -67,7 +69,8 @@
6769
*
6870
* @opensearch.internal
6971
*/
70-
public class TransportCloseIndexAction extends TransportClusterManagerNodeAction<CloseIndexRequest, CloseIndexResponse> {
72+
public class TransportCloseIndexAction extends TransportClusterManagerNodeAction<CloseIndexRequest, CloseIndexResponse> implements
73+
TransportIndicesResolvingAction<CloseIndexRequest> {
7174

7275
private static final Logger logger = LogManager.getLogger(TransportCloseIndexAction.class);
7376

@@ -159,7 +162,7 @@ protected void clusterManagerOperation(
159162
final ClusterState state,
160163
final ActionListener<CloseIndexResponse> listener
161164
) throws Exception {
162-
final Index[] concreteIndices = indexNameExpressionResolver.concreteIndices(state, request);
165+
final Index[] concreteIndices = resolveIndices(state, request);
163166
if (concreteIndices == null || concreteIndices.length == 0) {
164167
listener.onResponse(new CloseIndexResponse(true, false, Collections.emptyList()));
165168
return;
@@ -177,6 +180,15 @@ protected void clusterManagerOperation(
177180
}));
178181
}
179182

183+
private Index[] resolveIndices(ClusterState state, CloseIndexRequest request) {
184+
return indexNameExpressionResolver.concreteIndices(state, request);
185+
}
186+
187+
@Override
188+
public ResolvedIndices resolveIndices(CloseIndexRequest request) {
189+
return ResolvedIndices.of(resolveIndices(clusterService.state(), request));
190+
}
191+
180192
/**
181193
* Reject close index request if cluster mode is [MIXED] and migration direction is [RemoteStore]
182194
* @throws IllegalStateException if cluster mode is [MIXED] and migration direction is [RemoteStore]

0 commit comments

Comments
 (0)