Skip to content

Commit 31af22f

Browse files
committed
Revert "Make IndexTemplateRegistry project-aware (#126986)"
This reverts commit ff1c9b7.
1 parent 2acd563 commit 31af22f

File tree

55 files changed

+289
-549
lines changed

Some content is hidden

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

55 files changed

+289
-549
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.elasticsearch.cluster.metadata.ProjectId;
2222
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2323
import org.elasticsearch.core.CheckedRunnable;
24-
import org.elasticsearch.core.FixForMultiProject;
2524

2625
import java.util.Collection;
2726
import java.util.Objects;
@@ -95,7 +94,6 @@ default Collection<ProjectId> getProjectIds(ClusterState clusterState) {
9594
/**
9695
* Returns a client that executes every request in the context of the given project.
9796
*/
98-
@FixForMultiProject(description = "This recreates a client on every invocation. We should optimize this to be less wasteful")
9997
default Client projectClient(Client baseClient, ProjectId projectId) {
10098
// We only take the shortcut when the given project ID matches the "current" project ID. If it doesn't, we'll let #executeOnProject
10199
// take care of error handling.

test/framework/src/main/java/org/elasticsearch/cluster/project/TestProjectResolvers.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public boolean supportsMultipleProjects() {
6262
public static ProjectResolver mustExecuteFirst() {
6363
return new ProjectResolver() {
6464

65-
private volatile ProjectId enforceProjectId = null;
65+
private ProjectId enforceProjectId = null;
6666

6767
@Override
6868
public ProjectId getProjectId() {
@@ -81,16 +81,14 @@ public Collection<ProjectId> getProjectIds(ClusterState clusterState) {
8181

8282
@Override
8383
public <E extends Exception> void executeOnProject(ProjectId projectId, CheckedRunnable<E> body) throws E {
84-
synchronized (this) {
85-
if (enforceProjectId != null) {
86-
throw new IllegalStateException("Cannot nest calls to executeOnProject");
87-
}
88-
try {
89-
enforceProjectId = projectId;
90-
body.run();
91-
} finally {
92-
enforceProjectId = null;
93-
}
84+
if (enforceProjectId != null) {
85+
throw new IllegalStateException("Cannot nest calls to executeOnProject");
86+
}
87+
try {
88+
enforceProjectId = projectId;
89+
body.run();
90+
} finally {
91+
enforceProjectId = null;
9492
}
9593
}
9694

test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,12 +2817,16 @@ protected void assertEmptyProject(String projectId) throws IOException {
28172817
if (indexTemplates != null) {
28182818
var templateNames = indexTemplates.keySet().stream().filter(name -> isXPackTemplate(name) == false).toList();
28192819
assertThat("Project [" + projectId + "] should not have index templates", templateNames, empty());
2820+
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2821+
fail("Expected default project to have standard templates, but was null");
28202822
}
28212823

28222824
final Map<String, Object> componentTemplates = state.evaluate("metadata.component_template.component_template");
28232825
if (componentTemplates != null) {
28242826
var templateNames = componentTemplates.keySet().stream().filter(name -> isXPackTemplate(name) == false).toList();
28252827
assertThat("Project [" + projectId + "] should not have component templates", templateNames, empty());
2828+
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2829+
fail("Expected default project to have standard component templates, but was null");
28262830
}
28272831

28282832
final List<Map<String, ?>> pipelines = state.evaluate("metadata.ingest.pipeline");
@@ -2832,6 +2836,8 @@ protected void assertEmptyProject(String projectId) throws IOException {
28322836
.filter(id -> isXPackIngestPipeline(id) == false)
28332837
.toList();
28342838
assertThat("Project [" + projectId + "] should not have ingest pipelines", pipelineNames, empty());
2839+
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2840+
fail("Expected default project to have standard ingest pipelines, but was null");
28352841
}
28362842

28372843
if (has(ProductFeature.ILM)) {
@@ -2840,6 +2846,8 @@ protected void assertEmptyProject(String projectId) throws IOException {
28402846
var policyNames = new HashSet<>(ilmPolicies.keySet());
28412847
policyNames.removeAll(preserveILMPolicyIds());
28422848
assertThat("Project [" + projectId + "] should not have ILM Policies", policyNames, empty());
2849+
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2850+
fail("Expected default project to have standard ILM policies, but was null");
28432851
}
28442852
}
28452853
}

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/core/src/internalClusterTest/java/org/elasticsearch/xpack/core/template/IndexTemplateRegistryRolloverIT.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.elasticsearch.cluster.ClusterChangedEvent;
1818
import org.elasticsearch.cluster.ClusterState;
1919
import org.elasticsearch.cluster.metadata.DataStream;
20-
import org.elasticsearch.cluster.project.TestProjectResolvers;
2120
import org.elasticsearch.cluster.service.ClusterService;
2221
import org.elasticsearch.datastreams.DataStreamsPlugin;
2322
import org.elasticsearch.index.mapper.DateFieldMapper;
@@ -58,8 +57,7 @@ public void setup() {
5857
clusterService.threadPool(),
5958
client,
6059
xContentRegistry(),
61-
3L,
62-
TestProjectResolvers.mustExecuteFirst()
60+
3L
6361
);
6462
registry.initialize();
6563
ensureGreen();

x-pack/plugin/core/src/internalClusterTest/java/org/elasticsearch/xpack/core/template/RolloverEnabledTestTemplateRegistry.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import org.elasticsearch.client.internal.Client;
1111
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
12-
import org.elasticsearch.cluster.project.ProjectResolver;
1312
import org.elasticsearch.cluster.service.ClusterService;
1413
import org.elasticsearch.common.settings.Settings;
1514
import org.elasticsearch.threadpool.ThreadPool;
@@ -29,10 +28,9 @@ public RolloverEnabledTestTemplateRegistry(
2928
ThreadPool threadPool,
3029
Client client,
3130
NamedXContentRegistry xContentRegistry,
32-
long version,
33-
ProjectResolver projectResolver
31+
long version
3432
) {
35-
super(nodeSettings, clusterService, threadPool, client, xContentRegistry, projectResolver);
33+
super(nodeSettings, clusterService, threadPool, client, xContentRegistry);
3634
this.version = version;
3735
}
3836

0 commit comments

Comments
 (0)