From 2855f4887c3cb46a7fe5f8921586a35a88fb97ed Mon Sep 17 00:00:00 2001 From: Niels Bauman Date: Fri, 25 Apr 2025 11:46:52 +0200 Subject: [PATCH 1/2] Remove test usages of `getDefaultBackingIndexName` in DS and LogsDB tests We replace usages of time sensitive `DataStream#getDefaultBackingIndexName` with the retrieval of the name via an API call. The problem with using the time sensitive method is that we can have test failures around midnight. Relates #123376 --- .../datastreams/DataStreamIT.java | 21 ++++++++----------- .../datastreams/DataStreamsSnapshotsIT.java | 10 ++++----- .../elasticsearch/test/ESIntegTestCase.java | 2 +- .../xpack/logsdb/LogsdbWithBasicRestIT.java | 4 ++-- .../xpack/logsdb/LogsdbRestIT.java | 6 +++--- 5 files changed, 20 insertions(+), 23 deletions(-) diff --git a/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamIT.java b/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamIT.java index 968aab2dceab6..057219c341669 100644 --- a/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamIT.java +++ b/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamIT.java @@ -202,8 +202,8 @@ public void testBasicScenario() throws Exception { int numDocsFoo = randomIntBetween(2, 16); indexDocs("metrics-foo", numDocsFoo); - verifyDocs("metrics-bar", numDocsBar, 1, 1); - verifyDocs("metrics-foo", numDocsFoo, 1, 1); + verifyDocs("metrics-bar", numDocsBar); + verifyDocs("metrics-foo", numDocsFoo); RolloverResponse fooRolloverResponse = indicesAdmin().rolloverIndex(new RolloverRequest("metrics-foo", null)).get(); assertThat(fooRolloverResponse.getNewIndex(), backingIndexEqualTo("metrics-foo", 2)); @@ -234,8 +234,8 @@ public void testBasicScenario() throws Exception { int numDocsFoo2 = randomIntBetween(2, 16); indexDocs("metrics-foo", numDocsFoo2); - verifyDocs("metrics-bar", numDocsBar + numDocsBar2, 1, 2); - verifyDocs("metrics-foo", numDocsFoo + numDocsFoo2, 1, 2); + verifyDocs("metrics-bar", numDocsBar + numDocsBar2); + verifyDocs("metrics-foo", numDocsFoo + numDocsFoo2); DeleteDataStreamAction.Request deleteDataStreamRequest = new DeleteDataStreamAction.Request(TEST_REQUEST_TIMEOUT, "metrics-*"); client().execute(DeleteDataStreamAction.INSTANCE, deleteDataStreamRequest).actionGet(); @@ -469,7 +469,7 @@ public void testComposableTemplateOnlyMatchingWithDataStreamName() throws Except int numDocs = randomIntBetween(2, 16); indexDocs(dataStreamName, numDocs); - verifyDocs(dataStreamName, numDocs, 1, 1); + verifyDocs(dataStreamName, numDocs); GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request(TEST_REQUEST_TIMEOUT, new String[] { "*" }); GetDataStreamAction.Response getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest) @@ -504,7 +504,7 @@ public void testComposableTemplateOnlyMatchingWithDataStreamName() throws Except int numDocs2 = randomIntBetween(2, 16); indexDocs(dataStreamName, numDocs2); - verifyDocs(dataStreamName, numDocs + numDocs2, 1, 2); + verifyDocs(dataStreamName, numDocs + numDocs2); getDataStreamRequest = new GetDataStreamAction.Request(TEST_REQUEST_TIMEOUT, new String[] { "*" }); getDataStreamResponse = client().execute(GetDataStreamAction.INSTANCE, getDataStreamRequest).actionGet(); @@ -959,7 +959,7 @@ public void testAliasActionsFailOnDataStreamBackingIndices() throws Exception { ); client().execute(CreateDataStreamAction.INSTANCE, createDataStreamRequest).get(); - String backingIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1); + String backingIndex = getDataStreamBackingIndexNames(dataStreamName).getFirst(); AliasActions addAction = new AliasActions(AliasActions.Type.ADD).index(backingIndex).aliases("first_gen"); IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest(TEST_REQUEST_TIMEOUT, TEST_REQUEST_TIMEOUT); aliasesAddRequest.addAliasAction(addAction); @@ -2050,11 +2050,8 @@ static void verifyDocs(String dataStream, long expectedNumHits, List exp }); } - static void verifyDocs(String dataStream, long expectedNumHits, long minGeneration, long maxGeneration) { - List expectedIndices = new ArrayList<>(); - for (long k = minGeneration; k <= maxGeneration; k++) { - expectedIndices.add(DataStream.getDefaultBackingIndexName(dataStream, k)); - } + static void verifyDocs(String dataStream, long expectedNumHits) { + List expectedIndices = getDataStreamBackingIndexNames(dataStream); verifyDocs(dataStream, expectedNumHits, expectedIndices); } diff --git a/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamsSnapshotsIT.java b/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamsSnapshotsIT.java index 09953ac7a71ce..bdac4809834cd 100644 --- a/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamsSnapshotsIT.java +++ b/modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamsSnapshotsIT.java @@ -35,8 +35,8 @@ import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.client.internal.Client; -import org.elasticsearch.cluster.metadata.DataStream; import org.elasticsearch.cluster.metadata.DataStreamAlias; +import org.elasticsearch.cluster.metadata.DataStreamTestHelper; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.index.Index; @@ -301,8 +301,8 @@ public void testSnapshotAndRestoreInPlace() { RolloverRequest rolloverRequest = new RolloverRequest("ds", null); RolloverResponse rolloverResponse = client.admin().indices().rolloverIndex(rolloverRequest).actionGet(); assertThat(rolloverResponse.isRolledOver(), is(true)); - String backingIndexAfterSnapshot = DataStream.getDefaultBackingIndexName("ds", 2); - assertThat(rolloverResponse.getNewIndex(), equalTo(backingIndexAfterSnapshot)); + String backingIndexAfterSnapshot = getDataStreamBackingIndexNames("ds").getFirst(); + assertThat(rolloverResponse.getNewIndex(), DataStreamTestHelper.backingIndexEqualTo("ds", 2)); // Close all backing indices of ds data stream: CloseIndexRequest closeIndexRequest = new CloseIndexRequest(".ds-ds-*"); @@ -337,7 +337,7 @@ public void testSnapshotAndRestoreInPlace() { rolloverRequest = new RolloverRequest("ds", null); rolloverResponse = client.admin().indices().rolloverIndex(rolloverRequest).actionGet(); assertThat(rolloverResponse.isRolledOver(), is(true)); - assertThat(rolloverResponse.getNewIndex(), equalTo(DataStream.getDefaultBackingIndexName("ds", 3))); + assertThat(rolloverResponse.getNewIndex(), DataStreamTestHelper.backingIndexEqualTo("ds", 3)); } public void testFailureStoreSnapshotAndRestore() { @@ -915,7 +915,7 @@ public void testDataStreamAndBackingIndicesAreRenamedUsingRegex() { List dataStreamInfos = getDataStreamInfo("test-ds"); assertThat( dataStreamInfos.get(0).getDataStream().getIndices().get(0).getName(), - is(DataStream.getDefaultBackingIndexName("test-ds", 1L)) + DataStreamTestHelper.backingIndexEqualTo("test-ds", 1) ); // data stream "ds" should still exist in the system diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java index d3f906eda9f32..7cf20ad0cd5bd 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java @@ -906,7 +906,7 @@ public static List getDataStreamBackingIndexNames(String dataStreamName, GetDataStreamAction.Response response = safeGet( client().execute( GetDataStreamAction.INSTANCE, - new GetDataStreamAction.Request(TEST_REQUEST_TIMEOUT, new String[] { dataStreamName }) + new GetDataStreamAction.Request(SAFE_AWAIT_TIMEOUT, new String[] { dataStreamName }) ) ); assertThat(response.getDataStreams().size(), equalTo(1)); diff --git a/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java b/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java index 038e553046cad..8b0a754636530 100644 --- a/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java +++ b/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java @@ -178,7 +178,7 @@ public void testLogsdbOverrideDefaultModeForLogsIndex() throws IOException { """); assertOK(client().performRequest(request)); - String index = DataStream.getDefaultBackingIndexName("logs-test-foo", 1); + String index = getDataStreamBackingIndexNames("logs-test-foo").getFirst(); var settings = (Map) ((Map) getIndexSettings(index).get(index)).get("settings"); assertEquals("logsdb", settings.get("index.mode")); assertEquals(SourceFieldMapper.Mode.STORED.toString(), settings.get("index.mapping.source.mode")); @@ -231,7 +231,7 @@ public void testLogsdbRouteOnSortFields() throws IOException { """); assertOK(client().performRequest(request)); - String index = DataStream.getDefaultBackingIndexName("my-log-foo", 1); + String index = getDataStreamBackingIndexNames("my-log-foo").getFirst(); var settings = (Map) ((Map) getIndexSettings(index).get(index)).get("settings"); assertEquals("logsdb", settings.get("index.mode")); assertEquals(SourceFieldMapper.Mode.STORED.toString(), settings.get("index.mapping.source.mode")); diff --git a/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java b/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java index 69c1496cf479f..035a4a9b51064 100644 --- a/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java +++ b/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java @@ -114,7 +114,7 @@ public void testLogsdbSourceModeForLogsIndex() throws IOException { """); assertOK(client().performRequest(request)); - String index = DataStream.getDefaultBackingIndexName("logs-test-foo", 1); + String index = getDataStreamBackingIndexNames("logs-test-foo").getFirst(); var settings = (Map) ((Map) getIndexSettings(index).get(index)).get("settings"); assertEquals("logsdb", settings.get("index.mode")); assertNull(settings.get("index.mapping.source.mode")); @@ -281,7 +281,7 @@ public void testLogsdbRouteOnSortFields() throws IOException { """); assertOK(client().performRequest(request)); - String index = DataStream.getDefaultBackingIndexName("my-log-foo", 1); + String index = getDataStreamBackingIndexNames("my-log-foo").getFirst(); var settings = (Map) ((Map) getIndexSettings(index).get(index)).get("settings"); assertEquals("logsdb", settings.get("index.mode")); assertNull(settings.get("index.mapping.source.mode")); @@ -335,7 +335,7 @@ public void testLogsdbDefaultWithRecoveryUseSyntheticSource() throws IOException """); assertOK(client().performRequest(request)); - String index = DataStream.getDefaultBackingIndexName("my-log-foo", 1); + String index = getDataStreamBackingIndexNames("my-log-foo").getFirst(); var settings = (Map) ((Map) getIndexSettings(index).get(index)).get("settings"); assertEquals("logsdb", settings.get("index.mode")); assertNull(settings.get("index.mapping.source.mode")); From d56761ed31a0fa0e16e9531fae55da541e1636cb Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Fri, 25 Apr 2025 10:41:25 +0000 Subject: [PATCH 2/2] [CI] Auto commit changes from spotless --- .../org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java | 1 - .../java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java | 1 - 2 files changed, 2 deletions(-) diff --git a/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java b/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java index 8b0a754636530..0ee101161874a 100644 --- a/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java +++ b/x-pack/plugin/logsdb/qa/with-basic/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbWithBasicRestIT.java @@ -8,7 +8,6 @@ package org.elasticsearch.xpack.logsdb; import org.elasticsearch.client.Request; -import org.elasticsearch.cluster.metadata.DataStream; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.IndexSettings; diff --git a/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java b/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java index 035a4a9b51064..b4ebab693b591 100644 --- a/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java +++ b/x-pack/plugin/logsdb/src/javaRestTest/java/org/elasticsearch/xpack/logsdb/LogsdbRestIT.java @@ -8,7 +8,6 @@ package org.elasticsearch.xpack.logsdb; import org.elasticsearch.client.Request; -import org.elasticsearch.cluster.metadata.DataStream; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.time.DateFormatter;