Skip to content

Commit 23aa344

Browse files
Defer use of ProjectIdResolver in REST handlers to keep tests happy
1 parent ba44688 commit 23aa344

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestNodesStatsAction.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class RestNodesStatsAction extends BaseRestHandler {
4444

4545
private static final Set<String> SUPPORTED_CAPABILITIES = Set.of("dense_vector_off_heap_stats");
4646

47-
private final Map<String, String> xContentParams;
47+
private final ProjectIdResolver projectIdResolver;
4848

4949
@Override
5050
public List<Route> routes() {
@@ -69,10 +69,7 @@ public List<Route> routes() {
6969
}
7070

7171
public RestNodesStatsAction(ProjectIdResolver projectIdResolver) {
72-
this.xContentParams = Map.of(
73-
NodeStats.MULTI_PROJECT_ENABLED_XCONTENT_PARAM_KEY,
74-
Boolean.toString(projectIdResolver.supportsMultipleProjects())
75-
);
72+
this.projectIdResolver = projectIdResolver;
7673
}
7774

7875
@Override
@@ -191,10 +188,14 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC
191188

192189
return channel -> new RestCancellableNodeClient(client, request.getHttpChannel()).admin()
193190
.cluster()
194-
.nodesStats(
195-
nodesStatsRequest,
196-
new RestRefCountedChunkedToXContentListener<>(channel, new ToXContent.DelegatingMapParams(xContentParams, request))
197-
);
191+
.nodesStats(nodesStatsRequest, new RestRefCountedChunkedToXContentListener<>(channel, xContentParamsForRequest(request)));
192+
}
193+
194+
private ToXContent.DelegatingMapParams xContentParamsForRequest(RestRequest request) {
195+
return new ToXContent.DelegatingMapParams(
196+
Map.of(NodeStats.MULTI_PROJECT_ENABLED_XCONTENT_PARAM_KEY, Boolean.toString(projectIdResolver.supportsMultipleProjects())),
197+
request
198+
);
198199
}
199200

200201
private final Set<String> RESPONSE_PARAMS = Collections.singleton("level");

server/src/main/java/org/elasticsearch/rest/action/info/RestClusterInfoAction.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,10 @@ public class RestClusterInfoAction extends BaseRestHandler {
7878
static final Set<Metric> AVAILABLE_TARGETS = RESPONSE_MAPPER.keySet();
7979
static final Set<String> AVAILABLE_TARGET_NAMES = AVAILABLE_TARGETS.stream().map(Metric::metricName).collect(toUnmodifiableSet());
8080

81-
private final ToXContent.Params xContentParams;
81+
private final ProjectIdResolver projectIdResolver;
8282

8383
public RestClusterInfoAction(ProjectIdResolver projectIdResolver) {
84-
this.xContentParams = new ToXContent.MapParams(
85-
Map.of(NodeStats.MULTI_PROJECT_ENABLED_XCONTENT_PARAM_KEY, Boolean.toString(projectIdResolver.supportsMultipleProjects()))
86-
);
84+
this.projectIdResolver = projectIdResolver;
8785
}
8886

8987
@Override
@@ -146,12 +144,18 @@ public RestResponse buildResponse(NodesStatsResponse response) throws Exception
146144
Iterators.flatMap(chunkedResponses, chunk -> chunk.toXContentChunked(outerParams)),
147145
ChunkedToXContentHelper.endObject()
148146
),
149-
xContentParams,
147+
xContentParams(),
150148
channel
151149
),
152150
null
153151
);
154152
}
155153
});
156154
}
155+
156+
private ToXContent.MapParams xContentParams() {
157+
return new ToXContent.MapParams(
158+
Map.of(NodeStats.MULTI_PROJECT_ENABLED_XCONTENT_PARAM_KEY, Boolean.toString(projectIdResolver.supportsMultipleProjects()))
159+
);
160+
}
157161
}

0 commit comments

Comments
 (0)