Skip to content

Commit 26af09c

Browse files
authored
Avoiding using getDefaultBackingIndexName in DataStreamLifecycleServiceIT (#99062) (#99485)
Avoiding using getDefaultBackingIndexName() in DataStreamLifecycleServiceIT because it causes failures if the test runs across midnight.
1 parent 2d6e62f commit 26af09c

File tree

1 file changed

+26
-39
lines changed

1 file changed

+26
-39
lines changed

modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecycleServiceIT.java

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
import java.util.Set;
6767
import java.util.stream.Collectors;
6868

69-
import static org.elasticsearch.cluster.metadata.DataStream.getDefaultBackingIndexName;
7069
import static org.elasticsearch.cluster.metadata.DataStreamTestHelper.backingIndexEqualTo;
7170
import static org.elasticsearch.cluster.metadata.IndexMetadata.APIBlock.READ_ONLY;
7271
import static org.elasticsearch.cluster.metadata.MetadataIndexTemplateService.DEFAULT_TIMESTAMP_FIELD;
@@ -306,7 +305,7 @@ public void testAutomaticForceMerge() throws Exception {
306305
int finalGeneration = randomIntBetween(3, 4);
307306
for (int currentGeneration = 1; currentGeneration < finalGeneration; currentGeneration++) {
308307
// This is currently the write index, but it will be rolled over as soon as data stream lifecycle runs:
309-
final String toBeRolledOverIndex = DataStream.getDefaultBackingIndexName(dataStreamName, currentGeneration);
308+
final String toBeRolledOverIndex = getBackingIndices(dataStreamName).get(currentGeneration - 1);
310309
for (int i = 0; i < randomIntBetween(10, 50); i++) {
311310
indexDocs(dataStreamName, randomIntBetween(1, 300));
312311
// Make sure the segments get written:
@@ -318,7 +317,7 @@ public void testAutomaticForceMerge() throws Exception {
318317
if (currentGeneration == 1) {
319318
toBeForceMergedIndex = null; // Not going to be used
320319
} else {
321-
toBeForceMergedIndex = DataStream.getDefaultBackingIndexName(dataStreamName, currentGeneration - 1);
320+
toBeForceMergedIndex = getBackingIndices(dataStreamName).get(currentGeneration - 2);
322321
}
323322
int currentBackingIndexCount = currentGeneration;
324323
DataStreamLifecycleService dataStreamLifecycleService = internalCluster().getInstance(
@@ -410,7 +409,7 @@ public void testErrorRecordingOnRollover() throws Exception {
410409
indexDocs(dataStreamName, 1);
411410

412411
assertBusy(() -> {
413-
String writeIndexName = DataStream.getDefaultBackingIndexName(dataStreamName, 2);
412+
String writeIndexName = getBackingIndices(dataStreamName).get(1);
414413
String writeIndexRolloverError = null;
415414
Iterable<DataStreamLifecycleService> lifecycleServices = internalCluster().getInstances(DataStreamLifecycleService.class);
416415

@@ -429,20 +428,15 @@ public void testErrorRecordingOnRollover() throws Exception {
429428
updateClusterSettings(Settings.builder().putNull("*"));
430429

431430
assertBusy(() -> {
432-
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(new String[] { dataStreamName });
433-
GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest)
434-
.actionGet();
435-
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
436-
assertThat(getDataStreamResponse.getDataStreams().get(0).getDataStream().getName(), equalTo(dataStreamName));
437-
List<Index> backingIndices = getDataStreamResponse.getDataStreams().get(0).getDataStream().getIndices();
431+
List<String> backingIndices = getBackingIndices(dataStreamName);
438432
assertThat(backingIndices.size(), equalTo(3));
439-
String writeIndex = backingIndices.get(2).getName();
433+
String writeIndex = backingIndices.get(2);
440434
// rollover was successful and we got to generation 3
441435
assertThat(writeIndex, backingIndexEqualTo(dataStreamName, 3));
442436

443437
// we recorded the error against the previous write index (generation 2)
444438
// let's check there's no error recorded against it anymore
445-
String previousWriteInddex = DataStream.getDefaultBackingIndexName(dataStreamName, 2);
439+
String previousWriteInddex = backingIndices.get(1);
446440
Iterable<DataStreamLifecycleService> lifecycleServices = internalCluster().getInstances(DataStreamLifecycleService.class);
447441

448442
for (DataStreamLifecycleService lifecycleService : lifecycleServices) {
@@ -491,7 +485,7 @@ public void testErrorRecordingOnRetention() throws Exception {
491485
assertThat(writeIndex, backingIndexEqualTo(dataStreamName, 2));
492486
});
493487

494-
String firstGenerationIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1L);
488+
String firstGenerationIndex = getBackingIndices(dataStreamName).get(0);
495489

496490
// mark the first generation index as read-only so deletion fails when we enable the retention configuration
497491
updateIndexSettings(Settings.builder().put(READ_ONLY.settingName(), true), firstGenerationIndex);
@@ -585,7 +579,7 @@ public void testDataLifecycleServiceConfiguresTheMergePolicy() throws Exception
585579
assertThat(writeIndex, backingIndexEqualTo(dataStreamName, 2));
586580
});
587581

588-
String firstGenerationIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1L);
582+
String firstGenerationIndex = getBackingIndices(dataStreamName).get(0);
589583
ClusterGetSettingsAction.Response response = client().execute(
590584
ClusterGetSettingsAction.INSTANCE,
591585
new ClusterGetSettingsAction.Request()
@@ -623,16 +617,11 @@ public void testDataLifecycleServiceConfiguresTheMergePolicy() throws Exception
623617

624618
// let's allow one rollover to go through
625619
assertBusy(() -> {
626-
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(new String[] { dataStreamName });
627-
GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest)
628-
.actionGet();
629-
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
630-
assertThat(getDataStreamResponse.getDataStreams().get(0).getDataStream().getName(), equalTo(dataStreamName));
631-
List<Index> backingIndices = getDataStreamResponse.getDataStreams().get(0).getDataStream().getIndices();
620+
List<String> backingIndices = getBackingIndices(dataStreamName);
632621
assertThat(backingIndices.size(), equalTo(3));
633622
});
634623

635-
String secondGenerationIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1L);
624+
String secondGenerationIndex = getBackingIndices(dataStreamName).get(1);
636625
// check the 2nd generation index picked up the new setting values
637626
assertBusy(() -> {
638627
GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices(secondGenerationIndex).includeDefaults(true);
@@ -648,6 +637,15 @@ public void testDataLifecycleServiceConfiguresTheMergePolicy() throws Exception
648637
});
649638
}
650639

640+
private static List<String> getBackingIndices(String dataStreamName) {
641+
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(new String[] { dataStreamName });
642+
GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest)
643+
.actionGet();
644+
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
645+
assertThat(getDataStreamResponse.getDataStreams().get(0).getDataStream().getName(), equalTo(dataStreamName));
646+
return getDataStreamResponse.getDataStreams().get(0).getDataStream().getIndices().stream().map(Index::getName).toList();
647+
}
648+
651649
static void indexDocs(String dataStream, int numDocs) {
652650
BulkRequest bulkRequest = new BulkRequest();
653651
for (int i = 0; i < numDocs; i++) {
@@ -678,10 +676,10 @@ public void testReenableDataStreamLifecycle() throws Exception {
678676
client().execute(CreateDataStreamAction.INSTANCE, createDataStreamRequest).get();
679677

680678
indexDocs(dataStreamName, 10);
681-
679+
List<String> backingIndices = getBackingIndices(dataStreamName);
682680
{
683681
// backing index should not be managed
684-
String writeIndex = getDefaultBackingIndexName(dataStreamName, 1);
682+
String writeIndex = backingIndices.get(0);
685683

686684
ExplainDataStreamLifecycleAction.Response dataStreamLifecycleExplainResponse = client().execute(
687685
ExplainDataStreamLifecycleAction.INSTANCE,
@@ -695,14 +693,8 @@ public void testReenableDataStreamLifecycle() throws Exception {
695693

696694
{
697695
// data stream has only one backing index
698-
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(new String[] { dataStreamName });
699-
GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest)
700-
.actionGet();
701-
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
702-
assertThat(getDataStreamResponse.getDataStreams().get(0).getDataStream().getName(), equalTo(dataStreamName));
703-
List<Index> backingIndices = getDataStreamResponse.getDataStreams().get(0).getDataStream().getIndices();
704696
assertThat(backingIndices.size(), equalTo(1));
705-
String writeIndex = getDefaultBackingIndexName(dataStreamName, 1);
697+
String writeIndex = backingIndices.get(0);
706698
assertThat(writeIndex, backingIndexEqualTo(dataStreamName, 1));
707699
}
708700

@@ -714,16 +706,11 @@ public void testReenableDataStreamLifecycle() throws Exception {
714706
);
715707

716708
assertBusy(() -> {
717-
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(new String[] { dataStreamName });
718-
GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest)
719-
.actionGet();
720-
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
721-
assertThat(getDataStreamResponse.getDataStreams().get(0).getDataStream().getName(), equalTo(dataStreamName));
722-
List<Index> backingIndices = getDataStreamResponse.getDataStreams().get(0).getDataStream().getIndices();
723-
assertThat(backingIndices.size(), equalTo(2));
724-
String backingIndex = backingIndices.get(0).getName();
709+
List<String> currentBackingIndices = getBackingIndices(dataStreamName);
710+
assertThat(currentBackingIndices.size(), equalTo(2));
711+
String backingIndex = currentBackingIndices.get(0);
725712
assertThat(backingIndex, backingIndexEqualTo(dataStreamName, 1));
726-
String writeIndex = backingIndices.get(1).getName();
713+
String writeIndex = currentBackingIndices.get(1);
727714
assertThat(writeIndex, backingIndexEqualTo(dataStreamName, 2));
728715
});
729716
}

0 commit comments

Comments
 (0)