Skip to content

Commit 36a5c4d

Browse files
committed
Make IndexTemplateRegistry project-aware
1 parent 92148cf commit 36a5c4d

File tree

53 files changed

+531
-260
lines changed

Some content is hidden

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

53 files changed

+531
-260
lines changed

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

+8-8
Original file line numberDiff line numberDiff line change
@@ -2790,16 +2790,16 @@ protected void assertEmptyProject(String projectId) throws IOException {
27902790
if (indexTemplates != null) {
27912791
var templateNames = indexTemplates.keySet().stream().filter(name -> isXPackTemplate(name) == false).toList();
27922792
assertThat("Project [" + projectId + "] should not have index templates", templateNames, empty());
2793-
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2794-
fail("Expected default project to have standard templates, but was null");
2793+
} else {
2794+
fail("Expected project [" + projectId + "] to have standard templates, but was null");
27952795
}
27962796

27972797
final Map<String, Object> componentTemplates = state.evaluate("metadata.component_template.component_template");
27982798
if (componentTemplates != null) {
27992799
var templateNames = componentTemplates.keySet().stream().filter(name -> isXPackTemplate(name) == false).toList();
28002800
assertThat("Project [" + projectId + "] should not have component templates", templateNames, empty());
2801-
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2802-
fail("Expected default project to have standard component templates, but was null");
2801+
} else {
2802+
fail("Expected project [" + projectId + "] to have standard component templates, but was null");
28032803
}
28042804

28052805
final List<Map<String, ?>> pipelines = state.evaluate("metadata.ingest.pipeline");
@@ -2809,8 +2809,8 @@ protected void assertEmptyProject(String projectId) throws IOException {
28092809
.filter(id -> isXPackIngestPipeline(id) == false)
28102810
.toList();
28112811
assertThat("Project [" + projectId + "] should not have ingest pipelines", pipelineNames, empty());
2812-
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2813-
fail("Expected default project to have standard ingest pipelines, but was null");
2812+
} else {
2813+
fail("Expected project [" + projectId + "] to have standard ingest pipelines, but was null");
28142814
}
28152815

28162816
if (has(ProductFeature.ILM)) {
@@ -2819,8 +2819,8 @@ protected void assertEmptyProject(String projectId) throws IOException {
28192819
var policyNames = new HashSet<>(ilmPolicies.keySet());
28202820
policyNames.removeAll(preserveILMPolicyIds());
28212821
assertThat("Project [" + projectId + "] should not have ILM Policies", policyNames, empty());
2822-
} else if (projectId.equals(Metadata.DEFAULT_PROJECT_ID.id())) {
2823-
fail("Expected default project to have standard ILM policies, but was null");
2822+
} else {
2823+
fail("Expected project [" + projectId + "] to have standard ILM policies, but was null");
28242824
}
28252825
}
28262826
}

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package org.elasticsearch.xpack.apmdata;
99

1010
import org.elasticsearch.client.internal.Client;
11+
import org.elasticsearch.cluster.project.ProjectResolver;
1112
import org.elasticsearch.cluster.service.ClusterService;
1213
import org.elasticsearch.common.settings.Settings;
1314
import org.elasticsearch.threadpool.ThreadPool;
@@ -32,15 +33,17 @@ public APMIndexTemplateRegistry(
3233
ClusterService clusterService,
3334
ThreadPool threadPool,
3435
Client client,
35-
NamedXContentRegistry xContentRegistry
36+
NamedXContentRegistry xContentRegistry,
37+
ProjectResolver projectResolver
3638
) {
3739
super(
3840
nodeSettings,
3941
clusterService,
4042
threadPool,
4143
client,
4244
xContentRegistry,
43-
templateFilter(isDataStreamsLifecycleOnlyMode(clusterService.getSettings()))
45+
templateFilter(isDataStreamsLifecycleOnlyMode(clusterService.getSettings())),
46+
projectResolver
4447
);
4548
}
4649

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

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

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
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;
1415
import org.elasticsearch.cluster.service.ClusterService;
1516
import org.elasticsearch.common.settings.ClusterSettings;
1617
import org.elasticsearch.common.settings.Settings;
@@ -59,7 +60,8 @@ public void createRegistryAndClient() {
5960
clusterService,
6061
threadPool,
6162
client,
62-
NamedXContentRegistry.EMPTY
63+
NamedXContentRegistry.EMPTY,
64+
TestProjectResolvers.mustExecuteFirst()
6365
);
6466
apmIndexTemplateRegistry.setEnabled(true);
6567
}

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

+6-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
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;
2931
import org.elasticsearch.cluster.service.ClusterService;
3032
import org.elasticsearch.common.settings.ClusterSettings;
3133
import org.elasticsearch.common.settings.Settings;
@@ -89,16 +91,18 @@ public void createRegistryAndClient() {
8991
threadPool = new TestThreadPool(this.getClass().getName());
9092
client = new VerifyingClient(threadPool);
9193
ClusterService clusterService = ClusterServiceUtils.createClusterService(threadPool, clusterSettings);
94+
ProjectResolver projectResolver = TestProjectResolvers.mustExecuteFirst();
9295
stackTemplateRegistryAccessor = new StackTemplateRegistryAccessor(
93-
new StackTemplateRegistry(Settings.EMPTY, clusterService, threadPool, client, NamedXContentRegistry.EMPTY)
96+
new StackTemplateRegistry(Settings.EMPTY, clusterService, threadPool, client, NamedXContentRegistry.EMPTY, projectResolver)
9497
);
9598

9699
apmIndexTemplateRegistry = new APMIndexTemplateRegistry(
97100
Settings.EMPTY,
98101
clusterService,
99102
threadPool,
100103
client,
101-
NamedXContentRegistry.EMPTY
104+
NamedXContentRegistry.EMPTY,
105+
projectResolver
102106
);
103107
apmIndexTemplateRegistry.setEnabled(true);
104108
}

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
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;
2021
import org.elasticsearch.cluster.service.ClusterService;
2122
import org.elasticsearch.datastreams.DataStreamsPlugin;
2223
import org.elasticsearch.index.mapper.DateFieldMapper;
@@ -58,7 +59,8 @@ public void setup() {
5859
clusterService.threadPool(),
5960
client,
6061
xContentRegistry(),
61-
3L
62+
3L,
63+
TestProjectResolvers.mustExecuteFirst()
6264
);
6365
registry.initialize();
6466
ensureGreen();

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import org.elasticsearch.client.internal.Client;
1111
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
12+
import org.elasticsearch.cluster.project.ProjectResolver;
1213
import org.elasticsearch.cluster.service.ClusterService;
1314
import org.elasticsearch.common.settings.Settings;
1415
import org.elasticsearch.threadpool.ThreadPool;
@@ -28,9 +29,10 @@ public RolloverEnabledTestTemplateRegistry(
2829
ThreadPool threadPool,
2930
Client client,
3031
NamedXContentRegistry xContentRegistry,
31-
long version
32+
long version,
33+
ProjectResolver projectResolver
3234
) {
33-
super(nodeSettings, clusterService, threadPool, client, xContentRegistry);
35+
super(nodeSettings, clusterService, threadPool, client, xContentRegistry, projectResolver);
3436
this.version = version;
3537
}
3638

0 commit comments

Comments
 (0)