Skip to content

Commit

Permalink
Add and use a Builder for the DataStream class (#107035)
Browse files Browse the repository at this point in the history
  • Loading branch information
nielsbauman committed Apr 12, 2024
1 parent 2ea5e08 commit 7a5f400
Show file tree
Hide file tree
Showing 23 changed files with 369 additions and 804 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1778,22 +1778,9 @@ public void testRemoveGhostReference() throws Exception {
@Override
public ClusterState execute(ClusterState currentState) throws Exception {
DataStream original = currentState.getMetadata().dataStreams().get(dataStreamName);
DataStream broken = new DataStream(
original.getName(),
List.of(new Index(original.getIndices().get(0).getName(), "broken"), original.getIndices().get(1)),
original.getGeneration(),
original.getMetadata(),
original.isHidden(),
original.isReplicated(),
original.isSystem(),
original.isAllowCustomRouting(),
original.getIndexMode(),
original.getLifecycle(),
original.isFailureStore(),
original.getFailureIndices(),
original.rolloverOnWrite(),
original.getAutoShardingEvent()
);
DataStream broken = original.copy()
.setIndices(List.of(new Index(original.getIndices().get(0).getName(), "broken"), original.getIndices().get(1)))
.build();
brokenDataStreamHolder.set(broken);
return ClusterState.builder(currentState)
.metadata(Metadata.builder(currentState.getMetadata()).put(broken).build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,24 +301,7 @@ public void testGetAdditionalIndexSettingsDataStreamAlreadyCreatedTimeSettingsMi
).getMetadata()
);
DataStream ds = mb.dataStream(dataStreamName);
mb.put(
new DataStream(
ds.getName(),
ds.getIndices(),
ds.getGeneration(),
ds.getMetadata(),
ds.isHidden(),
ds.isReplicated(),
ds.isSystem(),
ds.isAllowCustomRouting(),
IndexMode.TIME_SERIES,
ds.getLifecycle(),
ds.isFailureStore(),
ds.getFailureIndices(),
ds.rolloverOnWrite(),
ds.getAutoShardingEvent()
)
);
mb.put(ds.copy().setIndexMode(IndexMode.TIME_SERIES).build());
Metadata metadata = mb.build();

Instant now = twoHoursAgo.plus(2, ChronoUnit.HOURS);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,10 @@ public class MetadataDataStreamRolloverServiceTests extends ESTestCase {
public void testRolloverClusterStateForDataStream() throws Exception {
Instant now = Instant.now();
String dataStreamName = "logs-my-app";
final DataStream dataStream = new DataStream(
final DataStream dataStream = DataStream.builder(
dataStreamName,
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid")),
1,
null,
false,
false,
false,
false,
IndexMode.TIME_SERIES
);
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid"))
).setIndexMode(IndexMode.TIME_SERIES).build();
ComposableIndexTemplate template = ComposableIndexTemplate.builder()
.indexPatterns(List.of(dataStream.getName() + "*"))
.template(
Expand Down Expand Up @@ -168,17 +161,10 @@ public void testRolloverAndMigrateDataStream() throws Exception {
Instant now = Instant.now().truncatedTo(ChronoUnit.SECONDS);
String dataStreamName = "logs-my-app";
IndexMode dsIndexMode = randomBoolean() ? null : IndexMode.STANDARD;
final DataStream dataStream = new DataStream(
final DataStream dataStream = DataStream.builder(
dataStreamName,
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid")),
1,
null,
false,
false,
false,
false,
dsIndexMode
);
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid"))
).setIndexMode(dsIndexMode).build();
ComposableIndexTemplate template = ComposableIndexTemplate.builder()
.indexPatterns(List.of(dataStream.getName() + "*"))
.template(
Expand Down Expand Up @@ -257,17 +243,10 @@ public void testRolloverAndMigrateDataStream() throws Exception {
public void testChangingIndexModeFromTimeSeriesToSomethingElseNoEffectOnExistingDataStreams() throws Exception {
Instant now = Instant.now().truncatedTo(ChronoUnit.SECONDS);
String dataStreamName = "logs-my-app";
final DataStream dataStream = new DataStream(
final DataStream dataStream = DataStream.builder(
dataStreamName,
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid")),
1,
null,
false,
false,
false,
false,
IndexMode.TIME_SERIES
);
List.of(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, 1, now.toEpochMilli()), "uuid"))
).setIndexMode(IndexMode.TIME_SERIES).build();
ComposableIndexTemplate template = ComposableIndexTemplate.builder()
.indexPatterns(List.of(dataStream.getName() + "*"))
.template(
Expand Down Expand Up @@ -479,17 +458,7 @@ private static ClusterState createClusterState(String dataStreamName, int number
for (int i = 1; i <= numberOfBackingIndices; i++) {
backingIndices.add(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, i, now.toEpochMilli()), "uuid" + i));
}
final DataStream dataStream = new DataStream(
dataStreamName,
backingIndices,
numberOfBackingIndices,
null,
false,
false,
false,
false,
null
);
final DataStream dataStream = DataStream.builder(dataStreamName, backingIndices).setGeneration(numberOfBackingIndices).build();
ComposableIndexTemplate template = ComposableIndexTemplate.builder()
.indexPatterns(List.of(dataStream.getName() + "*"))
.template(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,26 +139,7 @@ public void testUpdateTimeSeriesTemporalRange_NoUpdateBecauseReplicated() {
List.of(new Tuple<>(start.minus(4, ChronoUnit.HOURS), start), new Tuple<>(start, end))
).getMetadata();
DataStream d = metadata.dataStreams().get(dataStreamName);
metadata = Metadata.builder(metadata)
.put(
new DataStream(
d.getName(),
d.getIndices(),
d.getGeneration(),
d.getMetadata(),
d.isHidden(),
true,
d.isSystem(),
d.isAllowCustomRouting(),
d.getIndexMode(),
d.getLifecycle(),
d.isFailureStore(),
d.getFailureIndices(),
false,
d.getAutoShardingEvent()
)
)
.build();
metadata = Metadata.builder(metadata).put(d.copy().setReplicated(true).setRolloverOnWrite(false).build()).build();

now = now.plus(1, ChronoUnit.HOURS);
ClusterState in = ClusterState.builder(ClusterState.EMPTY_STATE).metadata(metadata).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,22 +76,14 @@ public void testResponseIlmAndDataStreamLifecycleRepresentation() throws Excepti
List<Index> failureStores = List.of(failureStoreIndex);
{
// data stream has an enabled lifecycle
DataStream logs = new DataStream(
"logs",
indices,
3,
null,
false,
false,
false,
true,
IndexMode.STANDARD,
new DataStreamLifecycle(),
true,
failureStores,
false,
null
);
DataStream logs = DataStream.builder("logs", indices)
.setGeneration(3)
.setAllowCustomRouting(true)
.setIndexMode(IndexMode.STANDARD)
.setLifecycle(new DataStreamLifecycle())
.setFailureStore(true)
.setFailureIndices(failureStores)
.build();

String ilmPolicyName = "rollover-30days";
Map<Index, Response.IndexProperties> indexSettingsValues = Map.of(
Expand Down Expand Up @@ -187,22 +179,14 @@ public void testResponseIlmAndDataStreamLifecycleRepresentation() throws Excepti

{
// data stream has a lifecycle that's not enabled
DataStream logs = new DataStream(
"logs",
indices,
3,
null,
false,
false,
false,
true,
IndexMode.STANDARD,
new DataStreamLifecycle(null, null, false),
true,
failureStores,
false,
null
);
DataStream logs = DataStream.builder("logs", indices)
.setGeneration(3)
.setAllowCustomRouting(true)
.setIndexMode(IndexMode.STANDARD)
.setLifecycle(new DataStreamLifecycle(null, null, false))
.setFailureStore(true)
.setFailureIndices(failureStores)
.build();

String ilmPolicyName = "rollover-30days";
Map<Index, Response.IndexProperties> indexSettingsValues = Map.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,22 +283,11 @@ public void testRetentionNotExecutedForTSIndicesWithinTimeBounds() {
Metadata.Builder builder = Metadata.builder(clusterState.metadata());
DataStream dataStream = builder.dataStream(dataStreamName);
builder.put(
new DataStream(
dataStreamName,
dataStream.getIndices(),
dataStream.getGeneration() + 1,
dataStream.getMetadata(),
dataStream.isHidden(),
dataStream.isReplicated(),
dataStream.isSystem(),
dataStream.isAllowCustomRouting(),
dataStream.getIndexMode(),
DataStreamLifecycle.newBuilder().dataRetention(0L).build(),
dataStream.isFailureStore(),
dataStream.getFailureIndices(),
dataStream.rolloverOnWrite(),
dataStream.getAutoShardingEvent()
)
dataStream.copy()
.setName(dataStreamName)
.setGeneration(dataStream.getGeneration() + 1)
.setLifecycle(DataStreamLifecycle.newBuilder().dataRetention(0L).build())
.build()
);
clusterState = ClusterState.builder(clusterState).metadata(builder).build();

Expand Down

0 comments on commit 7a5f400

Please sign in to comment.