diff options
author | Ryan Ernst <ryan@iernst.net> | 2017-01-30 14:42:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-30 14:42:40 -0800 |
commit | a4f6edec521b9656c0d99320dd0f6f757de1e051 (patch) | |
tree | 99d7fef539814feb21896ca1b642ede01a8996cf /core/src/test/java/org/elasticsearch/node | |
parent | cf7747c3388ea0ba1bc6358a67fdb99a2f8b1826 (diff) |
Settings: Fix settings reading to account for defaults (#22871)
In #22762, settings preparation during bootstrap was changed slightly to
account for SecureSettings, by starting with a fresh settings builder
after reading the initial configuration. However, this the defaults from
system properties were never re-read. This change fixes that bug (which
was never released).
closes #22861
Diffstat (limited to 'core/src/test/java/org/elasticsearch/node')
-rw-r--r-- | core/src/test/java/org/elasticsearch/node/internal/InternalSettingsPreparerTests.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/core/src/test/java/org/elasticsearch/node/internal/InternalSettingsPreparerTests.java b/core/src/test/java/org/elasticsearch/node/internal/InternalSettingsPreparerTests.java index 58b6fd3959..21c1811616 100644 --- a/core/src/test/java/org/elasticsearch/node/internal/InternalSettingsPreparerTests.java +++ b/core/src/test/java/org/elasticsearch/node/internal/InternalSettingsPreparerTests.java @@ -35,25 +35,32 @@ import org.junit.Before; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; public class InternalSettingsPreparerTests extends ESTestCase { + Path homeDir; Settings baseEnvSettings; @Before public void createBaseEnvSettings() { + homeDir = createTempDir(); baseEnvSettings = Settings.builder() - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) + .put(Environment.PATH_HOME_SETTING.getKey(), homeDir) .build(); } @After public void clearBaseEnvSettings() { + homeDir = null; baseEnvSettings = null; } @@ -174,4 +181,19 @@ public class InternalSettingsPreparerTests extends ESTestCase { Setting<SecureString> fakeSetting = SecureSetting.secureString("foo", null, false); assertEquals("secret", fakeSetting.get(env.settings()).toString()); } + + public void testDefaultProperties() throws Exception { + Map<String, String> props = Collections.singletonMap("default.setting", "foo"); + Environment env = InternalSettingsPreparer.prepareEnvironment(baseEnvSettings, null, props); + assertEquals("foo", env.settings().get("setting")); + } + + public void testDefaultPropertiesOverride() throws Exception { + Path configDir = homeDir.resolve("config"); + Files.createDirectories(configDir); + Files.write(configDir.resolve("elasticsearch.yml"), Collections.singletonList("setting: bar"), StandardCharsets.UTF_8); + Map<String, String> props = Collections.singletonMap("default.setting", "foo"); + Environment env = InternalSettingsPreparer.prepareEnvironment(baseEnvSettings, null, props); + assertEquals("bar", env.settings().get("setting")); + } } |