mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
Create dedicated factory methods for data lifecycle (#126487)
The class `DataStreamLifecycle` is currently capturing the lifecycle configuration that currently manages all data stream indices, but soon enough it will be split into two variants, the data and the failures lifecycle. Some pre-work has been done already but as we are progressing in our POC, we see that it will be really useful if the `DataStreamLifecycle` is "aware" of the target index component. This will allow us to correctly apply global retention or to throw an error if a downsampling configuration is provided to a failure lifecycle. In this PR, we perform a small refactoring to reduce the noise in https://github.com/elastic/elasticsearch/pull/125658. Here we introduce the following: - A factory method that creates a data lifecycle, for now it's trivial but it will be more useful soon. - We rename the "empty" builder to explicitly mention the index component it refers to.
This commit is contained in:
parent
1e7c6abaf6
commit
b9917086e1
35 changed files with 225 additions and 164 deletions
|
@ -1384,7 +1384,9 @@ public class DataStreamIT extends ESIntegTestCase {
|
|||
|
||||
public void testGetDataStream() throws Exception {
|
||||
Settings settings = Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, maximumNumberOfReplicas() + 2).build();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()).buildTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomPositiveTimeValue())
|
||||
.buildTemplate();
|
||||
putComposableIndexTemplate("template_for_foo", null, List.of("metrics-foo*"), settings, null, null, lifecycle, false);
|
||||
int numDocsFoo = randomIntBetween(2, 16);
|
||||
indexDocs("metrics-foo", numDocsFoo);
|
||||
|
|
|
@ -401,7 +401,9 @@ public class SystemDataStreamIT extends ESIntegTestCase {
|
|||
Type.EXTERNAL,
|
||||
ComposableIndexTemplate.builder()
|
||||
.indexPatterns(List.of(".test-failure-store"))
|
||||
.template(Template.builder().mappings(new CompressedXContent("""
|
||||
.template(
|
||||
Template.builder()
|
||||
.mappings(new CompressedXContent("""
|
||||
{
|
||||
"properties": {
|
||||
"@timestamp" : {
|
||||
|
@ -411,7 +413,11 @@ public class SystemDataStreamIT extends ESIntegTestCase {
|
|||
"type": "long"
|
||||
}
|
||||
}
|
||||
}""")).dataStreamOptions(new DataStreamOptions.Template(new DataStreamFailureStore.Template(true))))
|
||||
}"""))
|
||||
.dataStreamOptions(
|
||||
new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(true).buildTemplate())
|
||||
)
|
||||
)
|
||||
.dataStreamTemplate(new ComposableIndexTemplate.DataStreamTemplate())
|
||||
.build(),
|
||||
Map.of(),
|
||||
|
|
|
@ -25,7 +25,7 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
|
||||
import static org.elasticsearch.datastreams.lifecycle.DataStreamLifecycleFixtures.putComposableIndexTemplate;
|
||||
import static org.elasticsearch.datastreams.lifecycle.DataStreamLifecycleFixtures.randomLifecycleTemplate;
|
||||
import static org.elasticsearch.datastreams.lifecycle.DataStreamLifecycleFixtures.randomDataLifecycleTemplate;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
@ -39,7 +39,7 @@ public class CrudDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
}
|
||||
|
||||
public void testGetLifecycle() throws Exception {
|
||||
DataStreamLifecycle.Template lifecycle = randomLifecycleTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = randomDataLifecycleTemplate();
|
||||
putComposableIndexTemplate("id1", null, List.of("with-lifecycle*"), null, null, lifecycle);
|
||||
putComposableIndexTemplate("id2", null, List.of("without-lifecycle*"), null, null, null);
|
||||
{
|
||||
|
@ -226,7 +226,9 @@ public class CrudDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
}
|
||||
|
||||
public void testDeleteLifecycle() throws Exception {
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()).buildTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomPositiveTimeValue())
|
||||
.buildTemplate();
|
||||
putComposableIndexTemplate("id1", null, List.of("with-lifecycle*"), null, null, lifecycle);
|
||||
putComposableIndexTemplate("id2", null, List.of("without-lifecycle*"), null, null, null);
|
||||
{
|
||||
|
|
|
@ -207,7 +207,7 @@ public class CrudSystemDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
Template.builder()
|
||||
.settings(Settings.EMPTY)
|
||||
.mappings(mappings)
|
||||
.lifecycle(DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()))
|
||||
.lifecycle(DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomPositiveTimeValue()))
|
||||
)
|
||||
.dataStreamTemplate(new DataStreamTemplate())
|
||||
.build(),
|
||||
|
|
|
@ -168,7 +168,7 @@ public class DataStreamLifecycleServiceIT extends ESIntegTestCase {
|
|||
}
|
||||
|
||||
public void testRolloverAndRetention() throws Exception {
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).buildTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).buildTemplate();
|
||||
|
||||
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle, false);
|
||||
|
||||
|
@ -290,7 +290,9 @@ public class DataStreamLifecycleServiceIT extends ESIntegTestCase {
|
|||
* days ago, and one with an origination date 1 day ago. After data stream lifecycle runs, we expect the one with the old
|
||||
* origination date to have been deleted, and the one with the newer origination date to remain.
|
||||
*/
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(7)).buildTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueDays(7))
|
||||
.buildTemplate();
|
||||
|
||||
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle, false);
|
||||
|
||||
|
@ -836,7 +838,7 @@ public class DataStreamLifecycleServiceIT extends ESIntegTestCase {
|
|||
|
||||
public void testReenableDataStreamLifecycle() throws Exception {
|
||||
// start with a lifecycle that's not enabled
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder().enabled(false).buildTemplate();
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder().enabled(false).buildTemplate();
|
||||
|
||||
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle, false);
|
||||
String dataStreamName = "metrics-foo";
|
||||
|
@ -892,7 +894,7 @@ public class DataStreamLifecycleServiceIT extends ESIntegTestCase {
|
|||
|
||||
public void testLifecycleAppliedToFailureStore() throws Exception {
|
||||
// We configure a lifecycle with downsampling to ensure it doesn't fail
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueSeconds(20))
|
||||
.downsampling(
|
||||
List.of(
|
||||
|
@ -1088,7 +1090,8 @@ public class DataStreamLifecycleServiceIT extends ESIntegTestCase {
|
|||
Template.builder()
|
||||
.settings(Settings.EMPTY)
|
||||
.lifecycle(
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(SYSTEM_DATA_STREAM_RETENTION_DAYS))
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueDays(SYSTEM_DATA_STREAM_RETENTION_DAYS))
|
||||
)
|
||||
)
|
||||
.build(),
|
||||
|
|
|
@ -265,7 +265,7 @@ public class ExplainDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
null,
|
||||
null,
|
||||
DataStreamLifecycle.Template.DATA_DEFAULT,
|
||||
new DataStreamOptions.Template(new DataStreamFailureStore.Template(true))
|
||||
new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(true).buildTemplate())
|
||||
);
|
||||
String dataStreamName = "metrics-foo";
|
||||
CreateDataStreamAction.Request createDataStreamRequest = new CreateDataStreamAction.Request(
|
||||
|
@ -400,7 +400,7 @@ public class ExplainDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
null,
|
||||
null,
|
||||
lifecycle,
|
||||
new DataStreamOptions.Template(new DataStreamFailureStore.Template(true))
|
||||
new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(true).buildTemplate())
|
||||
);
|
||||
String dataStreamName = "metrics-foo";
|
||||
CreateDataStreamAction.Request createDataStreamRequest = new CreateDataStreamAction.Request(
|
||||
|
@ -501,7 +501,7 @@ public class ExplainDataStreamLifecycleIT extends ESIntegTestCase {
|
|||
List.of("metrics-foo*"),
|
||||
null,
|
||||
null,
|
||||
DataStreamLifecycle.builder().enabled(false).buildTemplate()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().enabled(false).buildTemplate()
|
||||
);
|
||||
CreateDataStreamAction.Request createDataStreamRequest = new CreateDataStreamAction.Request(
|
||||
TEST_REQUEST_TIMEOUT,
|
||||
|
|
|
@ -27,7 +27,6 @@ import org.elasticsearch.cluster.health.ClusterHealthStatus;
|
|||
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
|
||||
import org.elasticsearch.cluster.metadata.DataStreamFailureStore;
|
||||
import org.elasticsearch.cluster.metadata.DataStreamOptions;
|
||||
import org.elasticsearch.cluster.metadata.ResettableValue;
|
||||
import org.elasticsearch.cluster.metadata.Template;
|
||||
import org.elasticsearch.common.compress.CompressedXContent;
|
||||
import org.elasticsearch.index.mapper.extras.MapperExtrasPlugin;
|
||||
|
@ -271,11 +270,9 @@ public class DataStreamsStatsTests extends ESSingleNodeTestCase {
|
|||
|
||||
private String createDataStream(boolean hidden, boolean failureStore) throws Exception {
|
||||
String dataStreamName = randomAlphaOfLength(10).toLowerCase(Locale.getDefault());
|
||||
ResettableValue<DataStreamOptions.Template> failureStoreOptions = failureStore == false
|
||||
? ResettableValue.undefined()
|
||||
: ResettableValue.create(
|
||||
new DataStreamOptions.Template(ResettableValue.create(new DataStreamFailureStore.Template(ResettableValue.create(true))))
|
||||
);
|
||||
DataStreamOptions.Template failureStoreOptions = failureStore == false
|
||||
? null
|
||||
: new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(true).buildTemplate());
|
||||
Template idxTemplate = new Template(null, new CompressedXContent("""
|
||||
{"properties":{"@timestamp":{"type":"date"},"data":{"type":"keyword"}}}
|
||||
"""), null, null, failureStoreOptions);
|
||||
|
|
|
@ -144,7 +144,11 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
}
|
||||
// One lifecycle results to this lifecycle as the final
|
||||
{
|
||||
DataStreamLifecycle.Template lifecycle = new DataStreamLifecycle.Template(true, randomRetention(), randomDownsampling());
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
true,
|
||||
randomRetention(),
|
||||
randomDownsampling()
|
||||
);
|
||||
List<DataStreamLifecycle.Template> lifecycles = List.of(lifecycle);
|
||||
DataStreamLifecycle result = composeDataLifecycles(lifecycles).build();
|
||||
// Defaults to true
|
||||
|
@ -155,7 +159,11 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
// If the last lifecycle is missing a property (apart from enabled) we keep the latest from the previous ones
|
||||
// Enabled is always true unless it's explicitly set to false
|
||||
{
|
||||
DataStreamLifecycle.Template lifecycle = new DataStreamLifecycle.Template(false, randomPositiveTimeValue(), randomRounds());
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
false,
|
||||
randomPositiveTimeValue(),
|
||||
randomRounds()
|
||||
);
|
||||
List<DataStreamLifecycle.Template> lifecycles = List.of(lifecycle, DataStreamLifecycle.Template.DATA_DEFAULT);
|
||||
DataStreamLifecycle result = composeDataLifecycles(lifecycles).build();
|
||||
assertThat(result.enabled(), equalTo(true));
|
||||
|
@ -164,8 +172,16 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
}
|
||||
// If both lifecycle have all properties, then the latest one overwrites all the others
|
||||
{
|
||||
DataStreamLifecycle.Template lifecycle1 = new DataStreamLifecycle.Template(false, randomPositiveTimeValue(), randomRounds());
|
||||
DataStreamLifecycle.Template lifecycle2 = new DataStreamLifecycle.Template(true, randomPositiveTimeValue(), randomRounds());
|
||||
DataStreamLifecycle.Template lifecycle1 = DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
false,
|
||||
randomPositiveTimeValue(),
|
||||
randomRounds()
|
||||
);
|
||||
DataStreamLifecycle.Template lifecycle2 = DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
true,
|
||||
randomPositiveTimeValue(),
|
||||
randomRounds()
|
||||
);
|
||||
List<DataStreamLifecycle.Template> lifecycles = List.of(lifecycle1, lifecycle2);
|
||||
DataStreamLifecycle result = composeDataLifecycles(lifecycles).build();
|
||||
assertThat(result.enabled(), equalTo(lifecycle2.enabled()));
|
||||
|
|
|
@ -153,7 +153,7 @@ public class GetDataStreamsResponseTests extends ESTestCase {
|
|||
.setGeneration(3)
|
||||
.setAllowCustomRouting(true)
|
||||
.setIndexMode(IndexMode.STANDARD)
|
||||
.setLifecycle(new DataStreamLifecycle(false, null, null))
|
||||
.setLifecycle(DataStreamLifecycle.createDataLifecycle(false, null, null))
|
||||
.setDataStreamOptions(DataStreamOptions.FAILURE_STORE_ENABLED)
|
||||
.setFailureIndices(DataStream.DataStreamIndices.failureIndicesBuilder(failureStores).build())
|
||||
.build();
|
||||
|
|
|
@ -128,8 +128,8 @@ public class DataStreamLifecycleFixtures {
|
|||
assertTrue(client().execute(TransportPutComposableIndexTemplateAction.TYPE, request).actionGet().isAcknowledged());
|
||||
}
|
||||
|
||||
static DataStreamLifecycle.Template randomLifecycleTemplate() {
|
||||
return new DataStreamLifecycle.Template(
|
||||
static DataStreamLifecycle.Template randomDataLifecycleTemplate() {
|
||||
return DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
frequently(),
|
||||
randomResettable(ESTestCase::randomTimeValue),
|
||||
randomResettable(DataStreamLifecycleFixtures::randomDownsamplingRounds)
|
||||
|
|
|
@ -206,7 +206,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
numBackingIndices,
|
||||
2,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -269,7 +269,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
numBackingIndices,
|
||||
numFailureIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -304,7 +304,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStream.copy()
|
||||
.setName(dataStreamName)
|
||||
.setGeneration(dataStream.getGeneration() + 1)
|
||||
.setLifecycle(DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build())
|
||||
.setLifecycle(DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build())
|
||||
.build()
|
||||
);
|
||||
clusterState = ClusterState.builder(clusterState).putProjectMetadata(builder).build();
|
||||
|
@ -343,7 +343,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStream.copy()
|
||||
.setName(dataStreamName)
|
||||
.setGeneration(dataStream.getGeneration() + 1)
|
||||
.setLifecycle(DataStreamLifecycle.builder().build())
|
||||
.setLifecycle(DataStreamLifecycle.dataLifecycleBuilder().build())
|
||||
.build()
|
||||
);
|
||||
clusterState = ClusterState.builder(clusterState).putProjectMetadata(builder).build();
|
||||
|
@ -378,7 +378,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueMillis(0)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueMillis(0)).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -456,7 +456,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
Settings.builder()
|
||||
.put(IndexMetadata.LIFECYCLE_NAME, "ILM_policy")
|
||||
.put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -548,7 +548,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
now
|
||||
);
|
||||
// all backing indices are in the error store
|
||||
|
@ -586,7 +586,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
ilmManagedDataStreamName,
|
||||
3,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
now
|
||||
);
|
||||
// all backing indices are in the error store
|
||||
|
@ -600,7 +600,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStreamWithBackingIndicesInErrorState,
|
||||
5,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueDays(700)).build(),
|
||||
now
|
||||
);
|
||||
// put all backing indices in the error store
|
||||
|
@ -652,7 +652,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
numBackingIndices,
|
||||
settings(IndexVersion.current()).put(MergePolicyConfig.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING.getKey(), ONE_HUNDRED_MB)
|
||||
.put(MergePolicyConfig.INDEX_MERGE_POLICY_MERGE_FACTOR_SETTING.getKey(), TARGET_MERGE_FACTOR_VALUE),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -754,7 +754,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
numBackingIndices,
|
||||
settings(IndexVersion.current()).put(MergePolicyConfig.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING.getKey(), ONE_HUNDRED_MB)
|
||||
.put(MergePolicyConfig.INDEX_MERGE_POLICY_MERGE_FACTOR_SETTING.getKey(), TARGET_MERGE_FACTOR_VALUE),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -916,7 +916,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
1L,
|
||||
null,
|
||||
false,
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build()
|
||||
);
|
||||
|
||||
ProjectMetadata.Builder builder = ProjectMetadata.builder(randomProjectIdOrDefault()).put(newIndexMetadata, true).put(dataStream);
|
||||
|
@ -1091,7 +1091,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -1173,7 +1173,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
.put(MergePolicyConfig.INDEX_MERGE_POLICY_MERGE_FACTOR_SETTING.getKey(), TARGET_MERGE_FACTOR_VALUE)
|
||||
.put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
|
||||
.put("index.routing_path", "@timestamp"),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(new DownsamplingRound(TimeValue.timeValueMillis(0), new DownsampleConfig(new DateHistogramInterval("5m"))))
|
||||
)
|
||||
|
@ -1322,7 +1322,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
.put(MergePolicyConfig.INDEX_MERGE_POLICY_MERGE_FACTOR_SETTING.getKey(), TARGET_MERGE_FACTOR_VALUE)
|
||||
.put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
|
||||
.put("index.routing_path", "@timestamp"),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(new DownsamplingRound(TimeValue.timeValueMillis(0), new DownsampleConfig(new DateHistogramInterval("5m"))))
|
||||
)
|
||||
|
@ -1512,7 +1512,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
numBackingIndices,
|
||||
2,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build(),
|
||||
now
|
||||
).copy().setDataStreamOptions(DataStreamOptions.FAILURE_STORE_DISABLED).build(); // failure store is managed even when disabled
|
||||
builder.put(dataStream);
|
||||
|
@ -1581,7 +1581,7 @@ public class DataStreamLifecycleServiceTests extends ESTestCase {
|
|||
2,
|
||||
settings(IndexVersion.current()).put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
|
||||
.put("index.routing_path", "@timestamp"),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(new DownsamplingRound(TimeValue.timeValueMillis(0), new DownsampleConfig(new DateHistogramInterval("5m"))))
|
||||
)
|
||||
|
|
|
@ -95,7 +95,7 @@ public class TransportGetDataStreamLifecycleStatsActionTests extends ESTestCase
|
|||
"dsl-managed-index",
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.timeValueDays(10)).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.timeValueDays(10)).build(),
|
||||
Clock.systemUTC().millis()
|
||||
);
|
||||
indicesInError.add(dslDataStream.getIndices().get(randomInt(numBackingIndices - 1)).getName());
|
||||
|
@ -131,7 +131,7 @@ public class TransportGetDataStreamLifecycleStatsActionTests extends ESTestCase
|
|||
IndexMetadata indexMetadata = indexMetaBuilder.build();
|
||||
builder.put(indexMetadata, false);
|
||||
backingIndices.add(indexMetadata.getIndex());
|
||||
builder.put(newInstance(dataStreamName, backingIndices, 3, null, false, DataStreamLifecycle.builder().build()));
|
||||
builder.put(newInstance(dataStreamName, backingIndices, 3, null, false, DataStreamLifecycle.dataLifecycleBuilder().build()));
|
||||
}
|
||||
ProjectMetadata project = builder.build();
|
||||
when(errorStore.getAllIndices(project.id())).thenReturn(indicesInError);
|
||||
|
|
|
@ -52,7 +52,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -80,7 +80,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
String firstGenIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1);
|
||||
|
@ -125,7 +125,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
builder.put(dataStream);
|
||||
|
@ -159,7 +159,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
String firstGenIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1);
|
||||
|
@ -221,7 +221,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
String firstGenIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1);
|
||||
|
@ -272,7 +272,7 @@ public class DeleteSourceAndAddDownsampleToDSTests extends ESTestCase {
|
|||
dataStreamName,
|
||||
numBackingIndices,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.MAX_VALUE).build(),
|
||||
now
|
||||
);
|
||||
String firstGenIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1);
|
||||
|
|
|
@ -149,7 +149,7 @@ public class PutDataStreamLifecycleAction {
|
|||
) {
|
||||
super(masterNodeTimeout, ackTimeout);
|
||||
this.names = names;
|
||||
this.lifecycle = DataStreamLifecycle.builder()
|
||||
this.lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(dataRetention)
|
||||
.enabled(enabled == null || enabled)
|
||||
.downsampling(downsampling)
|
||||
|
|
|
@ -86,7 +86,7 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
Setting.Property.NodeScope
|
||||
);
|
||||
|
||||
public static final DataStreamLifecycle DEFAULT_DATA_LIFECYCLE = new DataStreamLifecycle(null, null, null);
|
||||
public static final DataStreamLifecycle DEFAULT_DATA_LIFECYCLE = DataStreamLifecycle.createDataLifecycle(null, null, null);
|
||||
|
||||
public static final String DATA_STREAM_LIFECYCLE_ORIGIN = "data_stream_lifecycle";
|
||||
|
||||
|
@ -132,17 +132,27 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
@Nullable
|
||||
private final List<DownsamplingRound> downsampling;
|
||||
|
||||
public DataStreamLifecycle(
|
||||
@Nullable Boolean enabled,
|
||||
@Nullable TimeValue dataRetention,
|
||||
@Nullable List<DownsamplingRound> downsampling
|
||||
) {
|
||||
// Visible for testing, preferably use the factory methods that are specialised by lifecycle type,
|
||||
// for example for the data component.
|
||||
DataStreamLifecycle(@Nullable Boolean enabled, @Nullable TimeValue dataRetention, @Nullable List<DownsamplingRound> downsampling) {
|
||||
this.enabled = enabled == null || enabled;
|
||||
this.dataRetention = dataRetention;
|
||||
DownsamplingRound.validateRounds(downsampling);
|
||||
this.downsampling = downsampling;
|
||||
}
|
||||
|
||||
/**
|
||||
* This factory method creates a lifecycle applicable for the data index component of a data stream. This
|
||||
* means it supports all configuration applicable for backing indices.
|
||||
*/
|
||||
public static DataStreamLifecycle createDataLifecycle(
|
||||
@Nullable Boolean enabled,
|
||||
@Nullable TimeValue dataRetention,
|
||||
@Nullable List<DownsamplingRound> downsampling
|
||||
) {
|
||||
return new DataStreamLifecycle(enabled, dataRetention, downsampling);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true, if this data stream lifecycle configuration is enabled, false otherwise
|
||||
*/
|
||||
|
@ -542,6 +552,22 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
}
|
||||
}
|
||||
|
||||
public static Template createDataLifecycleTemplate(
|
||||
boolean enabled,
|
||||
TimeValue dataRetention,
|
||||
List<DataStreamLifecycle.DownsamplingRound> downsampling
|
||||
) {
|
||||
return new Template(enabled, ResettableValue.create(dataRetention), ResettableValue.create(downsampling));
|
||||
}
|
||||
|
||||
public static Template createDataLifecycleTemplate(
|
||||
boolean enabled,
|
||||
ResettableValue<TimeValue> dataRetention,
|
||||
ResettableValue<List<DataStreamLifecycle.DownsamplingRound>> downsampling
|
||||
) {
|
||||
return new Template(enabled, dataRetention, downsampling);
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the template configuration of a lifecycle. It supports explicitly resettable values
|
||||
* to allow value reset during template composition.
|
||||
|
@ -552,7 +578,7 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
ResettableValue<List<DataStreamLifecycle.DownsamplingRound>> downsampling
|
||||
) implements ToXContentObject, Writeable {
|
||||
|
||||
public Template(boolean enabled, TimeValue dataRetention, List<DataStreamLifecycle.DownsamplingRound> downsampling) {
|
||||
Template(boolean enabled, TimeValue dataRetention, List<DataStreamLifecycle.DownsamplingRound> downsampling) {
|
||||
this(enabled, ResettableValue.create(dataRetention), ResettableValue.create(downsampling));
|
||||
}
|
||||
|
||||
|
@ -736,8 +762,8 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
return new Builder(template);
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder((DataStreamLifecycle) null);
|
||||
public static Builder dataLifecycleBuilder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -750,21 +776,19 @@ public class DataStreamLifecycle implements SimpleDiffable<DataStreamLifecycle>,
|
|||
@Nullable
|
||||
private List<DownsamplingRound> downsampling = null;
|
||||
|
||||
private Builder() {}
|
||||
|
||||
private Builder(DataStreamLifecycle.Template template) {
|
||||
if (template != null) {
|
||||
enabled = template.enabled();
|
||||
dataRetention = template.dataRetention().get();
|
||||
downsampling = template.downsampling().get();
|
||||
}
|
||||
}
|
||||
|
||||
private Builder(DataStreamLifecycle lifecycle) {
|
||||
if (lifecycle != null) {
|
||||
enabled = lifecycle.enabled();
|
||||
dataRetention = lifecycle.dataRetention();
|
||||
downsampling = lifecycle.downsampling();
|
||||
}
|
||||
}
|
||||
|
||||
public Builder composeTemplate(DataStreamLifecycle.Template template) {
|
||||
enabled(template.enabled());
|
||||
|
|
|
@ -61,7 +61,9 @@ public class Template implements SimpleDiffable<Template>, ToXContentObject {
|
|||
a[4] == null ? ResettableValue.undefined() : (ResettableValue<DataStreamOptions.Template>) a[4]
|
||||
)
|
||||
);
|
||||
public static final DataStreamLifecycle.Template DISABLED_LIFECYCLE = DataStreamLifecycle.builder().enabled(false).buildTemplate();
|
||||
public static final DataStreamLifecycle.Template DISABLED_LIFECYCLE = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.enabled(false)
|
||||
.buildTemplate();
|
||||
|
||||
static {
|
||||
PARSER.declareObject(ConstructingObjectParser.optionalConstructorArg(), (p, c) -> Settings.fromXContent(p), SETTINGS);
|
||||
|
|
|
@ -99,7 +99,7 @@ public class GetDataStreamActionTests extends ESTestCase {
|
|||
|
||||
private static DataStream newDataStreamInstance(boolean isSystem, TimeValue retention) {
|
||||
List<Index> indices = List.of(new Index(randomAlphaOfLength(10), randomAlphaOfLength(10)));
|
||||
DataStreamLifecycle lifecycle = new DataStreamLifecycle(true, retention, null);
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.createDataLifecycle(true, retention, null);
|
||||
return DataStream.builder(randomAlphaOfLength(50), indices)
|
||||
.setGeneration(randomLongBetween(1, 1000))
|
||||
.setMetadata(Map.of())
|
||||
|
|
|
@ -200,7 +200,7 @@ public class ExplainIndexDataStreamLifecycleTests extends AbstractWireSerializin
|
|||
TimeValue configuredRetention = TimeValue.timeValueDays(100);
|
||||
TimeValue globalDefaultRetention = TimeValue.timeValueDays(10);
|
||||
TimeValue globalMaxRetention = TimeValue.timeValueDays(50);
|
||||
DataStreamLifecycle dataStreamLifecycle = new DataStreamLifecycle(true, configuredRetention, null);
|
||||
DataStreamLifecycle dataStreamLifecycle = DataStreamLifecycle.createDataLifecycle(true, configuredRetention, null);
|
||||
{
|
||||
boolean isSystemDataStream = true;
|
||||
ExplainIndexDataStreamLifecycle explainIndexDataStreamLifecycle = createManagedIndexDataStreamLifecycleExplanation(
|
||||
|
|
|
@ -96,7 +96,7 @@ public class GetDataStreamLifecycleActionTests extends ESTestCase {
|
|||
TimeValue globalDefaultRetention = TimeValue.timeValueDays(10);
|
||||
TimeValue globalMaxRetention = TimeValue.timeValueDays(50);
|
||||
DataStreamGlobalRetention globalRetention = new DataStreamGlobalRetention(globalDefaultRetention, globalMaxRetention);
|
||||
DataStreamLifecycle lifecycle = new DataStreamLifecycle(true, configuredRetention, null);
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.createDataLifecycle(true, configuredRetention, null);
|
||||
{
|
||||
boolean isInternalDataStream = true;
|
||||
GetDataStreamLifecycleAction.Response.DataStreamLifecycle explainIndexDataStreamLifecycle = createDataStreamLifecycle(
|
||||
|
|
|
@ -90,7 +90,7 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase<
|
|||
templateBuilder.aliases(randomAliases());
|
||||
}
|
||||
if (randomBoolean() && supportsDataStreams) {
|
||||
templateBuilder.lifecycle(DataStreamLifecycleTemplateTests.randomLifecycleTemplate());
|
||||
templateBuilder.lifecycle(DataStreamLifecycleTemplateTests.randomDataLifecycleTemplate());
|
||||
}
|
||||
if (randomBoolean() && supportsDataStreams) {
|
||||
templateBuilder.dataStreamOptions(randomDataStreamOptionsTemplate());
|
||||
|
@ -182,7 +182,7 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase<
|
|||
);
|
||||
case 3 -> new ComponentTemplate(
|
||||
Template.builder(ot)
|
||||
.lifecycle(randomValueOtherThan(ot.lifecycle(), DataStreamLifecycleTemplateTests::randomLifecycleTemplate))
|
||||
.lifecycle(randomValueOtherThan(ot.lifecycle(), DataStreamLifecycleTemplateTests::randomDataLifecycleTemplate))
|
||||
.build(),
|
||||
orig.version(),
|
||||
orig.metadata(),
|
||||
|
@ -273,7 +273,7 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase<
|
|||
Settings settings = null;
|
||||
CompressedXContent mappings = null;
|
||||
Map<String, AliasMetadata> aliases = null;
|
||||
ResettableValue<DataStreamOptions.Template> dataStreamOptions = ResettableValue.undefined();
|
||||
DataStreamOptions.Template dataStreamOptions = null;
|
||||
if (randomBoolean()) {
|
||||
settings = randomSettings();
|
||||
}
|
||||
|
@ -284,7 +284,8 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase<
|
|||
aliases = randomAliases();
|
||||
}
|
||||
if (randomBoolean()) {
|
||||
dataStreamOptions = randomDataStreamOptionsTemplate();
|
||||
// Do not set random lifecycle to avoid having data_retention and effective_retention in the response.
|
||||
dataStreamOptions = new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(randomBoolean()).buildTemplate());
|
||||
}
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
|
||||
ComponentTemplate template = new ComponentTemplate(
|
||||
|
|
|
@ -74,7 +74,7 @@ public class ComposableIndexTemplateTests extends SimpleDiffableSerializationTes
|
|||
builder.aliases(randomAliases());
|
||||
}
|
||||
if (dataStreamTemplate != null && randomBoolean()) {
|
||||
builder.lifecycle(DataStreamLifecycleTemplateTests.randomLifecycleTemplate());
|
||||
builder.lifecycle(DataStreamLifecycleTemplateTests.randomDataLifecycleTemplate());
|
||||
}
|
||||
template = builder.build();
|
||||
}
|
||||
|
@ -174,7 +174,9 @@ public class ComposableIndexTemplateTests extends SimpleDiffableSerializationTes
|
|||
.mappings(randomMappings(orig.getDataStreamTemplate()))
|
||||
.aliases(randomAliases())
|
||||
.lifecycle(
|
||||
orig.getDataStreamTemplate() == null ? null : DataStreamLifecycleTemplateTests.randomLifecycleTemplate()
|
||||
orig.getDataStreamTemplate() == null
|
||||
? null
|
||||
: DataStreamLifecycleTemplateTests.randomDataLifecycleTemplate()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
|
@ -221,7 +223,7 @@ public class ComposableIndexTemplateTests extends SimpleDiffableSerializationTes
|
|||
Settings settings = null;
|
||||
CompressedXContent mappings = null;
|
||||
Map<String, AliasMetadata> aliases = null;
|
||||
ResettableValue<DataStreamOptions.Template> dataStreamOptions = ResettableValue.undefined();
|
||||
DataStreamOptions.Template dataStreamOptions = null;
|
||||
ComposableIndexTemplate.DataStreamTemplate dataStreamTemplate = randomDataStreamTemplate();
|
||||
if (randomBoolean()) {
|
||||
settings = randomSettings();
|
||||
|
@ -233,7 +235,8 @@ public class ComposableIndexTemplateTests extends SimpleDiffableSerializationTes
|
|||
aliases = randomAliases();
|
||||
}
|
||||
if (randomBoolean()) {
|
||||
dataStreamOptions = ComponentTemplateTests.randomDataStreamOptionsTemplate();
|
||||
// Do not set random lifecycle to avoid having data_retention and effective_retention in the response.
|
||||
dataStreamOptions = new DataStreamOptions.Template(DataStreamFailureStore.builder().enabled(randomBoolean()).buildTemplate());
|
||||
}
|
||||
// We use the empty lifecycle so the global retention can be in effect
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
|
||||
|
|
|
@ -31,7 +31,7 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
|
||||
@Override
|
||||
protected DataStreamLifecycle.Template createTestInstance() {
|
||||
return randomLifecycleTemplate();
|
||||
return randomDataLifecycleTemplate();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -57,7 +57,7 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -80,7 +80,7 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -100,7 +100,7 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -120,14 +120,14 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder().downsampling((List.of())).buildTemplate()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder().downsampling((List.of())).buildTemplate()
|
||||
);
|
||||
assertThat(exception.getMessage(), equalTo("Downsampling configuration should have at least one round configured."));
|
||||
}
|
||||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
Stream.iterate(1, i -> i * 2)
|
||||
.limit(12)
|
||||
|
@ -147,7 +147,7 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -165,8 +165,8 @@ public class DataStreamLifecycleTemplateTests extends AbstractXContentSerializin
|
|||
}
|
||||
}
|
||||
|
||||
public static DataStreamLifecycle.Template randomLifecycleTemplate() {
|
||||
return new DataStreamLifecycle.Template(randomBoolean(), randomRetention(), randomDownsampling());
|
||||
public static DataStreamLifecycle.Template randomDataLifecycleTemplate() {
|
||||
return DataStreamLifecycle.createDataLifecycleTemplate(randomBoolean(), randomRetention(), randomDownsampling());
|
||||
}
|
||||
|
||||
private static ResettableValue<TimeValue> randomRetention() {
|
||||
|
|
|
@ -53,7 +53,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
|
||||
@Override
|
||||
protected DataStreamLifecycle createTestInstance() {
|
||||
return randomLifecycle();
|
||||
return randomDataLifecycle();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -172,7 +172,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -195,7 +195,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -215,7 +215,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -235,14 +235,14 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder().downsampling((List.of())).build()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder().downsampling((List.of())).build()
|
||||
);
|
||||
assertThat(exception.getMessage(), equalTo("Downsampling configuration should have at least one round configured."));
|
||||
}
|
||||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
Stream.iterate(1, i -> i * 2)
|
||||
.limit(12)
|
||||
|
@ -262,7 +262,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
{
|
||||
IllegalArgumentException exception = expectThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> DataStreamLifecycle.builder()
|
||||
() -> DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -283,7 +283,9 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
public void testEffectiveRetention() {
|
||||
// No retention in the data stream lifecycle
|
||||
{
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.builder().downsampling(randomDownsampling()).build();
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(randomDownsampling())
|
||||
.build();
|
||||
TimeValue maxRetention = TimeValue.timeValueDays(randomIntBetween(50, 100));
|
||||
TimeValue defaultRetention = TimeValue.timeValueDays(randomIntBetween(1, 50));
|
||||
Tuple<TimeValue, DataStreamLifecycle.RetentionSource> effectiveDataRetentionWithSource = noRetentionLifecycle
|
||||
|
@ -316,7 +318,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
// With retention in the data stream lifecycle
|
||||
{
|
||||
TimeValue dataStreamRetention = TimeValue.timeValueDays(randomIntBetween(5, 100));
|
||||
DataStreamLifecycle lifecycleRetention = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle lifecycleRetention = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(dataStreamRetention)
|
||||
.downsampling(randomDownsampling())
|
||||
.build();
|
||||
|
@ -365,7 +367,7 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
TimeValue.timeValueDays(7),
|
||||
TimeValue.timeValueDays(90)
|
||||
);
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.builder().dataRetention(dataStreamRetention).build();
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.dataLifecycleBuilder().dataRetention(dataStreamRetention).build();
|
||||
|
||||
// Verify that global retention should have kicked in
|
||||
var effectiveDataRetentionWithSource = lifecycle.getEffectiveDataRetentionWithSource(globalRetention, false);
|
||||
|
@ -398,8 +400,8 @@ public class DataStreamLifecycleTests extends AbstractXContentSerializingTestCas
|
|||
}
|
||||
}
|
||||
|
||||
public static DataStreamLifecycle randomLifecycle() {
|
||||
return DataStreamLifecycle.builder()
|
||||
public static DataStreamLifecycle randomDataLifecycle() {
|
||||
return DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomBoolean() ? null : randomTimeValue(1, 365, TimeUnit.DAYS))
|
||||
.downsampling(randomBoolean() ? null : randomDownsampling())
|
||||
.enabled(randomBoolean())
|
||||
|
|
|
@ -58,13 +58,13 @@ public class DataStreamLifecycleWithRetentionWarningsTests extends ESTestCase {
|
|||
ThreadContext threadContext = new ThreadContext(Settings.EMPTY);
|
||||
HeaderWarning.setThreadContext(threadContext);
|
||||
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.builder().downsampling(randomDownsampling()).build();
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.dataLifecycleBuilder().downsampling(randomDownsampling()).build();
|
||||
noRetentionLifecycle.addWarningHeaderIfDataRetentionNotEffective(null, randomBoolean());
|
||||
Map<String, List<String>> responseHeaders = threadContext.getResponseHeaders();
|
||||
assertThat(responseHeaders.isEmpty(), is(true));
|
||||
|
||||
TimeValue dataStreamRetention = TimeValue.timeValueDays(randomIntBetween(5, 100));
|
||||
DataStreamLifecycle lifecycleWithRetention = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle lifecycleWithRetention = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(dataStreamRetention)
|
||||
.downsampling(randomDownsampling())
|
||||
.build();
|
||||
|
@ -81,7 +81,7 @@ public class DataStreamLifecycleWithRetentionWarningsTests extends ESTestCase {
|
|||
ThreadContext threadContext = new ThreadContext(Settings.EMPTY);
|
||||
HeaderWarning.setThreadContext(threadContext);
|
||||
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.builder().downsampling(randomDownsampling()).build();
|
||||
DataStreamLifecycle noRetentionLifecycle = DataStreamLifecycle.dataLifecycleBuilder().downsampling(randomDownsampling()).build();
|
||||
DataStreamGlobalRetention globalRetention = new DataStreamGlobalRetention(
|
||||
randomTimeValue(2, 10, TimeUnit.DAYS),
|
||||
randomBoolean() ? null : TimeValue.timeValueDays(20)
|
||||
|
@ -103,7 +103,7 @@ public class DataStreamLifecycleWithRetentionWarningsTests extends ESTestCase {
|
|||
ThreadContext threadContext = new ThreadContext(Settings.EMPTY);
|
||||
HeaderWarning.setThreadContext(threadContext);
|
||||
TimeValue maxRetention = randomTimeValue(2, 100, TimeUnit.DAYS);
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomBoolean() ? null : TimeValue.timeValueDays(maxRetention.days() + 1))
|
||||
.downsampling(randomDownsampling())
|
||||
.build();
|
||||
|
@ -223,7 +223,7 @@ public class DataStreamLifecycleWithRetentionWarningsTests extends ESTestCase {
|
|||
"component-template",
|
||||
new ComponentTemplate(
|
||||
Template.builder()
|
||||
.lifecycle(DataStreamLifecycle.builder().dataRetention(randomTimeValue(2, 100, TimeUnit.DAYS)))
|
||||
.lifecycle(DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomTimeValue(2, 100, TimeUnit.DAYS)))
|
||||
.build(),
|
||||
null,
|
||||
null
|
||||
|
|
|
@ -140,7 +140,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
: randomValueOtherThan(indexMode, () -> randomFrom(IndexMode.values()));
|
||||
case 9 -> lifecycle = randomBoolean() && lifecycle != null
|
||||
? null
|
||||
: DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()).build();
|
||||
: DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomPositiveTimeValue()).build();
|
||||
case 10 -> failureIndices = randomValueOtherThan(failureIndices, DataStreamTestHelper::randomIndexInstances);
|
||||
case 11 -> dataStreamOptions = dataStreamOptions.isEmpty() ? new DataStreamOptions(new DataStreamFailureStore(randomBoolean()))
|
||||
: randomBoolean() ? DataStreamOptions.EMPTY
|
||||
|
@ -1519,7 +1519,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
dataStreamName,
|
||||
creationAndRolloverTimes,
|
||||
settings(IndexVersion.current()).put(IndexMetadata.LIFECYCLE_NAME, "ILM_policy"),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build()
|
||||
);
|
||||
Metadata metadataWithIlm = builderWithIlm.build();
|
||||
|
||||
|
@ -1784,7 +1784,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
creationAndRolloverTimes,
|
||||
settings(IndexVersion.current()).put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
|
||||
.put("index.routing_path", "@timestamp"),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -1844,7 +1844,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
creationAndRolloverTimes,
|
||||
// no TSDB settings
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -1910,7 +1910,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
creationAndRolloverTimes,
|
||||
settings(IndexVersion.current()).put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
|
||||
.put("index.routing_path", "@timestamp"),
|
||||
DataStreamLifecycle.builder().build()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().build()
|
||||
);
|
||||
Metadata metadata = builder.build();
|
||||
|
||||
|
@ -1942,7 +1942,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
dataStreamName,
|
||||
creationAndRolloverTimes,
|
||||
settings(IndexVersion.current()),
|
||||
DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO).build()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO).build()
|
||||
);
|
||||
Metadata metadata = builder.build();
|
||||
|
||||
|
@ -2316,7 +2316,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_DISABLED,
|
||||
List.of(),
|
||||
replicated == false && randomBoolean(),
|
||||
|
@ -2334,7 +2334,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_ENABLED,
|
||||
List.of(),
|
||||
replicated == false && randomBoolean(),
|
||||
|
@ -2359,7 +2359,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_ENABLED,
|
||||
failureIndices,
|
||||
replicated == false && randomBoolean(),
|
||||
|
@ -2383,7 +2383,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_DISABLED,
|
||||
List.of(),
|
||||
replicated == false && randomBoolean(),
|
||||
|
@ -2405,7 +2405,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_ENABLED,
|
||||
List.of(),
|
||||
replicated == false && randomBoolean(),
|
||||
|
@ -2436,7 +2436,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|||
system,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : IndexMode.TIME_SERIES,
|
||||
DataStreamLifecycleTests.randomLifecycle(),
|
||||
DataStreamLifecycleTests.randomDataLifecycle(),
|
||||
DataStreamOptions.FAILURE_STORE_ENABLED,
|
||||
failureIndices,
|
||||
replicated == false && randomBoolean(),
|
||||
|
|
|
@ -474,7 +474,7 @@ public class MetadataDataStreamsServiceTests extends MapperServiceTestCase {
|
|||
|
||||
public void testUpdateLifecycle() {
|
||||
String dataStream = randomAlphaOfLength(5);
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()).build();
|
||||
DataStreamLifecycle lifecycle = DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomPositiveTimeValue()).build();
|
||||
final var projectId = randomProjectIdOrDefault();
|
||||
ProjectMetadata before = DataStreamTestHelper.getClusterStateWithDataStreams(
|
||||
projectId,
|
||||
|
|
|
@ -1490,13 +1490,13 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
|
||||
DataStreamLifecycle.Template emptyLifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
|
||||
|
||||
DataStreamLifecycle.Template lifecycle30d = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle30d = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueDays(30))
|
||||
.buildTemplate();
|
||||
String ct30d = "ct_30d";
|
||||
project = addComponentTemplate(service, project, ct30d, lifecycle30d);
|
||||
|
||||
DataStreamLifecycle.Template lifecycle45d = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle45d = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueDays(45))
|
||||
.downsampling(
|
||||
List.of(
|
||||
|
@ -1510,7 +1510,7 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
String ct45d = "ct_45d";
|
||||
project = addComponentTemplate(service, project, ct45d, lifecycle45d);
|
||||
|
||||
DataStreamLifecycle.Template lifecycleNullRetention = new DataStreamLifecycle.Template(
|
||||
DataStreamLifecycle.Template lifecycleNullRetention = DataStreamLifecycle.createDataLifecycleTemplate(
|
||||
true,
|
||||
ResettableValue.reset(),
|
||||
ResettableValue.undefined()
|
||||
|
@ -1522,7 +1522,12 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
project = addComponentTemplate(service, project, ctEmptyLifecycle, emptyLifecycle);
|
||||
|
||||
String ctDisabledLifecycle = "ct_disabled_lifecycle";
|
||||
project = addComponentTemplate(service, project, ctDisabledLifecycle, DataStreamLifecycle.builder().enabled(false).buildTemplate());
|
||||
project = addComponentTemplate(
|
||||
service,
|
||||
project,
|
||||
ctDisabledLifecycle,
|
||||
DataStreamLifecycle.dataLifecycleBuilder().enabled(false).buildTemplate()
|
||||
);
|
||||
|
||||
String ctNoLifecycle = "ct_no_lifecycle";
|
||||
project = addComponentTemplate(service, project, ctNoLifecycle, (DataStreamLifecycle.Template) null);
|
||||
|
@ -1554,7 +1559,7 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
project,
|
||||
List.of(ctEmptyLifecycle, ct45d),
|
||||
lifecycle30d,
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(lifecycle30d.dataRetention())
|
||||
.downsampling(lifecycle45d.downsampling())
|
||||
.buildTemplate()
|
||||
|
@ -1578,7 +1583,7 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
project,
|
||||
List.of(ctEmptyLifecycle, ct45d),
|
||||
lifecycleNullRetention,
|
||||
DataStreamLifecycle.builder().downsampling(lifecycle45d.downsampling()).buildTemplate()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().downsampling(lifecycle45d.downsampling()).buildTemplate()
|
||||
);
|
||||
|
||||
// Component A: "lifecycle": {"retention": "30d"}
|
||||
|
@ -1589,8 +1594,8 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
service,
|
||||
project,
|
||||
List.of(ct30d, ct45d),
|
||||
DataStreamLifecycle.builder().enabled(false).buildTemplate(),
|
||||
DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().enabled(false).buildTemplate(),
|
||||
DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(lifecycle45d.dataRetention())
|
||||
.downsampling(lifecycle45d.downsampling())
|
||||
.enabled(false)
|
||||
|
@ -1606,7 +1611,7 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
project,
|
||||
List.of(ct30d, ctDisabledLifecycle),
|
||||
null,
|
||||
DataStreamLifecycle.builder().dataRetention(lifecycle30d.dataRetention()).enabled(false).buildTemplate()
|
||||
DataStreamLifecycle.dataLifecycleBuilder().dataRetention(lifecycle30d.dataRetention()).enabled(false).buildTemplate()
|
||||
);
|
||||
|
||||
// Component A: "lifecycle": {"retention": "30d"}
|
||||
|
@ -2007,7 +2012,7 @@ public class MetadataIndexTemplateServiceTests extends ESSingleNodeTestCase {
|
|||
ProjectMetadata project = ProjectMetadata.builder(randomProjectIdOrDefault()).build();
|
||||
|
||||
ComponentTemplate ct = new ComponentTemplate(
|
||||
Template.builder().lifecycle(DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue())).build(),
|
||||
Template.builder().lifecycle(DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomPositiveTimeValue())).build(),
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
|
|
@ -363,7 +363,7 @@ public final class DataStreamTestHelper {
|
|||
timeProvider,
|
||||
randomBoolean(),
|
||||
randomBoolean() ? IndexMode.STANDARD : null, // IndexMode.TIME_SERIES triggers validation that many unit tests doesn't pass
|
||||
randomBoolean() ? DataStreamLifecycle.builder().dataRetention(randomPositiveTimeValue()).build() : null,
|
||||
randomBoolean() ? DataStreamLifecycle.dataLifecycleBuilder().dataRetention(randomPositiveTimeValue()).build() : null,
|
||||
failureStore ? DataStreamOptions.FAILURE_STORE_ENABLED : DataStreamOptions.EMPTY,
|
||||
DataStream.DataStreamIndices.backingIndicesBuilder(indices)
|
||||
.setRolloverOnWrite(replicated == false && randomBoolean())
|
||||
|
|
|
@ -133,7 +133,7 @@ public class DataStreamLifecycleUsageTransportActionIT extends ESIntegTestCase {
|
|||
boolean systemDataStream = rarely();
|
||||
if (hasLifecycle) {
|
||||
if (randomBoolean()) {
|
||||
lifecycle = new DataStreamLifecycle(null, null, null);
|
||||
lifecycle = DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE;
|
||||
dataStreamsWithLifecycleCount.incrementAndGet();
|
||||
if (useDefaultRetention && systemDataStream == false) {
|
||||
dataStreamsWithDefaultRetentionCount.incrementAndGet();
|
||||
|
@ -155,7 +155,7 @@ public class DataStreamLifecycleUsageTransportActionIT extends ESIntegTestCase {
|
|||
}
|
||||
atLeastOne = true;
|
||||
}
|
||||
lifecycle = DataStreamLifecycle.builder()
|
||||
lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(TimeValue.timeValueMillis(retentionMillis))
|
||||
.enabled(isEnabled)
|
||||
.build();
|
||||
|
|
|
@ -117,7 +117,7 @@ public class DataStreamLifecycleFeatureSetUsageTests extends AbstractWireSeriali
|
|||
1L,
|
||||
null,
|
||||
false,
|
||||
new DataStreamLifecycle(true, TimeValue.timeValueSeconds(50), null)
|
||||
DataStreamLifecycle.createDataLifecycle(true, TimeValue.timeValueSeconds(50), null)
|
||||
),
|
||||
DataStreamTestHelper.newInstance(
|
||||
randomAlphaOfLength(10),
|
||||
|
@ -125,7 +125,7 @@ public class DataStreamLifecycleFeatureSetUsageTests extends AbstractWireSeriali
|
|||
1L,
|
||||
null,
|
||||
false,
|
||||
new DataStreamLifecycle(true, TimeValue.timeValueMillis(150), null)
|
||||
DataStreamLifecycle.createDataLifecycle(true, TimeValue.timeValueMillis(150), null)
|
||||
),
|
||||
DataStreamTestHelper.newInstance(
|
||||
randomAlphaOfLength(10),
|
||||
|
@ -133,7 +133,7 @@ public class DataStreamLifecycleFeatureSetUsageTests extends AbstractWireSeriali
|
|||
1L,
|
||||
null,
|
||||
false,
|
||||
new DataStreamLifecycle(false, TimeValue.timeValueSeconds(5), null)
|
||||
DataStreamLifecycle.createDataLifecycle(false, TimeValue.timeValueSeconds(5), null)
|
||||
),
|
||||
DataStreamTestHelper.newInstance(
|
||||
randomAlphaOfLength(10),
|
||||
|
|
|
@ -59,7 +59,7 @@ public class DataStreamLifecycleDownsampleDisruptionIT extends ESIntegTestCase {
|
|||
ensureGreen();
|
||||
|
||||
final String dataStreamName = "metrics-foo";
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
|
|
@ -54,7 +54,7 @@ public class DataStreamLifecycleDownsampleIT extends ESIntegTestCase {
|
|||
public void testDownsampling() throws Exception {
|
||||
String dataStreamName = "metrics-foo";
|
||||
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -127,7 +127,7 @@ public class DataStreamLifecycleDownsampleIT extends ESIntegTestCase {
|
|||
public void testDownsamplingOnlyExecutesTheLastMatchingRound() throws Exception {
|
||||
String dataStreamName = "metrics-bar";
|
||||
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -195,7 +195,7 @@ public class DataStreamLifecycleDownsampleIT extends ESIntegTestCase {
|
|||
// we expect the earlier round to be ignored
|
||||
String dataStreamName = "metrics-baz";
|
||||
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -259,7 +259,7 @@ public class DataStreamLifecycleDownsampleIT extends ESIntegTestCase {
|
|||
// update the lifecycle so that it only has one round, for the same `after` parameter as before, but a different interval
|
||||
// the different interval should yield a different downsample index name so we expect the data stream lifecycle to get the previous
|
||||
// `10s` interval downsample index, downsample it to `30s` and replace it in the data stream instead of the `10s` one.
|
||||
DataStreamLifecycle updatedLifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle updatedLifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
|
|
@ -157,7 +157,7 @@ public class DataStreamAndIndexLifecycleMixingTests extends ESIntegTestCase {
|
|||
|
||||
// we'll rollover the data stream by indexing 2 documents (like ILM expects) and assert that the rollover happens once so the
|
||||
// data stream has 3 backing indices, two managed by ILM and one will be managed by the data stream lifecycle
|
||||
DataStreamLifecycle.Template customLifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template customLifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomPositiveTimeValue())
|
||||
.buildTemplate();
|
||||
putComposableIndexTemplate(indexTemplateName, null, List.of(dataStreamName + "*"), Settings.EMPTY, null, customLifecycle);
|
||||
|
@ -485,7 +485,7 @@ public class DataStreamAndIndexLifecycleMixingTests extends ESIntegTestCase {
|
|||
|
||||
// we'll rollover the data stream by indexing 2 documents (like ILM expects) and assert that the rollover happens once so the
|
||||
// data stream has 3 backing indices, 2 managed by ILM and 1 by the default data stream lifecycle
|
||||
DataStreamLifecycle.Template customLifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template customLifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.dataRetention(randomPositiveTimeValue())
|
||||
.buildTemplate();
|
||||
putComposableIndexTemplate(
|
||||
|
|
|
@ -120,7 +120,7 @@ public class DataStreamLifecycleDownsamplingSecurityIT extends SecurityIntegTest
|
|||
public void testDownsamplingAuthorized() throws Exception {
|
||||
String dataStreamName = "metrics-foo";
|
||||
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.builder()
|
||||
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
@ -410,7 +410,7 @@ public class DataStreamLifecycleDownsamplingSecurityIT extends SecurityIntegTest
|
|||
|
||||
public static class SystemDataStreamWithDownsamplingConfigurationPlugin extends Plugin implements SystemIndexPlugin {
|
||||
|
||||
public static final DataStreamLifecycle.Template LIFECYCLE = DataStreamLifecycle.builder()
|
||||
public static final DataStreamLifecycle.Template LIFECYCLE = DataStreamLifecycle.dataLifecycleBuilder()
|
||||
.downsampling(
|
||||
List.of(
|
||||
new DataStreamLifecycle.DownsamplingRound(
|
||||
|
|
|
@ -46,6 +46,7 @@ import org.elasticsearch.xpack.security.LocalStateSecurity;
|
|||
import org.elasticsearch.xpack.wildcard.Wildcard;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -221,7 +222,7 @@ public class DataStreamLifecycleServiceRuntimeSecurityIT extends SecurityIntegTe
|
|||
ExecutionException {
|
||||
var dataLifecycle = retention == null
|
||||
? DataStreamLifecycle.Template.DATA_DEFAULT
|
||||
: new DataStreamLifecycle.Template(true, retention, null);
|
||||
: DataStreamLifecycle.dataLifecycleBuilder().enabled(true).dataRetention(retention).buildTemplate();
|
||||
putComposableIndexTemplate("id1", """
|
||||
{
|
||||
"properties": {
|
||||
|
@ -357,7 +358,7 @@ public class DataStreamLifecycleServiceRuntimeSecurityIT extends SecurityIntegTe
|
|||
}
|
||||
}
|
||||
}"""))
|
||||
.lifecycle(DataStreamLifecycle.builder().dataRetention(TimeValue.ZERO))
|
||||
.lifecycle(DataStreamLifecycle.dataLifecycleBuilder().dataRetention(TimeValue.ZERO))
|
||||
.dataStreamOptions(new DataStreamOptions.Template(new DataStreamFailureStore.Template(true)))
|
||||
)
|
||||
.dataStreamTemplate(new ComposableIndexTemplate.DataStreamTemplate())
|
||||
|
@ -373,11 +374,8 @@ public class DataStreamLifecycleServiceRuntimeSecurityIT extends SecurityIntegTe
|
|||
)
|
||||
);
|
||||
} catch (IOException e) {
|
||||
fail(e.getMessage());
|
||||
throw new UncheckedIOException(e);
|
||||
}
|
||||
throw new IllegalStateException(
|
||||
"Something went wrong, it should have either returned the descriptor or it should have thrown an assertion error"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue