Merge pull request #10909 from aleph-zero/issues/9706
Read configuration file with .yaml suffix
This commit is contained in:
commit
334763acef
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
package org.elasticsearch.node.internal;
|
package org.elasticsearch.node.internal;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.elasticsearch.cluster.ClusterName;
|
import org.elasticsearch.cluster.ClusterName;
|
||||||
import org.elasticsearch.common.Names;
|
import org.elasticsearch.common.Names;
|
||||||
import org.elasticsearch.common.Strings;
|
import org.elasticsearch.common.Strings;
|
||||||
|
@ -27,6 +28,7 @@ import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.env.Environment;
|
import org.elasticsearch.env.Environment;
|
||||||
import org.elasticsearch.env.FailedToResolveConfigException;
|
import org.elasticsearch.env.FailedToResolveConfigException;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.elasticsearch.common.Strings.cleanPath;
|
import static org.elasticsearch.common.Strings.cleanPath;
|
||||||
|
@ -37,6 +39,8 @@ import static org.elasticsearch.common.settings.Settings.settingsBuilder;
|
||||||
*/
|
*/
|
||||||
public class InternalSettingsPreparer {
|
public class InternalSettingsPreparer {
|
||||||
|
|
||||||
|
static final List<String> ALLOWED_SUFFIXES = ImmutableList.of(".yml", ".yaml", ".json", ".properties");
|
||||||
|
|
||||||
public static Tuple<Settings, Environment> prepareSettings(Settings pSettings, boolean loadConfigSettings) {
|
public static Tuple<Settings, Environment> prepareSettings(Settings pSettings, boolean loadConfigSettings) {
|
||||||
// ignore this prefixes when getting properties from es. and elasticsearch.
|
// ignore this prefixes when getting properties from es. and elasticsearch.
|
||||||
String[] ignorePrefixes = new String[]{"es.default.", "elasticsearch.default."};
|
String[] ignorePrefixes = new String[]{"es.default.", "elasticsearch.default."};
|
||||||
|
@ -72,22 +76,12 @@ public class InternalSettingsPreparer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (loadFromEnv) {
|
if (loadFromEnv) {
|
||||||
try {
|
for (String allowedSuffix : ALLOWED_SUFFIXES) {
|
||||||
settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.yml"));
|
try {
|
||||||
} catch (FailedToResolveConfigException e) {
|
settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch" + allowedSuffix));
|
||||||
// ignore
|
} catch (FailedToResolveConfigException e) {
|
||||||
} catch (NoClassDefFoundError e) {
|
// ignore
|
||||||
// ignore, no yaml
|
}
|
||||||
}
|
|
||||||
try {
|
|
||||||
settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.json"));
|
|
||||||
} catch (FailedToResolveConfigException e) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.properties"));
|
|
||||||
} catch (FailedToResolveConfigException e) {
|
|
||||||
// ignore
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,4 +61,16 @@ public class InternalSettingsPreparerTests extends ElasticsearchTestCase {
|
||||||
// Should use setting from the system property
|
// Should use setting from the system property
|
||||||
assertThat(tuple.v1().get("node.zone"), equalTo("bar"));
|
assertThat(tuple.v1().get("node.zone"), equalTo("bar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAlternateConfigFileSuffixes() {
|
||||||
|
// test that we can read config files with .yaml, .json, and .properties suffixes
|
||||||
|
Tuple<Settings, Environment> tuple = InternalSettingsPreparer.prepareSettings(settingsBuilder()
|
||||||
|
.put("config.ignore_system_properties", true)
|
||||||
|
.build(), true);
|
||||||
|
|
||||||
|
assertThat(tuple.v1().get("yaml.config.exists"), equalTo("true"));
|
||||||
|
assertThat(tuple.v1().get("json.config.exists"), equalTo("true"));
|
||||||
|
assertThat(tuple.v1().get("properties.config.exists"), equalTo("true"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"json.config.exists" : "true"
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
properties.config.exists: true
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
yaml.config.exists: true
|
||||||
|
|
Loading…
Reference in New Issue