Skip to content

Commit afff39e

Browse files
authored
Run XPack usage actions on local node (#122933)
These actions solely need the cluster state, they can run on any node. Relates #101805
1 parent 2fcb23a commit afff39e

File tree

52 files changed

+122
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+122
-83
lines changed

docs/changelog/122933.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 122933
2+
summary: Run XPack usage actions on local node
3+
area: Stats
4+
type: enhancement
5+
issues: []

server/src/main/java/org/elasticsearch/action/support/local/TransportLocalClusterStateAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ protected abstract void localClusterStateOperation(Task task, Request request, C
6666

6767
@Override
6868
protected final void doExecute(Task task, Request request, ActionListener<Response> listener) {
69+
if (task != null) {
70+
request.setParentTask(clusterService.localNode().getId(), task.getId());
71+
}
6972
final var state = clusterService.state();
7073
final var clusterBlockException = checkBlock(request, state);
7174
if (clusterBlockException != null) {

x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/action/AnalyticsUsageTransportAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public AnalyticsUsageTransportAction(
3838
}
3939

4040
@Override
41-
protected void masterOperation(
41+
protected void localClusterStateOperation(
4242
Task task,
4343
XPackUsageRequest request,
4444
ClusterState state,

x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/action/AnalyticsInfoTransportActionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void testAvailable() throws Exception {
7373
client
7474
);
7575
PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>();
76-
usageAction.masterOperation(task, null, clusterState, future);
76+
usageAction.localClusterStateOperation(task, null, clusterState, future);
7777
XPackFeatureUsage usage = future.get().getUsage();
7878
assertThat(usage.available(), is(true));
7979

@@ -100,7 +100,7 @@ public void testEnabled() throws Exception {
100100
client
101101
);
102102
PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>();
103-
usageAction.masterOperation(task, null, clusterState, future);
103+
usageAction.localClusterStateOperation(task, null, clusterState, future);
104104
XPackFeatureUsage usage = future.get().getUsage();
105105
assertTrue(usage.enabled());
106106

x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRUsageTransportAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public CCRUsageTransportAction(
4848
}
4949

5050
@Override
51-
protected void masterOperation(
51+
protected void localClusterStateOperation(
5252
Task task,
5353
XPackUsageRequest request,
5454
ClusterState state,

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/CCRInfoTransportActionTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void testUsageStats() throws Exception {
152152
licenseState
153153
);
154154
PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>();
155-
usageAction.masterOperation(null, null, clusterState, future);
155+
usageAction.localClusterStateOperation(null, null, clusterState, future);
156156
CCRInfoTransportAction.Usage ccrUsage = (CCRInfoTransportAction.Usage) future.get().getUsage();
157157
assertThat(ccrUsage.enabled(), equalTo(true));
158158
assertThat(ccrUsage.available(), equalTo(false));

x-pack/plugin/core/src/internalClusterTest/java/org/elasticsearch/xpack/core/rest/action/XPackUsageRestCancellationIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public BlockingXPackUsageAction(
150150
}
151151

152152
@Override
153-
protected void masterOperation(
153+
protected void localClusterStateOperation(
154154
Task task,
155155
XPackUsageRequest request,
156156
ClusterState state,
@@ -185,7 +185,7 @@ public NonBlockingXPackUsageAction(
185185
}
186186

187187
@Override
188-
protected void masterOperation(
188+
protected void localClusterStateOperation(
189189
Task task,
190190
XPackUsageRequest request,
191191
ClusterState state,

x-pack/plugin/core/src/main/java/org/elasticsearch/protocol/xpack/XPackUsageRequest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
package org.elasticsearch.protocol.xpack;
88

99
import org.elasticsearch.action.ActionRequestValidationException;
10-
import org.elasticsearch.action.support.master.MasterNodeRequest;
10+
import org.elasticsearch.action.support.local.LocalClusterStateRequest;
1111
import org.elasticsearch.common.io.stream.StreamInput;
1212
import org.elasticsearch.core.TimeValue;
1313
import org.elasticsearch.tasks.CancellableTask;
@@ -17,14 +17,14 @@
1717
import java.io.IOException;
1818
import java.util.Map;
1919

20-
public class XPackUsageRequest extends MasterNodeRequest<XPackUsageRequest> {
20+
public class XPackUsageRequest extends LocalClusterStateRequest {
2121

2222
public XPackUsageRequest(TimeValue masterNodeTimeout) {
2323
super(masterNodeTimeout);
2424
}
2525

2626
public XPackUsageRequest(StreamInput in) throws IOException {
27-
super(in);
27+
super(in, false);
2828
}
2929

3030
@Override

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/HealthApiUsageTransportAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public HealthApiUsageTransportAction(
4242
}
4343

4444
@Override
45-
protected void masterOperation(
45+
protected void localClusterStateOperation(
4646
Task task,
4747
XPackUsageRequest request,
4848
ClusterState state,

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/RemoteClusterUsageTransportAction.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
public class RemoteClusterUsageTransportAction extends XPackUsageFeatureTransportAction {
2525

26+
private TransportService transportService;
27+
2628
@Inject
2729
public RemoteClusterUsageTransportAction(
2830
TransportService transportService,
@@ -31,10 +33,11 @@ public RemoteClusterUsageTransportAction(
3133
ActionFilters actionFilters
3234
) {
3335
super(XPackUsageFeatureAction.REMOTE_CLUSTERS.name(), transportService, clusterService, threadPool, actionFilters);
36+
this.transportService = transportService;
3437
}
3538

3639
@Override
37-
protected void masterOperation(
40+
protected void localClusterStateOperation(
3841
Task task,
3942
XPackUsageRequest request,
4043
ClusterState state,

0 commit comments

Comments
 (0)