Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.function.BiConsumer;

import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_DIMENSIONS;
import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_ROUTING_PATH;
Expand All @@ -62,16 +60,16 @@ public class DataStreamIndexSettingsProvider implements IndexSettingProvider {
}

@Override
public void provideAdditionalMetadata(
public void provideAdditionalSettings(
String indexName,
@Nullable String dataStreamName,
@Nullable IndexMode templateIndexMode,
ProjectMetadata projectMetadata,
Instant resolvedAt,
Settings indexTemplateAndCreateRequestSettings,
List<CompressedXContent> combinedTemplateMappings,
Settings.Builder additionalSettings,
BiConsumer<String, Map<String, String>> additionalCustomMetadata
IndexVersion indexVersion,
Settings.Builder additionalSettings
) {
if (dataStreamName != null) {
DataStream dataStream = projectMetadata.dataStreams().get(dataStreamName);
Expand Down Expand Up @@ -157,12 +155,7 @@ public void provideAdditionalMetadata(
* dimension fields via a wildcard pattern.
*/
@Override
public void onUpdateMappings(
IndexMetadata indexMetadata,
DocumentMapper documentMapper,
Settings.Builder additionalSettings,
BiConsumer<String, Map<String, String>> additionalCustomMetadata
) {
public void onUpdateMappings(IndexMetadata indexMetadata, DocumentMapper documentMapper, Settings.Builder additionalSettings) {
List<String> indexDimensions = indexMetadata.getTimeSeriesDimensions();
if (indexDimensions.isEmpty()) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import org.elasticsearch.index.IndexSettingProvider;
import org.elasticsearch.index.IndexSettingProviders;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.IndexVersion;
import org.elasticsearch.indices.SystemDataStreamDescriptor;
import org.elasticsearch.indices.SystemIndices;
import org.elasticsearch.injection.guice.Inject;
Expand Down Expand Up @@ -197,18 +198,19 @@ static IndexMode resolveMode(
ComposableIndexTemplate indexTemplate
) {
IndexMode indexMode = state.metadata().retrieveIndexModeFromTemplate(indexTemplate);
IndexVersion indexVersion = state.metadata().index(dataStream.getWriteIndex()).getCreationVersion();
for (IndexSettingProvider provider : indexSettingProviders.getIndexSettingProviders()) {
Settings.Builder builder = Settings.builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
MetadataIndexTemplateService.VALIDATE_INDEX_NAME,
dataStream.getName(),
indexMode,
state.metadata(),
Instant.now(),
settings,
List.of(),
builder,
(k, v) -> {}
indexVersion,
builder
);
Settings addlSettings = builder.build();
var rawMode = addlSettings.get(IndexSettings.MODE.getKey());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,16 +93,16 @@ public void testGetAdditionalIndexSettings() throws Exception {
}
""";
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent(mapping)),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand Down Expand Up @@ -147,16 +147,16 @@ public void testGetAdditionalIndexSettingsIndexRoutingPathAlreadyDefined() throw
}
""";
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent(mapping)),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand Down Expand Up @@ -221,16 +221,16 @@ public void testGetAdditionalIndexSettingsMappingsMerging() throws Exception {
}
""";
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent(mapping1), new CompressedXContent(mapping2), new CompressedXContent(mapping3)),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand All @@ -255,16 +255,16 @@ public void testGetAdditionalIndexSettingsNoMappings() {
Instant now = Instant.now().truncatedTo(ChronoUnit.SECONDS);
Settings settings = Settings.EMPTY;
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand All @@ -284,16 +284,16 @@ public void testGetAdditionalIndexSettingsLookAheadTime() throws Exception {
TimeValue lookAheadTime = TimeValue.timeValueMinutes(30);
Settings settings = builder().put("index.mode", "time_series").put("index.look_ahead_time", lookAheadTime.getStringRep()).build();
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent("{}")),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand All @@ -313,16 +313,16 @@ public void testGetAdditionalIndexSettingsLookBackTime() throws Exception {
TimeValue lookBackTime = TimeValue.timeValueHours(12);
Settings settings = builder().put("index.mode", "time_series").put("index.look_back_time", lookBackTime.getStringRep()).build();
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent("{}")),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand All @@ -349,16 +349,16 @@ public void testGetAdditionalIndexSettingsDataStreamAlreadyCreated() throws Exce
Instant now = sixHoursAgo.plus(6, ChronoUnit.HOURS);
Settings settings = Settings.EMPTY;
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent("{}")),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
var result = additionalSettings.build();
assertThat(result.size(), equalTo(2));
Expand Down Expand Up @@ -389,16 +389,16 @@ public void testGetAdditionalIndexSettingsDataStreamAlreadyCreatedTimeSettingsMi
Settings settings = Settings.EMPTY;
Exception e = expectThrows(
IllegalStateException.class,
() -> provider.provideAdditionalMetadata(
() -> provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
null,
builder(),
(k, v) -> {}
IndexVersion.current(),
builder()
)
);
assertThat(
Expand All @@ -418,16 +418,16 @@ public void testGetAdditionalIndexSettingsNonTsdbTemplate() {

Settings settings = Settings.EMPTY;
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
null,
projectMetadata,
Instant.ofEpochMilli(1L),
settings,
null,
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
assertThat(result.size(), equalTo(0));
Expand All @@ -444,16 +444,16 @@ public void testGetAdditionalIndexSettingsMigrateToTsdb() {

Settings settings = Settings.EMPTY;
Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 2),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand All @@ -477,16 +477,16 @@ public void testGetAdditionalIndexSettingsDowngradeFromTsdb() {
);

Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 2),
dataStreamName,
null,
projectMetadata,
Instant.ofEpochMilli(1L),
Settings.EMPTY,
List.of(),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
Settings result = additionalSettings.build();
assertThat(result.size(), equalTo(0));
Expand Down Expand Up @@ -954,16 +954,16 @@ private Settings generateTsdbSettings(String mapping, Instant now) throws IOExce
Settings settings = Settings.EMPTY;

Settings.Builder additionalSettings = builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 1),
dataStreamName,
IndexMode.TIME_SERIES,
projectMetadata,
now,
settings,
List.of(new CompressedXContent(mapping)),
additionalSettings,
(k, v) -> {}
IndexVersion.current(),
additionalSettings
);
var result = additionalSettings.build();
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
Expand Down Expand Up @@ -1002,7 +1002,7 @@ private Settings onUpdateMappings(String routingPath, String dimensions, String
documentMapper = mapperService.documentMapper();
}
Settings.Builder additionalSettings = builder();
provider.onUpdateMappings(im, documentMapper, additionalSettings, (k, v) -> {});
provider.onUpdateMappings(im, documentMapper, additionalSettings);
return additionalSettings.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,16 +279,16 @@ public static Template resolveTemplate(
Set<String> overrulingSettings = new HashSet<>();
for (var provider : indexSettingProviders) {
Settings.Builder builder = Settings.builder();
provider.provideAdditionalMetadata(
provider.provideAdditionalSettings(
indexName,
template.getDataStreamTemplate() != null ? indexName : null,
simulatedProject.retrieveIndexModeFromTemplate(template),
simulatedProject,
now,
templateSettings,
mappings,
builder,
(k, v) -> {}
IndexVersion.current(),
builder
);
Settings result = builder.build();
MetadataCreateIndexService.validateAdditionalSettings(provider, result, additionalSettings);
Expand Down
Loading