Skip to content

Commit 9300e9b

Browse files
committed
Add a test for index providers giving data stream mode
1 parent ddb2cb6 commit 9300e9b

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

modules/data-streams/src/test/java/org/elasticsearch/datastreams/action/TransportGetDataStreamsActionTests.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818
import org.elasticsearch.cluster.metadata.DataStreamTestHelper;
1919
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
2020
import org.elasticsearch.cluster.metadata.Metadata;
21+
import org.elasticsearch.common.compress.CompressedXContent;
2122
import org.elasticsearch.common.settings.ClusterSettings;
2223
import org.elasticsearch.common.settings.Settings;
2324
import org.elasticsearch.core.TimeValue;
2425
import org.elasticsearch.core.Tuple;
2526
import org.elasticsearch.index.Index;
27+
import org.elasticsearch.index.IndexMode;
2628
import org.elasticsearch.index.IndexNotFoundException;
29+
import org.elasticsearch.index.IndexSettingProvider;
2730
import org.elasticsearch.index.IndexSettingProviders;
2831
import org.elasticsearch.indices.SystemIndices;
2932
import org.elasticsearch.indices.TestIndexNameExpressionResolver;
@@ -483,4 +486,58 @@ public void testDataStreamIsFailureStoreEffectivelyEnabled_enabledByClusterSetti
483486
assertThat(response.getDataStreams(), hasSize(1));
484487
assertThat(response.getDataStreams().getFirst().isFailureStoreEffectivelyEnabled(), is(true));
485488
}
489+
490+
public void testProvidersAffectMode() {
491+
ClusterState state;
492+
{
493+
var mBuilder = new Metadata.Builder();
494+
DataStreamTestHelper.getClusterStateWithDataStreams(
495+
mBuilder,
496+
List.of(Tuple.tuple("data-stream-1", 2)),
497+
List.of(),
498+
System.currentTimeMillis(),
499+
Settings.EMPTY,
500+
0,
501+
false,
502+
false
503+
);
504+
state = ClusterState.builder(new ClusterName("_name")).metadata(mBuilder).build();
505+
}
506+
507+
var req = new GetDataStreamAction.Request(TEST_REQUEST_TIMEOUT, new String[] {});
508+
var response = TransportGetDataStreamsAction.innerOperation(
509+
state,
510+
req,
511+
resolver,
512+
systemIndices,
513+
ClusterSettings.createBuiltInClusterSettings(),
514+
dataStreamGlobalRetentionSettings,
515+
emptyDataStreamFailureStoreSettings,
516+
new IndexSettingProviders(
517+
Set.of(
518+
(
519+
indexName,
520+
dataStreamName,
521+
templateIndexMode,
522+
metadata,
523+
resolvedAt,
524+
indexTemplateAndCreateRequestSettings,
525+
combinedTemplateMappings) -> Settings.builder().put("index.mode", IndexMode.LOOKUP).build()
526+
)
527+
),
528+
null
529+
);
530+
assertThat(response.getDataStreams().getFirst().getIndexModeName(), equalTo("lookup"));
531+
assertThat(
532+
response.getDataStreams()
533+
.getFirst()
534+
.getIndexSettingsValues()
535+
.values()
536+
.stream()
537+
.findFirst()
538+
.map(GetDataStreamAction.Response.IndexProperties::indexMode)
539+
.orElse("bad"),
540+
equalTo("standard")
541+
);
542+
}
486543
}

server/src/main/java/org/elasticsearch/action/datastreams/GetDataStreamAction.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,11 @@ public Long getMaximumTimestamp() {
337337
return maximumTimestamp;
338338
}
339339

340+
@Nullable
341+
public String getIndexModeName() {
342+
return indexMode;
343+
}
344+
340345
@Override
341346
public void writeTo(StreamOutput out) throws IOException {
342347
dataStream.writeTo(out);

0 commit comments

Comments
 (0)