Skip to content

Commit 1bb50e3

Browse files
committed
Clean up tests for subclasses of IndexTemplateRegistry
This change mostly consists of removing usages of deprecated methods in `Metadata.Builder`, but there are some other small cleanups as well.
1 parent ec7f77b commit 1bb50e3

File tree

9 files changed

+89
-148
lines changed

9 files changed

+89
-148
lines changed

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.elasticsearch.cluster.metadata.ComponentTemplate;
2424
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2525
import org.elasticsearch.cluster.metadata.Metadata;
26+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2627
import org.elasticsearch.cluster.node.DiscoveryNode;
2728
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2829
import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -553,16 +554,15 @@ private ClusterState createClusterState(
553554
}
554555
IngestMetadata ingestMetadata = new IngestMetadata(ingestPipelineConfigurations);
555556

557+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
558+
.componentTemplates(componentTemplates)
559+
.indexTemplates(composableTemplates)
560+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
561+
.putCustom(IngestMetadata.TYPE, ingestMetadata)
562+
.build();
556563
return ClusterState.builder(new ClusterName("test"))
557-
.metadata(
558-
Metadata.builder()
559-
.componentTemplates(componentTemplates)
560-
.indexTemplates(composableTemplates)
561-
.transientSettings(nodeSettings)
562-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
563-
.putCustom(IngestMetadata.TYPE, ingestMetadata)
564-
.build()
565-
)
564+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
565+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
566566
.blocks(new ClusterBlocks.Builder().build())
567567
.nodes(nodes)
568568
.build();

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/template/IndexTemplateRegistryTests.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -881,15 +881,11 @@ private ClusterState createClusterState(
881881
// ------------- functionality unit test --------
882882

883883
public void testFindRolloverTargetDataStreams() {
884-
ClusterState state = ClusterState.EMPTY_STATE;
885-
state = ClusterState.builder(state)
886-
.metadata(
887-
Metadata.builder(state.metadata())
888-
.put(DataStreamTestHelper.newInstance("ds1", Collections.singletonList(new Index(".ds-ds1-000001", "ds1i"))))
889-
.put(DataStreamTestHelper.newInstance("ds2", Collections.singletonList(new Index(".ds-ds2-000001", "ds2i"))))
890-
.put(DataStreamTestHelper.newInstance("ds3", Collections.singletonList(new Index(".ds-ds3-000001", "ds3i"))))
891-
.put(DataStreamTestHelper.newInstance("ds4", Collections.singletonList(new Index(".ds-ds4-000001", "ds4i"))))
892-
)
884+
ProjectMetadata project = ProjectMetadata.builder(randomProjectIdOrDefault())
885+
.put(DataStreamTestHelper.newInstance("ds1", Collections.singletonList(new Index(".ds-ds1-000001", "ds1i"))))
886+
.put(DataStreamTestHelper.newInstance("ds2", Collections.singletonList(new Index(".ds-ds2-000001", "ds2i"))))
887+
.put(DataStreamTestHelper.newInstance("ds3", Collections.singletonList(new Index(".ds-ds3-000001", "ds3i"))))
888+
.put(DataStreamTestHelper.newInstance("ds4", Collections.singletonList(new Index(".ds-ds4-000001", "ds4i"))))
893889
.build();
894890

895891
ComposableIndexTemplate it1 = ComposableIndexTemplate.builder()
@@ -910,16 +906,11 @@ public void testFindRolloverTargetDataStreams() {
910906
.dataStreamTemplate(new ComposableIndexTemplate.DataStreamTemplate())
911907
.build();
912908

913-
state = ClusterState.builder(state)
914-
.metadata(Metadata.builder(state.metadata()).put("it1", it1).put("it2", it2).put("it5", it5))
915-
.build();
909+
project = ProjectMetadata.builder(project).put("it1", it1).put("it2", it2).put("it5", it5).build();
916910

917-
assertThat(
918-
IndexTemplateRegistry.findRolloverTargetDataStreams(state.metadata().getProject(), "it1", it1),
919-
containsInAnyOrder("ds1", "ds3")
920-
);
921-
assertThat(IndexTemplateRegistry.findRolloverTargetDataStreams(state.metadata().getProject(), "it2", it2), contains("ds2"));
922-
assertThat(IndexTemplateRegistry.findRolloverTargetDataStreams(state.metadata().getProject(), "it5", it5), empty());
911+
assertThat(IndexTemplateRegistry.findRolloverTargetDataStreams(project, "it1", it1), containsInAnyOrder("ds1", "ds3"));
912+
assertThat(IndexTemplateRegistry.findRolloverTargetDataStreams(project, "it2", it2), contains("ds2"));
913+
assertThat(IndexTemplateRegistry.findRolloverTargetDataStreams(project, "it5", it5), empty());
923914
}
924915

925916
// -------------

x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/analytics/AnalyticsTemplateRegistryTests.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
import org.elasticsearch.cluster.metadata.ComponentTemplate;
2323
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2424
import org.elasticsearch.cluster.metadata.Metadata;
25+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2526
import org.elasticsearch.cluster.node.DiscoveryNode;
2627
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2728
import org.elasticsearch.cluster.node.DiscoveryNodes;
2829
import org.elasticsearch.cluster.project.TestProjectResolvers;
2930
import org.elasticsearch.cluster.service.ClusterService;
3031
import org.elasticsearch.common.TriFunction;
3132
import org.elasticsearch.common.bytes.BytesArray;
32-
import org.elasticsearch.common.settings.Settings;
3333
import org.elasticsearch.core.Strings;
3434
import org.elasticsearch.ingest.IngestMetadata;
3535
import org.elasticsearch.ingest.PipelineConfiguration;
@@ -452,16 +452,15 @@ private ClusterState createClusterState(
452452
.collect(Collectors.toMap(Map.Entry::getKey, e -> new LifecyclePolicyMetadata(e.getValue(), Collections.emptyMap(), 1, 1)));
453453
IndexLifecycleMetadata ilmMeta = new IndexLifecycleMetadata(existingILMMeta, OperationMode.RUNNING);
454454

455+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
456+
.indexTemplates(composableTemplates)
457+
.componentTemplates(componentTemplates)
458+
.putCustom(IngestMetadata.TYPE, ingestMetadata)
459+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
460+
.build();
455461
return ClusterState.builder(new ClusterName("test"))
456-
.metadata(
457-
Metadata.builder()
458-
.indexTemplates(composableTemplates)
459-
.componentTemplates(componentTemplates)
460-
.transientSettings(Settings.EMPTY)
461-
.putCustom(IngestMetadata.TYPE, ingestMetadata)
462-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
463-
.build()
464-
)
462+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
463+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
465464
.blocks(new ClusterBlocks.Builder().build())
466465
.nodes(nodes)
467466
.build();

x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/connector/ConnectorTemplateRegistryTests.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
import org.elasticsearch.cluster.metadata.ComponentTemplate;
2323
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2424
import org.elasticsearch.cluster.metadata.Metadata;
25+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2526
import org.elasticsearch.cluster.node.DiscoveryNode;
2627
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2728
import org.elasticsearch.cluster.node.DiscoveryNodes;
2829
import org.elasticsearch.cluster.project.TestProjectResolvers;
2930
import org.elasticsearch.cluster.service.ClusterService;
3031
import org.elasticsearch.common.TriFunction;
3132
import org.elasticsearch.common.bytes.BytesArray;
32-
import org.elasticsearch.common.settings.Settings;
3333
import org.elasticsearch.core.Strings;
3434
import org.elasticsearch.ingest.IngestMetadata;
3535
import org.elasticsearch.ingest.PipelineConfiguration;
@@ -478,16 +478,15 @@ private ClusterState createClusterState(
478478
.collect(Collectors.toMap(Map.Entry::getKey, e -> new LifecyclePolicyMetadata(e.getValue(), Collections.emptyMap(), 1, 1)));
479479
IndexLifecycleMetadata ilmMeta = new IndexLifecycleMetadata(existingILMMeta, OperationMode.RUNNING);
480480

481+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
482+
.indexTemplates(composableTemplates)
483+
.componentTemplates(componentTemplates)
484+
.putCustom(IngestMetadata.TYPE, ingestMetadata)
485+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
486+
.build();
481487
return ClusterState.builder(new ClusterName("test"))
482-
.metadata(
483-
Metadata.builder()
484-
.indexTemplates(composableTemplates)
485-
.componentTemplates(componentTemplates)
486-
.transientSettings(Settings.EMPTY)
487-
.putCustom(IngestMetadata.TYPE, ingestMetadata)
488-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
489-
.build()
490-
)
488+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
489+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
491490
.blocks(new ClusterBlocks.Builder().build())
492491
.nodes(nodes)
493492
.build();

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringTemplateRegistryTests.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.elasticsearch.cluster.block.ClusterBlocks;
2222
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2323
import org.elasticsearch.cluster.metadata.Metadata;
24+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2425
import org.elasticsearch.cluster.node.DiscoveryNode;
2526
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2627
import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -383,7 +384,7 @@ private ClusterChangedEvent createClusterChangedEvent(
383384
Map<String, LifecyclePolicy> existingPolicies,
384385
DiscoveryNodes nodes
385386
) {
386-
ClusterState cs = createClusterState(Settings.EMPTY, existingTemplates, existingPolicies, nodes);
387+
ClusterState cs = createClusterState(existingTemplates, existingPolicies, nodes);
387388
ClusterChangedEvent realEvent = new ClusterChangedEvent(
388389
"created-from-test",
389390
cs,
@@ -396,7 +397,6 @@ private ClusterChangedEvent createClusterChangedEvent(
396397
}
397398

398399
private ClusterState createClusterState(
399-
Settings nodeSettings,
400400
Map<String, Integer> existingComposableTemplates,
401401
Map<String, LifecyclePolicy> existingPolicies,
402402
DiscoveryNodes nodes
@@ -413,14 +413,13 @@ private ClusterState createClusterState(
413413
.collect(Collectors.toMap(Map.Entry::getKey, e -> new LifecyclePolicyMetadata(e.getValue(), Collections.emptyMap(), 1, 1)));
414414
IndexLifecycleMetadata ilmMeta = new IndexLifecycleMetadata(existingILMMeta, OperationMode.RUNNING);
415415

416+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
417+
.indexTemplates(composableTemplates)
418+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
419+
.build();
416420
return ClusterState.builder(new ClusterName("test"))
417-
.metadata(
418-
Metadata.builder()
419-
.indexTemplates(composableTemplates)
420-
.transientSettings(nodeSettings)
421-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
422-
.build()
423-
)
421+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
422+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
424423
.blocks(new ClusterBlocks.Builder().build())
425424
.nodes(nodes)
426425
.build();

x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/history/SnapshotLifecycleTemplateRegistry.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
package org.elasticsearch.xpack.slm.history;
99

1010
import org.elasticsearch.client.internal.Client;
11-
import org.elasticsearch.cluster.ClusterState;
1211
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
1312
import org.elasticsearch.cluster.service.ClusterService;
1413
import org.elasticsearch.common.settings.Settings;
1514
import org.elasticsearch.threadpool.ThreadPool;
1615
import org.elasticsearch.xcontent.NamedXContentRegistry;
17-
import org.elasticsearch.xpack.core.ilm.IndexLifecycleMetadata;
1816
import org.elasticsearch.xpack.core.ilm.LifecyclePolicy;
1917
import org.elasticsearch.xpack.core.template.IndexTemplateConfig;
2018
import org.elasticsearch.xpack.core.template.IndexTemplateRegistry;
@@ -23,9 +21,6 @@
2321
import java.util.Collections;
2422
import java.util.List;
2523
import java.util.Map;
26-
import java.util.Optional;
27-
import java.util.Set;
28-
import java.util.stream.Collectors;
2924

3025
import static org.elasticsearch.xpack.core.ClientHelper.INDEX_LIFECYCLE_ORIGIN;
3126
import static org.elasticsearch.xpack.core.ilm.LifecycleSettings.SLM_HISTORY_INDEX_ENABLED_SETTING;
@@ -101,18 +96,4 @@ protected List<LifecyclePolicyConfig> getLifecycleConfigs() {
10196
protected String getOrigin() {
10297
return INDEX_LIFECYCLE_ORIGIN; // TODO use separate SLM origin?
10398
}
104-
105-
public boolean validate(ClusterState state) {
106-
boolean allTemplatesPresent = getComposableTemplateConfigs().keySet()
107-
.stream()
108-
.allMatch(name -> state.metadata().getProject().templatesV2().containsKey(name));
109-
110-
Optional<Map<String, LifecyclePolicy>> maybePolicies = Optional.<IndexLifecycleMetadata>ofNullable(
111-
state.metadata().getProject().custom(IndexLifecycleMetadata.TYPE)
112-
).map(IndexLifecycleMetadata::getPolicies);
113-
Set<String> policyNames = getLifecyclePolicies().stream().map(LifecyclePolicy::getName).collect(Collectors.toSet());
114-
115-
boolean allPoliciesPresent = maybePolicies.map(policies -> policies.keySet().containsAll(policyNames)).orElse(false);
116-
return allTemplatesPresent && allPoliciesPresent;
117-
}
11899
}

x-pack/plugin/slm/src/test/java/org/elasticsearch/xpack/slm/history/SnapshotLifecycleTemplateRegistryTests.java

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.elasticsearch.cluster.block.ClusterBlocks;
2121
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2222
import org.elasticsearch.cluster.metadata.Metadata;
23+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2324
import org.elasticsearch.cluster.node.DiscoveryNode;
2425
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2526
import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -303,23 +304,6 @@ public void testThatMissingMasterNodeDoesNothing() {
303304
registry.clusterChanged(event);
304305
}
305306

306-
public void testValidate() {
307-
assertFalse(registry.validate(createClusterState(Settings.EMPTY, Collections.emptyMap(), Collections.emptyMap(), null)));
308-
assertFalse(
309-
registry.validate(
310-
createClusterState(Settings.EMPTY, Collections.singletonMap(SLM_TEMPLATE_NAME, null), Collections.emptyMap(), null)
311-
)
312-
);
313-
314-
Map<String, LifecyclePolicy> policyMap = new HashMap<>();
315-
policyMap.put(SLM_POLICY_NAME, new LifecyclePolicy(SLM_POLICY_NAME, new HashMap<>()));
316-
assertFalse(registry.validate(createClusterState(Settings.EMPTY, Collections.emptyMap(), policyMap, null)));
317-
318-
assertTrue(
319-
registry.validate(createClusterState(Settings.EMPTY, Collections.singletonMap(SLM_TEMPLATE_NAME, null), policyMap, null))
320-
);
321-
}
322-
323307
public void testTemplateNameIsVersioned() {
324308
assertThat(SLM_TEMPLATE_NAME, endsWith("-" + INDEX_TEMPLATE_VERSION));
325309
}
@@ -394,7 +378,7 @@ private ClusterChangedEvent createClusterChangedEvent(
394378
Map<String, LifecyclePolicy> existingPolicies,
395379
DiscoveryNodes nodes
396380
) {
397-
ClusterState cs = createClusterState(Settings.EMPTY, existingTemplates, existingPolicies, nodes);
381+
ClusterState cs = createClusterState(existingTemplates, existingPolicies, nodes);
398382
ClusterChangedEvent realEvent = new ClusterChangedEvent(
399383
"created-from-test",
400384
cs,
@@ -407,7 +391,6 @@ private ClusterChangedEvent createClusterChangedEvent(
407391
}
408392

409393
private ClusterState createClusterState(
410-
Settings nodeSettings,
411394
Map<String, Integer> existingTemplates,
412395
Map<String, LifecyclePolicy> existingPolicies,
413396
DiscoveryNodes nodes
@@ -426,14 +409,13 @@ private ClusterState createClusterState(
426409
.collect(Collectors.toMap(Map.Entry::getKey, e -> new LifecyclePolicyMetadata(e.getValue(), Collections.emptyMap(), 1, 1)));
427410
IndexLifecycleMetadata ilmMeta = new IndexLifecycleMetadata(existingILMMeta, OperationMode.RUNNING);
428411

412+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
413+
.indexTemplates(indexTemplates)
414+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
415+
.build();
429416
return ClusterState.builder(new ClusterName("test"))
430-
.metadata(
431-
Metadata.builder()
432-
.indexTemplates(indexTemplates)
433-
.transientSettings(nodeSettings)
434-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
435-
.build()
436-
)
417+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
418+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
437419
.blocks(new ClusterBlocks.Builder().build())
438420
.nodes(nodes)
439421
.build();

x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.elasticsearch.cluster.metadata.ComponentTemplate;
2323
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
2424
import org.elasticsearch.cluster.metadata.Metadata;
25+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2526
import org.elasticsearch.cluster.node.DiscoveryNode;
2627
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
2728
import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -607,7 +608,7 @@ private ClusterChangedEvent createClusterChangedEvent(
607608
DiscoveryNodes nodes,
608609
boolean addRegistryPipelines
609610
) {
610-
ClusterState cs = createClusterState(Settings.EMPTY, existingTemplates, existingPolicies, nodes, addRegistryPipelines);
611+
ClusterState cs = createClusterState(existingTemplates, existingPolicies, nodes, addRegistryPipelines);
611612
ClusterChangedEvent realEvent = new ClusterChangedEvent(
612613
"created-from-test",
613614
cs,
@@ -620,7 +621,6 @@ private ClusterChangedEvent createClusterChangedEvent(
620621
}
621622

622623
private ClusterState createClusterState(
623-
Settings nodeSettings,
624624
Map<String, Integer> existingComponentTemplates,
625625
Map<String, LifecyclePolicy> existingPolicies,
626626
DiscoveryNodes nodes,
@@ -651,15 +651,14 @@ private ClusterState createClusterState(
651651
}
652652
IngestMetadata ingestMetadata = new IngestMetadata(ingestPipelines);
653653

654+
final var project = ProjectMetadata.builder(randomProjectIdOrDefault())
655+
.componentTemplates(componentTemplates)
656+
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
657+
.putCustom(IngestMetadata.TYPE, ingestMetadata)
658+
.build();
654659
return ClusterState.builder(new ClusterName("test"))
655-
.metadata(
656-
Metadata.builder()
657-
.componentTemplates(componentTemplates)
658-
.transientSettings(nodeSettings)
659-
.putCustom(IndexLifecycleMetadata.TYPE, ilmMeta)
660-
.putCustom(IngestMetadata.TYPE, ingestMetadata)
661-
.build()
662-
)
660+
// We need to ensure only one project is present in the cluster state to simplify the assertions in these tests.
661+
.metadata(Metadata.builder().projectMetadata(Map.of(project.id(), project)).build())
663662
.blocks(new ClusterBlocks.Builder().build())
664663
.nodes(nodes)
665664
.build();

0 commit comments

Comments
 (0)