Skip to content

Commit cbe4eaf

Browse files
authored
Data stream should refer to the backing indices using the org.elasticsearch.index.Index class. (#54189)
1 parent fbe1737 commit cbe4eaf

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

server/src/main/java/org/elasticsearch/cluster/metadata/DataStream.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.elasticsearch.common.xcontent.ToXContentObject;
2828
import org.elasticsearch.common.xcontent.XContentBuilder;
2929
import org.elasticsearch.common.xcontent.XContentParser;
30+
import org.elasticsearch.index.Index;
3031

3132
import java.io.IOException;
3233
import java.util.List;
@@ -36,9 +37,9 @@ public final class DataStream extends AbstractDiffable<DataStream> implements To
3637

3738
private final String name;
3839
private final String timeStampField;
39-
private final List<String> indices;
40+
private final List<Index> indices;
4041

41-
public DataStream(String name, String timeStampField, List<String> indices) {
42+
public DataStream(String name, String timeStampField, List<Index> indices) {
4243
this.name = name;
4344
this.timeStampField = timeStampField;
4445
this.indices = indices;
@@ -52,12 +53,12 @@ public String getTimeStampField() {
5253
return timeStampField;
5354
}
5455

55-
public List<String> getIndices() {
56+
public List<Index> getIndices() {
5657
return indices;
5758
}
5859

5960
public DataStream(StreamInput in) throws IOException {
60-
this(in.readString(), in.readString(), in.readStringList());
61+
this(in.readString(), in.readString(), in.readList(Index::new));
6162
}
6263

6364
public static Diff<DataStream> readDiffFrom(StreamInput in) throws IOException {
@@ -68,7 +69,7 @@ public static Diff<DataStream> readDiffFrom(StreamInput in) throws IOException {
6869
public void writeTo(StreamOutput out) throws IOException {
6970
out.writeString(name);
7071
out.writeString(timeStampField);
71-
out.writeStringCollection(indices);
72+
out.writeList(indices);
7273
}
7374

7475
public static final ParseField NAME_FIELD = new ParseField("name");
@@ -77,12 +78,12 @@ public void writeTo(StreamOutput out) throws IOException {
7778

7879
@SuppressWarnings("unchecked")
7980
private static final ConstructingObjectParser<DataStream, Void> PARSER = new ConstructingObjectParser<>("data_stream",
80-
args -> new DataStream((String) args[0], (String) args[1], (List<String>) args[2]));
81+
args -> new DataStream((String) args[0], (String) args[1], (List<Index>) args[2]));
8182

8283
static {
8384
PARSER.declareString(ConstructingObjectParser.constructorArg(), NAME_FIELD);
8485
PARSER.declareString(ConstructingObjectParser.constructorArg(), TIMESTAMP_FIELD_FIELD);
85-
PARSER.declareStringArray(ConstructingObjectParser.constructorArg(), INDICES_FIELD);
86+
PARSER.declareObjectArray(ConstructingObjectParser.constructorArg(), (p, c) -> Index.fromXContent(p), INDICES_FIELD);
8687
}
8788

8889
public static DataStream fromXContent(XContentParser parser) throws IOException {

server/src/test/java/org/elasticsearch/action/admin/indices/datastream/GetDataStreamsResponseTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.util.ArrayList;
3030
import java.util.List;
3131

32+
import static org.elasticsearch.cluster.metadata.DataStreamTests.randomIndexInstances;
33+
3234
public class GetDataStreamsResponseTests extends AbstractSerializingTestCase<Response> {
3335

3436
@Override
@@ -52,8 +54,7 @@ protected Response createTestInstance() {
5254
int numDataStreams = randomIntBetween(0, 8);
5355
List<DataStream> dataStreams = new ArrayList<>();
5456
for (int i = 0; i < numDataStreams; i++) {
55-
dataStreams.add(new DataStream(randomAlphaOfLength(4), randomAlphaOfLength(4),
56-
List.of(generateRandomStringArray(8, 4, false))));
57+
dataStreams.add(new DataStream(randomAlphaOfLength(4), randomAlphaOfLength(4), randomIndexInstances()));
5758
}
5859
return new Response(dataStreams);
5960
}

server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818
*/
1919
package org.elasticsearch.cluster.metadata;
2020

21+
import org.elasticsearch.common.UUIDs;
2122
import org.elasticsearch.common.io.stream.Writeable;
2223
import org.elasticsearch.common.xcontent.XContentParser;
24+
import org.elasticsearch.index.Index;
2325
import org.elasticsearch.test.AbstractSerializingTestCase;
2426

2527
import java.io.IOException;
@@ -28,13 +30,17 @@
2830

2931
public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
3032

31-
public static DataStream randomInstance() {
33+
public static List<Index> randomIndexInstances() {
3234
int numIndices = randomIntBetween(0, 128);
33-
List<String> indices = new ArrayList<>(numIndices);
35+
List<Index> indices = new ArrayList<>(numIndices);
3436
for (int i = 0; i < numIndices; i++) {
35-
indices.add(randomAlphaOfLength(10));
37+
indices.add(new Index(randomAlphaOfLength(10), UUIDs.randomBase64UUID(random())));
3638
}
37-
return new DataStream(randomAlphaOfLength(10), randomAlphaOfLength(10), indices);
39+
return indices;
40+
}
41+
42+
public static DataStream randomInstance() {
43+
return new DataStream(randomAlphaOfLength(10), randomAlphaOfLength(10), randomIndexInstances());
3844
}
3945

4046
@Override

0 commit comments

Comments
 (0)