|
@@ -96,8 +96,9 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
var lifecycle = instance.getLifecycle();
|
|
|
var failureStore = instance.isFailureStore();
|
|
|
var failureIndices = instance.getFailureIndices();
|
|
|
+ var rolloverOnWrite = instance.rolloverOnWrite();
|
|
|
var autoShardingEvent = instance.getAutoShardingEvent();
|
|
|
- switch (between(0, 11)) {
|
|
|
+ switch (between(0, 12)) {
|
|
|
case 0 -> name = randomAlphaOfLength(10);
|
|
|
case 1 -> indices = randomNonEmptyIndexInstances();
|
|
|
case 2 -> generation = instance.getGeneration() + randomIntBetween(1, 10);
|
|
@@ -110,7 +111,11 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
isHidden = true;
|
|
|
}
|
|
|
}
|
|
|
- case 5 -> isReplicated = isReplicated == false;
|
|
|
+ case 5 -> {
|
|
|
+ isReplicated = isReplicated == false;
|
|
|
+ // Replicated data streams cannot be marked for lazy rollover.
|
|
|
+ rolloverOnWrite = isReplicated == false && rolloverOnWrite;
|
|
|
+ }
|
|
|
case 6 -> {
|
|
|
if (isSystem == false) {
|
|
|
isSystem = true;
|
|
@@ -131,6 +136,10 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
failureStore = failureIndices.isEmpty() == false;
|
|
|
}
|
|
|
case 11 -> {
|
|
|
+ rolloverOnWrite = rolloverOnWrite == false;
|
|
|
+ isReplicated = rolloverOnWrite == false && isReplicated;
|
|
|
+ }
|
|
|
+ case 12 -> {
|
|
|
autoShardingEvent = randomBoolean() && autoShardingEvent != null
|
|
|
? null
|
|
|
: new DataStreamAutoShardingEvent(
|
|
@@ -154,6 +163,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
lifecycle,
|
|
|
failureStore,
|
|
|
failureIndices,
|
|
|
+ rolloverOnWrite,
|
|
|
autoShardingEvent
|
|
|
);
|
|
|
}
|
|
@@ -212,6 +222,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
ds.getLifecycle(),
|
|
|
ds.isFailureStore(),
|
|
|
ds.getFailureIndices(),
|
|
|
+ ds.rolloverOnWrite(),
|
|
|
ds.getAutoShardingEvent()
|
|
|
);
|
|
|
var newCoordinates = ds.nextWriteIndexAndGeneration(Metadata.EMPTY_METADATA);
|
|
@@ -240,6 +251,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
ds.getLifecycle(),
|
|
|
ds.isFailureStore(),
|
|
|
ds.getFailureIndices(),
|
|
|
+ ds.rolloverOnWrite(),
|
|
|
ds.getAutoShardingEvent()
|
|
|
);
|
|
|
var newCoordinates = ds.nextWriteIndexAndGeneration(Metadata.EMPTY_METADATA);
|
|
@@ -616,19 +628,21 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
postSnapshotIndices.removeAll(indicesToRemove);
|
|
|
postSnapshotIndices.addAll(indicesToAdd);
|
|
|
|
|
|
+ var replicated = preSnapshotDataStream.isReplicated() && randomBoolean();
|
|
|
var postSnapshotDataStream = new DataStream(
|
|
|
preSnapshotDataStream.getName(),
|
|
|
postSnapshotIndices,
|
|
|
preSnapshotDataStream.getGeneration() + randomIntBetween(0, 5),
|
|
|
preSnapshotDataStream.getMetadata() == null ? null : new HashMap<>(preSnapshotDataStream.getMetadata()),
|
|
|
preSnapshotDataStream.isHidden(),
|
|
|
- preSnapshotDataStream.isReplicated() && randomBoolean(),
|
|
|
+ replicated,
|
|
|
preSnapshotDataStream.isSystem(),
|
|
|
preSnapshotDataStream.isAllowCustomRouting(),
|
|
|
preSnapshotDataStream.getIndexMode(),
|
|
|
preSnapshotDataStream.getLifecycle(),
|
|
|
preSnapshotDataStream.isFailureStore(),
|
|
|
preSnapshotDataStream.getFailureIndices(),
|
|
|
+ replicated == false && preSnapshotDataStream.rolloverOnWrite(),
|
|
|
preSnapshotDataStream.getAutoShardingEvent()
|
|
|
);
|
|
|
|
|
@@ -670,6 +684,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
preSnapshotDataStream.getLifecycle(),
|
|
|
preSnapshotDataStream.isFailureStore(),
|
|
|
preSnapshotDataStream.getFailureIndices(),
|
|
|
+ preSnapshotDataStream.rolloverOnWrite(),
|
|
|
preSnapshotDataStream.getAutoShardingEvent()
|
|
|
);
|
|
|
|
|
@@ -1896,13 +1911,14 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
public void testWriteFailureIndex() {
|
|
|
boolean hidden = randomBoolean();
|
|
|
boolean system = hidden && randomBoolean();
|
|
|
+ boolean replicated = randomBoolean();
|
|
|
DataStream noFailureStoreDataStream = new DataStream(
|
|
|
randomAlphaOfLength(10),
|
|
|
randomNonEmptyIndexInstances(),
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -1910,7 +1926,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
false,
|
|
|
null,
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(noFailureStoreDataStream.getFailureStoreWriteIndex(), nullValue());
|
|
@@ -1921,7 +1937,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -1929,7 +1945,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
true,
|
|
|
List.of(),
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(failureStoreDataStreamWithEmptyFailureIndices.getFailureStoreWriteIndex(), nullValue());
|
|
@@ -1947,7 +1963,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -1955,7 +1971,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
true,
|
|
|
failureIndices,
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(failureStoreDataStream.getFailureStoreWriteIndex(), is(writeFailureIndex));
|
|
@@ -1965,13 +1981,14 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
boolean hidden = randomBoolean();
|
|
|
boolean system = hidden && randomBoolean();
|
|
|
List<Index> backingIndices = randomNonEmptyIndexInstances();
|
|
|
+ boolean replicated = randomBoolean();
|
|
|
DataStream noFailureStoreDataStream = new DataStream(
|
|
|
randomAlphaOfLength(10),
|
|
|
backingIndices,
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -1979,7 +1996,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
false,
|
|
|
null,
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(
|
|
@@ -1994,7 +2011,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -2002,7 +2019,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
true,
|
|
|
List.of(),
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(
|
|
@@ -2026,7 +2043,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
randomNonNegativeInt(),
|
|
|
null,
|
|
|
hidden,
|
|
|
- randomBoolean(),
|
|
|
+ replicated,
|
|
|
system,
|
|
|
System::currentTimeMillis,
|
|
|
randomBoolean(),
|
|
@@ -2034,7 +2051,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase<DataStr
|
|
|
DataStreamLifecycleTests.randomLifecycle(),
|
|
|
true,
|
|
|
failureIndices,
|
|
|
- randomBoolean(),
|
|
|
+ replicated == false && randomBoolean(),
|
|
|
null
|
|
|
);
|
|
|
assertThat(failureStoreDataStream.isFailureStoreIndex(writeFailureIndex.getName()), is(true));
|