summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/node
diff options
context:
space:
mode:
authorRyan Ernst <ryan@iernst.net>2017-01-30 14:42:40 -0800
committerGitHub <noreply@github.com>2017-01-30 14:42:40 -0800
commita4f6edec521b9656c0d99320dd0f6f757de1e051 (patch)
tree99d7fef539814feb21896ca1b642ede01a8996cf /core/src/test/java/org/elasticsearch/node
parentcf7747c3388ea0ba1bc6358a67fdb99a2f8b1826 (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.java24
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"));
+ }
}