make get(Setting) fallback to node settings
This commit is contained in:
parent
cc25c4c8be
commit
ef9ef0c47a
|
@ -293,7 +293,7 @@ public abstract class AbstractScopedSettings extends AbstractComponent {
|
||||||
if (get(setting.getKey()) == null) {
|
if (get(setting.getKey()) == null) {
|
||||||
throw new IllegalArgumentException("setting " + setting.getKey() + " has not been registered");
|
throw new IllegalArgumentException("setting " + setting.getKey() + " has not been registered");
|
||||||
}
|
}
|
||||||
return setting.get(this.lastSettingsApplied);
|
return setting.get(this.lastSettingsApplied, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,8 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.common.settings;
|
package org.elasticsearch.common.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.Version;
|
||||||
|
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||||
import org.elasticsearch.cluster.routing.allocation.decider.FilterAllocationDecider;
|
import org.elasticsearch.cluster.routing.allocation.decider.FilterAllocationDecider;
|
||||||
import org.elasticsearch.cluster.routing.allocation.decider.ShardsLimitAllocationDecider;
|
import org.elasticsearch.cluster.routing.allocation.decider.ShardsLimitAllocationDecider;
|
||||||
|
import org.elasticsearch.index.IndexModule;
|
||||||
import org.elasticsearch.test.ESTestCase;
|
import org.elasticsearch.test.ESTestCase;
|
||||||
import org.elasticsearch.transport.TransportService;
|
import org.elasticsearch.transport.TransportService;
|
||||||
|
|
||||||
|
@ -165,4 +168,26 @@ public class ScopedSettingsTests extends ESTestCase {
|
||||||
assertTrue(ref.get().contains("internal:index/shard/recovery/*"));
|
assertTrue(ref.get().contains("internal:index/shard/recovery/*"));
|
||||||
assertTrue(ref.get().contains("internal:gateway/local*"));
|
assertTrue(ref.get().contains("internal:gateway/local*"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetSetting() {
|
||||||
|
IndexScopeSettings settings = new IndexScopeSettings(
|
||||||
|
Settings.EMPTY,
|
||||||
|
IndexScopeSettings.BUILT_IN_INDEX_SETTINGS);
|
||||||
|
IndexScopeSettings copy = settings.copy(Settings.builder().put("index.store.type", "boom").build(), newIndexMeta("foo", Settings.builder().put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 3).build()));
|
||||||
|
assertEquals(3, copy.get(IndexMetaData.INDEX_NUMBER_OF_REPLICAS_SETTING).intValue());
|
||||||
|
assertEquals(1, copy.get(IndexMetaData.INDEX_NUMBER_OF_SHARDS_SETTING).intValue());
|
||||||
|
assertEquals("boom", copy.get(IndexModule.INDEX_STORE_TYPE_SETTING)); // test fallback to node settings
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static IndexMetaData newIndexMeta(String name, Settings indexSettings) {
|
||||||
|
Settings build = Settings.settingsBuilder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||||
|
.put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 1)
|
||||||
|
.put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
|
||||||
|
.put(indexSettings)
|
||||||
|
.build();
|
||||||
|
IndexMetaData metaData = IndexMetaData.builder(name).settings(build).build();
|
||||||
|
return metaData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue