mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 10:25:15 +00:00
Reject index.optimize_auto_generated_id setting (#28895)
This commit rejects the index.optmize_auto_generated_id setting for indices created on or after 7.0.0. This setting was deprecated in 6.7.0.
This commit is contained in:
parent
023e3c207a
commit
b8be6cb5c7
@ -83,6 +83,7 @@ import org.elasticsearch.index.IndexSettings;
|
||||
import org.elasticsearch.index.analysis.AnalysisRegistry;
|
||||
import org.elasticsearch.index.cache.request.ShardRequestCache;
|
||||
import org.elasticsearch.index.engine.CommitStats;
|
||||
import org.elasticsearch.index.engine.EngineConfig;
|
||||
import org.elasticsearch.index.engine.EngineFactory;
|
||||
import org.elasticsearch.index.engine.InternalEngineFactory;
|
||||
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
|
||||
@ -493,6 +494,11 @@ public class IndicesService extends AbstractLifecycleComponent
|
||||
List<IndexEventListener> builtInListeners,
|
||||
IndexingOperationListener... indexingOperationListeners) throws IOException {
|
||||
final IndexSettings idxSettings = new IndexSettings(indexMetaData, settings, indexScopedSettings);
|
||||
if (idxSettings.getIndexVersionCreated().onOrAfter(Version.V_7_0_0)
|
||||
&& EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.exists(idxSettings.getSettings())) {
|
||||
throw new IllegalArgumentException(
|
||||
"Setting [" + EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey() + "] was removed in version 7.0.0");
|
||||
}
|
||||
// we ignore private settings since they are not registered settings
|
||||
indexScopedSettings.validate(indexMetaData.getSettings(), true, true, true);
|
||||
logger.debug("creating Index [{}], shards [{}]/[{}] - reason [{}]",
|
||||
|
@ -642,5 +642,48 @@ public class IndicesServiceTests extends ESSingleNodeTestCase {
|
||||
.build();
|
||||
}
|
||||
|
||||
public void testOptimizeAutoGeneratedIdsSettingRemoval() throws Exception {
|
||||
final IndicesService indicesService = getIndicesService();
|
||||
|
||||
final Index index = new Index("foo-index", UUIDs.randomBase64UUID());
|
||||
Settings.Builder builder = Settings.builder()
|
||||
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_7_0_0)
|
||||
.put(IndexMetaData.SETTING_INDEX_UUID, index.getUUID());
|
||||
IndexMetaData indexMetaData = new IndexMetaData.Builder(index.getName())
|
||||
.settings(builder.build())
|
||||
.numberOfShards(1)
|
||||
.numberOfReplicas(0)
|
||||
.build();
|
||||
IndexService indexService = indicesService.createIndex(indexMetaData, Collections.emptyList());
|
||||
assertNotNull(indexService);
|
||||
|
||||
final Index index2 = new Index("bar-index", UUIDs.randomBase64UUID());
|
||||
Settings.Builder builder2 = Settings.builder()
|
||||
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_7_0_0)
|
||||
.put(IndexMetaData.SETTING_INDEX_UUID, index2.getUUID())
|
||||
.put(EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey(), randomBoolean());
|
||||
IndexMetaData indexMetaData2 = new IndexMetaData.Builder(index2.getName())
|
||||
.settings(builder2.build())
|
||||
.numberOfShards(1)
|
||||
.numberOfReplicas(0)
|
||||
.build();
|
||||
IllegalArgumentException ex = expectThrows(IllegalArgumentException.class,
|
||||
() -> indicesService.createIndex(indexMetaData2, Collections.emptyList()));
|
||||
assertEquals("Setting [" + EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey() + "] was removed in version 7.0.0",
|
||||
ex.getMessage());
|
||||
|
||||
Version version = randomFrom(Version.V_6_0_0_rc1, Version.V_6_0_0, Version.V_6_2_0, Version.V_6_3_0, Version.V_6_4_0);
|
||||
builder = Settings.builder()
|
||||
.put(IndexMetaData.SETTING_VERSION_CREATED, version)
|
||||
.put(IndexMetaData.SETTING_INDEX_UUID, index2.getUUID())
|
||||
.put(EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey(), randomBoolean());
|
||||
IndexMetaData indexMetaData3 = new IndexMetaData.Builder(index2.getName())
|
||||
.settings(builder.build())
|
||||
.numberOfShards(1)
|
||||
.numberOfReplicas(0)
|
||||
.build();
|
||||
IndexService indexService2 = indicesService.createIndex(indexMetaData3, Collections.emptyList());
|
||||
assertNotNull(indexService2);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user