Skip to content

Commit

Permalink
port fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
kkrik-es committed Feb 20, 2025
1 parent 076648d commit 968ed06
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public Collection<IndexSettingProvider> getAdditionalIndexSettingProviders(Index
IndexVersion.current(),
parameters.clusterService().state().nodes().getMaxDataNodeCompatibleIndexVersion()
),
() -> parameters.clusterService().state().nodes().getMinNodeVersion(),
() -> parameters.clusterService().state().nodes().getMinNodeVersion()
);
return List.of(syntheticSettingProvider, logsdbIndexModeSettingsProvider);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,6 @@ void updateClusterIndexModeLogsdbEnabled(boolean isLogsdbEnabled) {
this.isLogsdbEnabled = isLogsdbEnabled;
}

@Override
public boolean overrulesTemplateAndRequestSettings() {
// Indicates that the provider value takes precedence over any user setting.
return true;
}

@Override
public Settings getAdditionalIndexSettings(
final String indexName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.Version;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.common.UUIDs;
Expand Down Expand Up @@ -41,17 +42,20 @@ final class SyntheticSourceIndexSettingsProvider implements IndexSettingProvider
private final CheckedFunction<IndexMetadata, MapperService, IOException> mapperServiceFactory;
private final LogsdbIndexModeSettingsProvider logsdbIndexModeSettingsProvider;
private final Supplier<IndexVersion> createdIndexVersion;
private final Supplier<Version> minNodeVersion;

SyntheticSourceIndexSettingsProvider(
SyntheticSourceLicenseService syntheticSourceLicenseService,
CheckedFunction<IndexMetadata, MapperService, IOException> mapperServiceFactory,
LogsdbIndexModeSettingsProvider logsdbIndexModeSettingsProvider,
Supplier<IndexVersion> createdIndexVersion
Supplier<IndexVersion> createdIndexVersion,
Supplier<Version> minNodeVersion
) {
this.syntheticSourceLicenseService = syntheticSourceLicenseService;
this.mapperServiceFactory = mapperServiceFactory;
this.logsdbIndexModeSettingsProvider = logsdbIndexModeSettingsProvider;
this.createdIndexVersion = createdIndexVersion;
this.minNodeVersion = minNodeVersion;
}

@Override
Expand All @@ -70,6 +74,10 @@ public Settings getAdditionalIndexSettings(
Settings indexTemplateAndCreateRequestSettings,
List<CompressedXContent> combinedTemplateMappings
) {
if (minNodeVersion.get().before(Version.V_8_17_0)) {
return Settings.EMPTY;
}

var logsdbSettings = logsdbIndexModeSettingsProvider.getLogsdbModeSetting(dataStreamName, indexTemplateAndCreateRequestSettings);
if (logsdbSettings != Settings.EMPTY) {
indexTemplateAndCreateRequestSettings = Settings.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

package org.elasticsearch.xpack.logsdb;

import org.elasticsearch.Version;
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
import org.elasticsearch.cluster.metadata.ComposableIndexTemplateMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
Expand Down Expand Up @@ -153,7 +152,10 @@ public void testWithoutLogsComponentTemplate() throws IOException {
}

public void testWithLogsComponentTemplate() throws IOException {
final LogsdbIndexModeSettingsProvider provider = withoutMapperService(true);
final LogsdbIndexModeSettingsProvider provider = new LogsdbIndexModeSettingsProvider(
Settings.builder().put("cluster.logsdb.enabled", true).build()
);

final Settings additionalIndexSettings = provider.getAdditionalIndexSettings(
null,
"logs-apache-production",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public void setup() throws Exception {
syntheticSourceLicenseService,
im -> MapperTestUtils.newMapperService(xContentRegistry(), createTempDir(), im.getSettings(), im.getIndex().getName()),
getLogsdbIndexModeSettingsProvider(false),
IndexVersion::current
ava/org/elasticsearch/xpack/logsdb/LogsdbIndexSettingsProviderLegacyLicenseTests.java
IndexVersion::current,
() -> Version.CURRENT
);
}

Expand Down Expand Up @@ -118,7 +118,8 @@ public void testGetAdditionalIndexSettingsTsdbAfterCutoffDate() throws Exception
syntheticSourceLicenseService,
im -> MapperTestUtils.newMapperService(xContentRegistry(), createTempDir(), im.getSettings(), im.getIndex().getName()),
getLogsdbIndexModeSettingsProvider(false),
IndexVersion::current
IndexVersion::current,
() -> Version.CURRENT
);

Settings settings = Settings.builder().put(SourceFieldMapper.INDEX_MAPPER_SOURCE_MODE_SETTING.getKey(), "SYNTHETIC").build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package org.elasticsearch.xpack.logsdb;

import org.elasticsearch.Version;
import org.elasticsearch.cluster.metadata.DataStream;
import org.elasticsearch.cluster.metadata.DataStreamTestHelper;
import org.elasticsearch.cluster.metadata.Metadata;
Expand Down Expand Up @@ -62,7 +63,7 @@ public void setup() throws Exception {
provider = new SyntheticSourceIndexSettingsProvider(syntheticSourceLicenseService, im -> {
newMapperServiceCounter.incrementAndGet();
return MapperTestUtils.newMapperService(xContentRegistry(), createTempDir(), im.getSettings(), im.getIndex().getName());
}, getLogsdbIndexModeSettingsProvider(false), IndexVersion::current);
}, getLogsdbIndexModeSettingsProvider(false), IndexVersion::current, () -> Version.CURRENT);
newMapperServiceCounter.set(0);
}

Expand Down Expand Up @@ -275,7 +276,7 @@ public void testNewIndexHasSyntheticSourceUsage_invalidSettings() throws IOExcep
}
}

public void testGetAdditionalIndexSettingsDowngradeFromSyntheticSource() throws IOException {
public void testGetAdditionalIndexSettingsDowngradeFromSyntheticSource() {
String dataStreamName = "logs-app1";
Metadata.Builder mb = Metadata.builder(
DataStreamTestHelper.getClusterStateWithDataStreams(
Expand Down Expand Up @@ -344,13 +345,47 @@ public void testGetAdditionalIndexSettingsDowngradeFromSyntheticSource() throws
assertThat(newMapperServiceCounter.get(), equalTo(0));
}

public void testGetAdditionalIndexSettingsDowngradeFromSyntheticSourceOldNode() {
String dataStreamName = "logs-app1";
Metadata.Builder mb = Metadata.builder(
DataStreamTestHelper.getClusterStateWithDataStreams(
List.of(Tuple.tuple(dataStreamName, 1)),
List.of(),
Instant.now().toEpochMilli(),
builder().build(),
1
).getMetadata()
);
Metadata metadata = mb.build();

Settings settings = builder().put(SourceFieldMapper.INDEX_MAPPER_SOURCE_MODE_SETTING.getKey(), SourceFieldMapper.Mode.SYNTHETIC)
.build();

syntheticSourceLicenseService.setSyntheticSourceFallback(true);
provider = new SyntheticSourceIndexSettingsProvider(syntheticSourceLicenseService, im -> {
newMapperServiceCounter.incrementAndGet();
return MapperTestUtils.newMapperService(xContentRegistry(), createTempDir(), im.getSettings(), im.getIndex().getName());
}, getLogsdbIndexModeSettingsProvider(false), IndexVersion::current, () -> Version.V_8_16_0);
var result = provider.getAdditionalIndexSettings(
DataStream.getDefaultBackingIndexName(dataStreamName, 2),
dataStreamName,
null,
metadata,
Instant.ofEpochMilli(1L),
settings,
List.of()
);
assertTrue(result.isEmpty());
}

public void testGetAdditionalIndexSettingsDowngradeFromSyntheticSourceFileMatch() throws IOException {
syntheticSourceLicenseService.setSyntheticSourceFallback(true);
provider = new SyntheticSourceIndexSettingsProvider(
syntheticSourceLicenseService,
im -> MapperTestUtils.newMapperService(xContentRegistry(), createTempDir(), im.getSettings(), im.getIndex().getName()),
getLogsdbIndexModeSettingsProvider(true),
IndexVersion::current
IndexVersion::current,
() -> Version.CURRENT
);
final Settings settings = Settings.EMPTY;

Expand Down

0 comments on commit 968ed06

Please sign in to comment.