Skip to content

Commit 398da36

Browse files
authored
Make use of new projectClient method and remove old one (#129393)
We added a new `projectClient` method on `Client` in #129174. We now update the usages of the old method (on `ProjectResolver`) to use the new one and we delete the old method.
1 parent f398265 commit 398da36

File tree

57 files changed

+118
-311
lines changed

Some content is hidden

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

57 files changed

+118
-311
lines changed

modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,7 @@ public Collection<?> createComponents(PluginServices services) {
214214
errorStoreInitialisationService.get(),
215215
services.allocationService(),
216216
dataStreamLifecycleErrorsPublisher.get(),
217-
services.dataStreamGlobalRetentionSettings(),
218-
services.projectResolver()
217+
services.dataStreamGlobalRetentionSettings()
219218
)
220219
);
221220
dataLifecycleInitialisationService.get().init();

modules/data-streams/src/main/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecycleService.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.SelectorResolver;
5555
import org.elasticsearch.cluster.metadata.ProjectId;
5656
import org.elasticsearch.cluster.metadata.ProjectMetadata;
57-
import org.elasticsearch.cluster.project.ProjectResolver;
5857
import org.elasticsearch.cluster.routing.allocation.AllocationService;
5958
import org.elasticsearch.cluster.service.ClusterService;
6059
import org.elasticsearch.cluster.service.MasterServiceTaskQueue;
@@ -169,7 +168,6 @@ public class DataStreamLifecycleService implements ClusterStateListener, Closeab
169168
final ResultDeduplicator<Tuple<ProjectId, String>, Void> clusterStateChangesDeduplicator;
170169
private final DataStreamLifecycleHealthInfoPublisher dslHealthInfoPublisher;
171170
private final DataStreamGlobalRetentionSettings globalRetentionSettings;
172-
private final ProjectResolver projectResolver;
173171
private LongSupplier nowSupplier;
174172
private final Clock clock;
175173
private final DataStreamLifecycleErrorStore errorStore;
@@ -218,8 +216,7 @@ public DataStreamLifecycleService(
218216
DataStreamLifecycleErrorStore errorStore,
219217
AllocationService allocationService,
220218
DataStreamLifecycleHealthInfoPublisher dataStreamLifecycleHealthInfoPublisher,
221-
DataStreamGlobalRetentionSettings globalRetentionSettings,
222-
ProjectResolver projectResolver
219+
DataStreamGlobalRetentionSettings globalRetentionSettings
223220
) {
224221
this.settings = settings;
225222
this.client = client;
@@ -231,7 +228,6 @@ public DataStreamLifecycleService(
231228
this.nowSupplier = nowSupplier;
232229
this.errorStore = errorStore;
233230
this.globalRetentionSettings = globalRetentionSettings;
234-
this.projectResolver = projectResolver;
235231
this.scheduledJob = null;
236232
this.pollInterval = DATA_STREAM_LIFECYCLE_POLL_INTERVAL_SETTING.get(settings);
237233
this.targetMergePolicyFloorSegment = DATA_STREAM_MERGE_POLICY_TARGET_FLOOR_SEGMENT_SETTING.get(settings);
@@ -1074,7 +1070,7 @@ private void rolloverDataStream(
10741070
rolloverRequest.indicesOptions()
10751071
);
10761072
logger.trace("Data stream lifecycle issues rollover request for data stream [{}]", rolloverRequest.getRolloverTarget());
1077-
projectResolver.projectClient(client, projectId).admin().indices().rolloverIndex(rolloverRequest, new ActionListener<>() {
1073+
client.projectClient(projectId).admin().indices().rolloverIndex(rolloverRequest, new ActionListener<>() {
10781074
@Override
10791075
public void onResponse(RolloverResponse rolloverResponse) {
10801076
// Log only when the conditions were met and the index was rolled over.
@@ -1137,7 +1133,7 @@ private void updateIndexSetting(ProjectId projectId, UpdateSettingsRequest updat
11371133
updateSettingsRequest.settings().keySet(),
11381134
targetIndex
11391135
);
1140-
projectResolver.projectClient(client, projectId).admin().indices().updateSettings(updateSettingsRequest, new ActionListener<>() {
1136+
client.projectClient(projectId).admin().indices().updateSettings(updateSettingsRequest, new ActionListener<>() {
11411137
@Override
11421138
public void onResponse(AcknowledgedResponse acknowledgedResponse) {
11431139
logger.info(
@@ -1173,7 +1169,7 @@ private void addIndexBlock(ProjectId projectId, AddIndexBlockRequest addIndexBlo
11731169
addIndexBlockRequest.getBlock(),
11741170
targetIndex
11751171
);
1176-
projectResolver.projectClient(client, projectId).admin().indices().addBlock(addIndexBlockRequest, new ActionListener<>() {
1172+
client.projectClient(projectId).admin().indices().addBlock(addIndexBlockRequest, new ActionListener<>() {
11771173
@Override
11781174
public void onResponse(AddIndexBlockResponse addIndexBlockResponse) {
11791175
if (addIndexBlockResponse.isAcknowledged()) {
@@ -1252,7 +1248,7 @@ private void deleteIndex(ProjectId projectId, DeleteIndexRequest deleteIndexRequ
12521248
// "saving" the index name here so we don't capture the entire request
12531249
String targetIndex = deleteIndexRequest.indices()[0];
12541250
logger.trace("Data stream lifecycle issues request to delete index [{}]", targetIndex);
1255-
projectResolver.projectClient(client, projectId).admin().indices().delete(deleteIndexRequest, new ActionListener<>() {
1251+
client.projectClient(projectId).admin().indices().delete(deleteIndexRequest, new ActionListener<>() {
12561252
@Override
12571253
public void onResponse(AcknowledgedResponse acknowledgedResponse) {
12581254
if (acknowledgedResponse.isAcknowledged()) {
@@ -1293,7 +1289,7 @@ private void downsampleIndex(ProjectId projectId, DownsampleAction.Request reque
12931289
String sourceIndex = request.getSourceIndex();
12941290
String downsampleIndex = request.getTargetIndex();
12951291
logger.info("Data stream lifecycle issuing request to downsample index [{}] to index [{}]", sourceIndex, downsampleIndex);
1296-
projectResolver.projectClient(client, projectId).execute(DownsampleAction.INSTANCE, request, new ActionListener<>() {
1292+
client.projectClient(projectId).execute(DownsampleAction.INSTANCE, request, new ActionListener<>() {
12971293
@Override
12981294
public void onResponse(AcknowledgedResponse acknowledgedResponse) {
12991295
assert acknowledgedResponse.isAcknowledged() : "the downsample response is always acknowledged";
@@ -1318,7 +1314,7 @@ private void forceMergeIndex(ProjectId projectId, ForceMergeRequest forceMergeRe
13181314
: "Data stream lifecycle force merges one index at a time";
13191315
final String targetIndex = forceMergeRequest.indices()[0];
13201316
logger.info("Data stream lifecycle is issuing a request to force merge index [{}]", targetIndex);
1321-
projectResolver.projectClient(client, projectId).admin().indices().forceMerge(forceMergeRequest, new ActionListener<>() {
1317+
client.projectClient(projectId).admin().indices().forceMerge(forceMergeRequest, new ActionListener<>() {
13221318
@Override
13231319
public void onResponse(BroadcastResponse forceMergeResponse) {
13241320
if (forceMergeResponse.getFailedShards() > 0) {

modules/data-streams/src/test/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecycleServiceTests.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,7 @@ public void setupServices() {
182182
errorStore,
183183
allocationService,
184184
new DataStreamLifecycleHealthInfoPublisher(Settings.EMPTY, client, clusterService, errorStore),
185-
globalRetentionSettings,
186-
TestProjectResolvers.mustExecuteFirst()
185+
globalRetentionSettings
187186
);
188187
clientDelegate = null;
189188
dataStreamLifecycleService.init();
@@ -1456,8 +1455,7 @@ public void testTrackingTimeStats() {
14561455
errorStore,
14571456
mock(AllocationService.class),
14581457
new DataStreamLifecycleHealthInfoPublisher(Settings.EMPTY, getTransportRequestsRecordingClient(), clusterService, errorStore),
1459-
globalRetentionSettings,
1460-
TestProjectResolvers.mustExecuteFirst()
1458+
globalRetentionSettings
14611459
);
14621460
assertThat(service.getLastRunDuration(), is(nullValue()));
14631461
assertThat(service.getTimeBetweenStarts(), is(nullValue()));
@@ -1758,7 +1756,7 @@ private static DiscoveryNode getNode(String nodeId) {
17581756
* (it does not even notify the listener), but tests can provide an implementation of clientDelegate to provide any needed behavior.
17591757
*/
17601758
private Client getTransportRequestsRecordingClient() {
1761-
return new NoOpClient(threadPool) {
1759+
return new NoOpClient(threadPool, TestProjectResolvers.usingRequestHeader(threadPool.getThreadContext())) {
17621760
@Override
17631761
protected <Request extends ActionRequest, Response extends ActionResponse> void doExecute(
17641762
ActionType<Response> action,

server/src/main/java/org/elasticsearch/cluster/project/ProjectResolver.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,12 @@
99

1010
package org.elasticsearch.cluster.project;
1111

12-
import org.elasticsearch.action.ActionListener;
13-
import org.elasticsearch.action.ActionRequest;
14-
import org.elasticsearch.action.ActionResponse;
15-
import org.elasticsearch.action.ActionType;
16-
import org.elasticsearch.client.internal.Client;
17-
import org.elasticsearch.client.internal.FilterClient;
1812
import org.elasticsearch.cluster.ClusterState;
1913
import org.elasticsearch.cluster.ProjectState;
2014
import org.elasticsearch.cluster.metadata.Metadata;
2115
import org.elasticsearch.cluster.metadata.ProjectId;
2216
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2317
import org.elasticsearch.core.CheckedRunnable;
24-
import org.elasticsearch.core.FixForMultiProject;
2518

2619
import java.util.Collection;
2720
import java.util.Objects;
@@ -91,26 +84,4 @@ default Collection<ProjectId> getProjectIds(ClusterState clusterState) {
9184
* It is an error to attempt to override the active project-id
9285
*/
9386
<E extends Exception> void executeOnProject(ProjectId projectId, CheckedRunnable<E> body) throws E;
94-
95-
/**
96-
* Returns a client that executes every request in the context of the given project.
97-
*/
98-
@FixForMultiProject(description = "This recreates a client on every invocation. We should optimize this to be less wasteful")
99-
default Client projectClient(Client baseClient, ProjectId projectId) {
100-
// We only take the shortcut when the given project ID matches the "current" project ID. If it doesn't, we'll let #executeOnProject
101-
// take care of error handling.
102-
if (supportsMultipleProjects() == false && projectId.equals(getProjectId())) {
103-
return baseClient;
104-
}
105-
return new FilterClient(baseClient) {
106-
@Override
107-
protected <Request extends ActionRequest, Response extends ActionResponse> void doExecute(
108-
ActionType<Response> action,
109-
Request request,
110-
ActionListener<Response> listener
111-
) {
112-
executeOnProject(projectId, () -> super.doExecute(action, request, listener));
113-
}
114-
};
115-
}
11687
}

test/framework/src/main/java/org/elasticsearch/test/client/NoOpClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.elasticsearch.action.ActionResponse;
1515
import org.elasticsearch.action.ActionType;
1616
import org.elasticsearch.client.internal.support.AbstractClient;
17+
import org.elasticsearch.cluster.project.ProjectResolver;
1718
import org.elasticsearch.cluster.project.TestProjectResolvers;
1819
import org.elasticsearch.common.settings.Settings;
1920
import org.elasticsearch.threadpool.ThreadPool;
@@ -30,6 +31,10 @@ public NoOpClient(ThreadPool threadPool) {
3031
super(Settings.EMPTY, threadPool, TestProjectResolvers.alwaysThrow());
3132
}
3233

34+
public NoOpClient(ThreadPool threadPool, ProjectResolver projectResolver) {
35+
super(Settings.EMPTY, threadPool, projectResolver);
36+
}
37+
3338
@Override
3439
protected <Request extends ActionRequest, Response extends ActionResponse> void doExecute(
3540
ActionType<Response> action,

x-pack/plugin/apm-data/src/main/java/org/elasticsearch/xpack/apmdata/APMIndexTemplateRegistry.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package org.elasticsearch.xpack.apmdata;
99

1010
import org.elasticsearch.client.internal.Client;
11-
import org.elasticsearch.cluster.project.ProjectResolver;
1211
import org.elasticsearch.cluster.service.ClusterService;
1312
import org.elasticsearch.common.settings.Settings;
1413
import org.elasticsearch.threadpool.ThreadPool;
@@ -33,17 +32,15 @@ public APMIndexTemplateRegistry(
3332
ClusterService clusterService,
3433
ThreadPool threadPool,
3534
Client client,
36-
NamedXContentRegistry xContentRegistry,
37-
ProjectResolver projectResolver
35+
NamedXContentRegistry xContentRegistry
3836
) {
3937
super(
4038
nodeSettings,
4139
clusterService,
4240
threadPool,
4341
client,
4442
xContentRegistry,
45-
templateFilter(isDataStreamsLifecycleOnlyMode(clusterService.getSettings())),
46-
projectResolver
43+
templateFilter(isDataStreamsLifecycleOnlyMode(clusterService.getSettings()))
4744
);
4845
}
4946

x-pack/plugin/apm-data/src/main/java/org/elasticsearch/xpack/apmdata/APMPlugin.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,7 @@ public Collection<?> createComponents(PluginServices services) {
4848
Settings settings = services.environment().settings();
4949
ClusterService clusterService = services.clusterService();
5050
registry.set(
51-
new APMIndexTemplateRegistry(
52-
settings,
53-
clusterService,
54-
services.threadPool(),
55-
services.client(),
56-
services.xContentRegistry(),
57-
services.projectResolver()
58-
)
51+
new APMIndexTemplateRegistry(settings, clusterService, services.threadPool(), services.client(), services.xContentRegistry())
5952
);
6053
if (enabled) {
6154
APMIndexTemplateRegistry registryInstance = registry.get();

x-pack/plugin/apm-data/src/test/java/org/elasticsearch/xpack/apmdata/APMDSLOnlyTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.elasticsearch.cluster.metadata.DataStreamLifecycle;
1212
import org.elasticsearch.cluster.node.DiscoveryNode;
1313
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
14-
import org.elasticsearch.cluster.project.TestProjectResolvers;
1514
import org.elasticsearch.cluster.service.ClusterService;
1615
import org.elasticsearch.common.settings.ClusterSettings;
1716
import org.elasticsearch.common.settings.Settings;
@@ -60,8 +59,7 @@ public void createRegistryAndClient() {
6059
clusterService,
6160
threadPool,
6261
client,
63-
NamedXContentRegistry.EMPTY,
64-
TestProjectResolvers.mustExecuteFirst()
62+
NamedXContentRegistry.EMPTY
6563
);
6664
apmIndexTemplateRegistry.setEnabled(true);
6765
}

x-pack/plugin/apm-data/src/test/java/org/elasticsearch/xpack/apmdata/APMIndexTemplateRegistryTests.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
import org.elasticsearch.cluster.node.DiscoveryNode;
2727
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2828
import org.elasticsearch.cluster.node.DiscoveryNodes;
29-
import org.elasticsearch.cluster.project.ProjectResolver;
30-
import org.elasticsearch.cluster.project.TestProjectResolvers;
3129
import org.elasticsearch.cluster.service.ClusterService;
3230
import org.elasticsearch.common.settings.ClusterSettings;
3331
import org.elasticsearch.common.settings.Settings;
@@ -91,18 +89,16 @@ public void createRegistryAndClient() {
9189
threadPool = new TestThreadPool(this.getClass().getName());
9290
client = new VerifyingClient(threadPool);
9391
ClusterService clusterService = ClusterServiceUtils.createClusterService(threadPool, clusterSettings);
94-
ProjectResolver projectResolver = TestProjectResolvers.mustExecuteFirst();
9592
stackTemplateRegistryAccessor = new StackTemplateRegistryAccessor(
96-
new StackTemplateRegistry(Settings.EMPTY, clusterService, threadPool, client, NamedXContentRegistry.EMPTY, projectResolver)
93+
new StackTemplateRegistry(Settings.EMPTY, clusterService, threadPool, client, NamedXContentRegistry.EMPTY)
9794
);
9895

9996
apmIndexTemplateRegistry = new APMIndexTemplateRegistry(
10097
Settings.EMPTY,
10198
clusterService,
10299
threadPool,
103100
client,
104-
NamedXContentRegistry.EMPTY,
105-
projectResolver
101+
NamedXContentRegistry.EMPTY
106102
);
107103
apmIndexTemplateRegistry.setEnabled(true);
108104
}

x-pack/plugin/apm-data/src/test/java/org/elasticsearch/xpack/apmdata/VerifyingClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.action.ActionRequest;
1212
import org.elasticsearch.action.ActionResponse;
1313
import org.elasticsearch.action.ActionType;
14+
import org.elasticsearch.cluster.project.TestProjectResolvers;
1415
import org.elasticsearch.common.TriFunction;
1516
import org.elasticsearch.test.client.NoOpClient;
1617
import org.elasticsearch.threadpool.ThreadPool;
@@ -27,7 +28,7 @@ public class VerifyingClient extends NoOpClient {
2728
};
2829

2930
VerifyingClient(ThreadPool threadPool) {
30-
super(threadPool);
31+
super(threadPool, TestProjectResolvers.usingRequestHeader(threadPool.getThreadContext()));
3132
}
3233

3334
@Override

0 commit comments

Comments
 (0)