diff --git a/docs/reference/migration/migrate_2_0.asciidoc b/docs/reference/migration/migrate_2_0.asciidoc index 4376d75460a5..6ca27faaddc6 100644 --- a/docs/reference/migration/migrate_2_0.asciidoc +++ b/docs/reference/migration/migrate_2_0.asciidoc @@ -286,7 +286,27 @@ setting. Please however note that using a non-default codec is discouraged as it could prevent future versions of Elasticsearch from being able to read the index. -=== Scripts +=== Scripting settings + +Removed support for `script.disable_dynamic` node setting, replaced by +fine-grained script settings described in the <>. +The following setting previously used to enable dynamic scripts: + +[source,yaml] +--------------- +script.disable_dynamic: false +--------------- + +can be replaced with the following two settings in `elasticsearch.yml` that +achieve the same result: + +[source,yaml] +--------------- +script.inline: on +script.indexed: on +--------------- + +=== Script parameters Deprecated script parameters `id`, `file`, and `scriptField` have been removed from all scriptable APIs. `script_id`, `script_file` and `script` should be used diff --git a/docs/reference/modules/scripting.asciidoc b/docs/reference/modules/scripting.asciidoc index d14c26f89c19..2231c1b7749c 100644 --- a/docs/reference/modules/scripting.asciidoc +++ b/docs/reference/modules/scripting.asciidoc @@ -246,8 +246,6 @@ application inbetween. If you *do* intend to expose Elasticsearch directly to your users, then you have to decide whether you trust them enough to run scripts on your box or not. -deprecated[1.6.0, the `script.disable_dynamic` setting is deprecated in favour of fine-grained settings described as follows] - It is possible to enable scripts based on their source, for every script engine, through the following settings that need to be added to the `config/elasticsearch.yml` file on every node. diff --git a/src/main/java/org/elasticsearch/script/ScriptModes.java b/src/main/java/org/elasticsearch/script/ScriptModes.java index 37e34efdbc3d..d30d7ad476cc 100644 --- a/src/main/java/org/elasticsearch/script/ScriptModes.java +++ b/src/main/java/org/elasticsearch/script/ScriptModes.java @@ -20,15 +20,16 @@ package org.elasticsearch.script; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.elasticsearch.ElasticsearchIllegalArgumentException; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.script.ScriptService.ScriptType; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; /** * Holds the {@link org.elasticsearch.script.ScriptMode}s for each of the different scripting languages available, @@ -41,15 +42,15 @@ public class ScriptModes { final ImmutableMap scriptModes; - ScriptModes(Map scriptEngines, Settings settings, ESLogger logger) { + ScriptModes(Map scriptEngines, Settings settings) { //filter out the native engine as we don't want to apply fine grained settings to it. //native scripts are always on as they are static by definition. Map filteredEngines = Maps.newHashMap(scriptEngines); filteredEngines.remove(NativeScriptEngineService.NAME); - this.scriptModes = buildScriptModeSettingsMap(settings, filteredEngines, logger); + this.scriptModes = buildScriptModeSettingsMap(settings, filteredEngines); } - private ImmutableMap buildScriptModeSettingsMap(Settings settings, Map scriptEngines, ESLogger logger) { + private ImmutableMap buildScriptModeSettingsMap(Settings settings, Map scriptEngines) { HashMap scriptModesMap = Maps.newHashMap(); //file scripts are enabled by default, for any language @@ -59,39 +60,35 @@ public class ScriptModes { //dynamic scripts are enabled by default only for sandboxed languages addGlobalScriptTypeModes(scriptEngines.keySet(), ScriptType.INLINE, ScriptMode.SANDBOX, scriptModesMap); - List processedSettings = Lists.newArrayList(); - processSourceBasedGlobalSettings(settings, scriptEngines, processedSettings, scriptModesMap); - processOperationBasedGlobalSettings(settings, scriptEngines, processedSettings, scriptModesMap); - processEngineSpecificSettings(settings, scriptEngines, processedSettings, scriptModesMap); - processDisableDynamicDeprecatedSetting(settings, scriptEngines, processedSettings, scriptModesMap, logger); + processSourceBasedGlobalSettings(settings, scriptEngines, scriptModesMap); + processOperationBasedGlobalSettings(settings, scriptEngines, scriptModesMap); + processEngineSpecificSettings(settings, scriptEngines, scriptModesMap); return ImmutableMap.copyOf(scriptModesMap); } - private static void processSourceBasedGlobalSettings(Settings settings, Map scriptEngines, List processedSettings, Map scriptModes) { + private static void processSourceBasedGlobalSettings(Settings settings, Map scriptEngines, Map scriptModes) { //read custom source based settings for all operations (e.g. script.indexed: on) for (ScriptType scriptType : ScriptType.values()) { String scriptTypeSetting = settings.get(SCRIPT_SETTINGS_PREFIX + scriptType); if (Strings.hasLength(scriptTypeSetting)) { ScriptMode scriptTypeMode = ScriptMode.parse(scriptTypeSetting); - processedSettings.add(SCRIPT_SETTINGS_PREFIX + scriptType + ": " + scriptTypeMode); addGlobalScriptTypeModes(scriptEngines.keySet(), scriptType, scriptTypeMode, scriptModes); } } } - private static void processOperationBasedGlobalSettings(Settings settings, Map scriptEngines, List processedSettings, Map scriptModes) { + private static void processOperationBasedGlobalSettings(Settings settings, Map scriptEngines, Map scriptModes) { //read custom op based settings for all sources (e.g. script.aggs: off) //op based settings take precedence over source based settings, hence they get expanded later for (ScriptContext scriptContext : ScriptContext.values()) { ScriptMode scriptMode = getScriptContextMode(settings, SCRIPT_SETTINGS_PREFIX, scriptContext); if (scriptMode != null) { - processedSettings.add(SCRIPT_SETTINGS_PREFIX + scriptContext + ": " + scriptMode); addGlobalScriptContextModes(scriptEngines.keySet(), scriptContext, scriptMode, scriptModes); } } } - private static void processEngineSpecificSettings(Settings settings, Map scriptEngines, List processedSettings, Map scriptModes) { + private static void processEngineSpecificSettings(Settings settings, Map scriptEngines, Map scriptModes) { Map langGroupedSettings = settings.getGroups(ENGINE_SETTINGS_PREFIX, true); for (Map.Entry langSettings : langGroupedSettings.entrySet()) { //read engine specific settings that refer to a non existing script lang will be ignored @@ -103,7 +100,6 @@ public class ScriptModes { for (ScriptContext scriptContext : ScriptContext.values()) { ScriptMode scriptMode = getScriptContextMode(langSettings.getValue(), scriptTypePrefix, scriptContext); if (scriptMode != null) { - processedSettings.add(enginePrefix + scriptTypePrefix + scriptContext + ": " + scriptMode); addScriptMode(scriptEngineService, scriptType, scriptContext, scriptMode, scriptModes); } } @@ -112,32 +108,6 @@ public class ScriptModes { } } - private void processDisableDynamicDeprecatedSetting(Settings settings, Map scriptEngines, - List processedSettings, Map scriptModes, ESLogger logger) { - //read deprecated disable_dynamic setting, apply only if none of the new settings is used - String disableDynamicSetting = settings.get(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING); - if (disableDynamicSetting != null) { - if (processedSettings.isEmpty()) { - ScriptService.DynamicScriptDisabling dynamicScriptDisabling = ScriptService.DynamicScriptDisabling.parse(disableDynamicSetting); - switch(dynamicScriptDisabling) { - case EVERYTHING_ALLOWED: - addGlobalScriptTypeModes(scriptEngines.keySet(), ScriptType.INDEXED, ScriptMode.ON, scriptModes); - addGlobalScriptTypeModes(scriptEngines.keySet(), ScriptType.INLINE, ScriptMode.ON, scriptModes); - break; - case ONLY_DISK_ALLOWED: - addGlobalScriptTypeModes(scriptEngines.keySet(), ScriptType.INDEXED, ScriptMode.OFF, scriptModes); - addGlobalScriptTypeModes(scriptEngines.keySet(), ScriptType.INLINE, ScriptMode.OFF, scriptModes); - break; - } - logger.warn("deprecated setting [{}] is set, replace with fine-grained scripting settings (e.g. script.inline, script.indexed, script.file)", ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING); - } else { - processedSettings.add(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING + ": " + disableDynamicSetting); - throw new ElasticsearchIllegalArgumentException("conflicting scripting settings have been specified, use either " - + ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING + " (deprecated) or the newer fine-grained settings (e.g. script.inline, script.indexed, script.file), not both at the same time:\n" + processedSettings); - } - } - } - private static ScriptMode getScriptContextMode(Settings settings, String prefix, ScriptContext scriptContext) { String settingValue = settings.get(prefix + scriptContext); if (Strings.hasLength(settingValue)) { diff --git a/src/main/java/org/elasticsearch/script/ScriptService.java b/src/main/java/org/elasticsearch/script/ScriptService.java index 3f01051c0dc3..53834aa8a604 100644 --- a/src/main/java/org/elasticsearch/script/ScriptService.java +++ b/src/main/java/org/elasticsearch/script/ScriptService.java @@ -81,8 +81,9 @@ import java.util.concurrent.TimeUnit; */ public class ScriptService extends AbstractComponent implements Closeable { + static final String DISABLE_DYNAMIC_SCRIPTING_SETTING = "script.disable_dynamic"; + public static final String DEFAULT_SCRIPTING_LANGUAGE_SETTING = "script.default_lang"; - public static final String DISABLE_DYNAMIC_SCRIPTING_SETTING = "script.disable_dynamic"; public static final String SCRIPT_CACHE_SIZE_SETTING = "script.cache.max_size"; public static final String SCRIPT_CACHE_EXPIRE_SETTING = "script.cache.expire"; public static final String SCRIPT_INDEX = ".scripts"; @@ -105,37 +106,6 @@ public class ScriptService extends AbstractComponent implements Closeable { private Client client = null; - /** - * Enum defining the different dynamic settings for scripting, either - * ONLY_DISK_ALLOWED (scripts must be placed on disk), EVERYTHING_ALLOWED - * (all dynamic scripting is enabled), or SANDBOXED_ONLY (only sandboxed - * scripting languages are allowed) - */ - enum DynamicScriptDisabling { - EVERYTHING_ALLOWED, - ONLY_DISK_ALLOWED, - SANDBOXED_ONLY; - - static DynamicScriptDisabling parse(String s) { - switch (s.toLowerCase(Locale.ROOT)) { - // true for "disable_dynamic" means only on-disk scripts are enabled - case "true": - case "all": - return ONLY_DISK_ALLOWED; - // false for "disable_dynamic" means all scripts are enabled - case "false": - case "none": - return EVERYTHING_ALLOWED; - // only sandboxed scripting is enabled - case "sandbox": - case "sandboxed": - return SANDBOXED_ONLY; - default: - throw new ElasticsearchIllegalArgumentException("Unrecognized script allowance setting: [" + s + "]"); - } - } - } - public static final ParseField SCRIPT_LANG = new ParseField("lang","script_lang"); public static final ParseField SCRIPT_FILE = new ParseField("script_file"); public static final ParseField SCRIPT_ID = new ParseField("script_id"); @@ -146,6 +116,11 @@ public class ScriptService extends AbstractComponent implements Closeable { ResourceWatcherService resourceWatcherService, NodeSettingsService nodeSettingsService) throws IOException { super(settings); + if (Strings.hasLength(settings.get(DISABLE_DYNAMIC_SCRIPTING_SETTING))) { + throw new ElasticsearchIllegalArgumentException(DISABLE_DYNAMIC_SCRIPTING_SETTING + " is not a supported setting, replace with fine-grained script settings. \n" + + "Dynamic scripts can be enabled for all languages and all operations by replacing `script.disable_dynamic: false` with `script.inline: on` and `script.indexed: on` in elasticsearch.yml"); + } + this.scriptEngines = scriptEngines; int cacheMaxSize = settings.getAsInt(SCRIPT_CACHE_SIZE_SETTING, 100); TimeValue cacheExpire = settings.getAsTime(SCRIPT_CACHE_EXPIRE_SETTING, null); @@ -175,7 +150,7 @@ public class ScriptService extends AbstractComponent implements Closeable { this.scriptEnginesByLang = enginesByLangBuilder.build(); this.scriptEnginesByExt = enginesByExtBuilder.build(); - this.scriptModes = new ScriptModes(this.scriptEnginesByLang, settings, logger); + this.scriptModes = new ScriptModes(this.scriptEnginesByLang, settings); // add file watcher for static scripts scriptsDirectory = env.configFile().resolve("scripts"); diff --git a/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java b/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java index 4f55ef938bc8..e8ce1488dc84 100644 --- a/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java +++ b/src/test/java/org/elasticsearch/env/NodeEnvironmentTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.AbstractRunnable; import org.elasticsearch.index.Index; import org.elasticsearch.index.shard.ShardId; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; @@ -399,7 +398,6 @@ public class NodeEnvironmentTests extends ElasticsearchTestCase { .put(settings) .put("path.home", newTempDirPath().toAbsolutePath().toString()) .put(NodeEnvironment.SETTING_CUSTOM_DATA_PATH_ENABLED, true) - .put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, false) .putArray("path.data", tmpPaths()).build(); return new NodeEnvironment(build, new Environment(build)); } @@ -409,7 +407,6 @@ public class NodeEnvironmentTests extends ElasticsearchTestCase { .put(settings) .put("path.home", newTempDirPath().toAbsolutePath().toString()) .put(NodeEnvironment.SETTING_CUSTOM_DATA_PATH_ENABLED, true) - .put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, false) .putArray("path.data", dataPaths).build(); return new NodeEnvironment(build, new Environment(build)); } diff --git a/src/test/java/org/elasticsearch/script/NativeScriptTests.java b/src/test/java/org/elasticsearch/script/NativeScriptTests.java index 3000461b8e72..d4b8e48b0471 100644 --- a/src/test/java/org/elasticsearch/script/NativeScriptTests.java +++ b/src/test/java/org/elasticsearch/script/NativeScriptTests.java @@ -86,21 +86,6 @@ public class NativeScriptTests extends ElasticsearchTestCase { } } - @Test - public void testDisableDynamicDoesntAffectNativeScripts() throws IOException { - Settings settings = ImmutableSettings.settingsBuilder().put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, randomFrom("true", "false", "sandbox")).build(); - Environment environment = new Environment(settings); - ResourceWatcherService resourceWatcherService = new ResourceWatcherService(settings, null); - Map nativeScriptFactoryMap = new HashMap<>(); - nativeScriptFactoryMap.put("my", new MyNativeScriptFactory()); - Set scriptEngineServices = ImmutableSet.of(new NativeScriptEngineService(settings, nativeScriptFactoryMap)); - ScriptService scriptService = new ScriptService(settings, environment, scriptEngineServices, resourceWatcherService, new NodeSettingsService(settings)); - - for (ScriptContext scriptContext : ScriptContext.values()) { - assertThat(scriptService.compile(NativeScriptEngineService.NAME, "my", ScriptType.INLINE, scriptContext), notNullValue()); - } - } - static class MyNativeScriptFactory implements NativeScriptFactory { @Override public ExecutableScript newScript(@Nullable Map params) { diff --git a/src/test/java/org/elasticsearch/script/ScriptModesTests.java b/src/test/java/org/elasticsearch/script/ScriptModesTests.java index 1c628b2bf383..91fdba9f8c00 100644 --- a/src/test/java/org/elasticsearch/script/ScriptModesTests.java +++ b/src/test/java/org/elasticsearch/script/ScriptModesTests.java @@ -23,9 +23,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import org.elasticsearch.ElasticsearchIllegalArgumentException; import org.elasticsearch.common.Nullable; -import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.settings.ImmutableSettings; -import org.elasticsearch.common.settings.Settings; import org.elasticsearch.script.ScriptService.ScriptType; import org.elasticsearch.script.expression.ExpressionScriptEngineService; import org.elasticsearch.script.groovy.GroovyScriptEngineService; @@ -41,7 +39,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.notNullValue; @@ -94,76 +91,22 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDefaultSettings() { - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY, Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); } - @Test - public void testDefaultSettingsDisableDynamicTrue() { - //verify that disable_dynamic setting gets still read and applied, iff new settings are not present - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.builder().put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, randomFrom("true", "all")).build(), Loggers.getLogger(ScriptModesTests.class)); - assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); - assertScriptModesAllOps(ScriptMode.OFF, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); - } - - @Test - public void testDefaultSettingsEnableDynamicFalse() { - //verify that disable_dynamic setting gets still read and applied, iff new settings are not present - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.builder().put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, randomFrom("false", "none")).build(), Loggers.getLogger(ScriptModesTests.class)); - assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE, ScriptType.INDEXED, ScriptType.INLINE); - } - - @Test - public void testDefaultSettingsDisableDynamicSandbox() { - //verify that disable_dynamic setting gets still read and applied, iff new settings are not present - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.builder().put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, ScriptMode.SANDBOX).build(), Loggers.getLogger(ScriptModesTests.class)); - assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); - assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); - } - - @Test - public void testConflictingSettings() { - assertScriptModesNonNull = false; - ImmutableSettings.Builder builder = ImmutableSettings.builder() - .put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, randomFrom("all", "true", "none", "false", "sandbox", "sandboxed")); - - int iterations = randomIntBetween(1, 5); - for (int i = 0; i < iterations; i++) { - if (randomBoolean()) { - builder.put("script." + randomFrom(ScriptType.values()), randomFrom(ScriptMode.values())); - } else { - if (randomBoolean()) { - builder.put(ScriptModes.SCRIPT_SETTINGS_PREFIX + randomFrom(ScriptContext.values()), randomFrom(ScriptMode.values())); - } else { - builder.put(specificEngineOpSettings(GroovyScriptEngineService.NAME, randomFrom(ScriptType.values()), randomFrom(ScriptContext.values())), randomFrom(ScriptMode.values())); - } - } - } - - Settings settings = builder.build(); - try { - this.scriptModes = new ScriptModes(scriptEngines, settings, Loggers.getLogger(ScriptModesTests.class)); - fail("ScriptModes should have thrown an error due to conflicting settings"); - } catch(ElasticsearchIllegalArgumentException e) { - assertThat(e.getMessage(), containsString("conflicting scripting settings have been specified")); - for (Map.Entry scriptSettingEntry : settings.getAsSettings("script").getAsMap().entrySet()) { - assertThat(e.getMessage(), containsString(ScriptModes.SCRIPT_SETTINGS_PREFIX + scriptSettingEntry.getKey() + ": " + scriptSettingEntry.getValue())); - } - } - } - @Test(expected = ElasticsearchIllegalArgumentException.class) public void testMissingSetting() { assertAllSettingsWereChecked = false; - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY, Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY); scriptModes.getScriptMode("non_existing", randomFrom(ScriptType.values()), randomFrom(ScriptContext.values())); } @Test public void testEnableInlineGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.inline", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE, ScriptType.INLINE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED); } @@ -171,7 +114,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableInlineGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.inline", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED); assertScriptModesAllOps(ScriptMode.OFF, ALL_LANGS, ScriptType.INLINE); @@ -181,7 +124,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { public void testSandboxInlineGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.inline", randomFrom(ScriptMode.SANDBOX)); //nothing changes if setting set is same as default - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); } @@ -189,7 +132,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testEnableIndexedGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.indexed", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE, ScriptType.INDEXED); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INLINE); } @@ -197,7 +140,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableIndexedGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.indexed", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.OFF, ALL_LANGS, ScriptType.INDEXED); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INLINE); @@ -207,7 +150,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { public void testSandboxIndexedGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.indexed", ScriptMode.SANDBOX); //nothing changes if setting set is same as default - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); } @@ -216,7 +159,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { public void testEnableFileGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.file", randomFrom(ENABLE_VALUES)); //nothing changes if setting set is same as default - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); } @@ -224,7 +167,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableFileGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.file", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.OFF, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED, ScriptType.INLINE); } @@ -233,14 +176,14 @@ public class ScriptModesTests extends ElasticsearchTestCase { public void testSandboxFileGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.file", ScriptMode.SANDBOX); //nothing changes if setting set is same as default - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.FILE, ScriptType.INDEXED, ScriptType.INLINE); } @Test public void testMultipleScriptTypeGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.file", ScriptMode.SANDBOX).put("script.inline", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.FILE); assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED); assertScriptModesAllOps(ScriptMode.OFF, ALL_LANGS, ScriptType.INLINE); @@ -249,7 +192,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testEnableMappingGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.mapping", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.ON, ALL_LANGS, ScriptContext.MAPPING); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); @@ -258,7 +201,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableMappingGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.mapping", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.MAPPING); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); @@ -267,7 +210,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testSandboxMappingGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.mapping", ScriptMode.SANDBOX); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.SANDBOX, ALL_LANGS, ScriptContext.MAPPING); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.SEARCH, ScriptContext.UPDATE); @@ -276,7 +219,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testEnableSearchGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.search", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.ON, ALL_LANGS, ScriptContext.SEARCH); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -285,7 +228,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableSearchGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.search", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.SEARCH); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -294,7 +237,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testSandboxSearchGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.search", ScriptMode.SANDBOX); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.SANDBOX, ALL_LANGS, ScriptContext.SEARCH); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -303,7 +246,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testEnableAggsGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.aggs", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.ON, ALL_LANGS, ScriptContext.AGGS); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -312,7 +255,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableAggsGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.aggs", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.AGGS); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -321,7 +264,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testSandboxAggsGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.aggs", ScriptMode.SANDBOX); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.SANDBOX, ALL_LANGS, ScriptContext.AGGS); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.UPDATE); @@ -330,7 +273,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testEnableUpdateGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.update", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.ON, ALL_LANGS, ScriptContext.UPDATE); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); @@ -339,7 +282,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDisableUpdateGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.update", randomFrom(DISABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.UPDATE); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); @@ -348,7 +291,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testSandboxUpdateGenericSettings() { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.update", ScriptMode.SANDBOX); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.SANDBOX, ALL_LANGS, ScriptContext.UPDATE); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INDEXED, ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.MAPPING, ScriptContext.AGGS); @@ -359,7 +302,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.update", ScriptMode.SANDBOX) .put("script.aggs", randomFrom(DISABLE_VALUES)) .put("script.search", randomFrom(ENABLE_VALUES)); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.SANDBOX, ALL_LANGS, ScriptContext.UPDATE); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.AGGS); assertScriptModesAllTypes(ScriptMode.ON, ALL_LANGS, ScriptContext.SEARCH); @@ -372,7 +315,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { ImmutableSettings.Builder builder = ImmutableSettings.builder().put("script.update", randomFrom(DISABLE_VALUES)) .put("script.indexed", randomFrom(ENABLE_VALUES)).put("script.inline", ScriptMode.SANDBOX); //operations generic settings have precedence over script type generic settings - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModesAllTypes(ScriptMode.OFF, ALL_LANGS, ScriptContext.UPDATE); assertScriptModes(ScriptMode.ON, ALL_LANGS, new ScriptType[]{ScriptType.FILE, ScriptType.INDEXED}, ScriptContext.MAPPING, ScriptContext.AGGS, ScriptContext.SEARCH); assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INLINE}, ScriptContext.MAPPING, ScriptContext.AGGS, ScriptContext.SEARCH); @@ -386,7 +329,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { ImmutableSet groovyLangSet = ImmutableSet.of(GroovyScriptEngineService.NAME); Set allButGroovyLangSet = new HashSet<>(ALL_LANGS); allButGroovyLangSet.remove(GroovyScriptEngineService.NAME); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModes(ScriptMode.OFF, groovyLangSet, new ScriptType[]{ScriptType.INLINE}, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModes(ScriptMode.SANDBOX, groovyLangSet, new ScriptType[]{ScriptType.INLINE}, ScriptContext.SEARCH, ScriptContext.AGGS); assertScriptModesAllOps(ScriptMode.SANDBOX, allButGroovyLangSet, ScriptType.INLINE); @@ -402,7 +345,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { ImmutableSet mustacheLangSet = ImmutableSet.of(MustacheScriptEngineService.NAME); Set allButMustacheLangSet = new HashSet<>(ALL_LANGS); allButMustacheLangSet.remove(MustacheScriptEngineService.NAME); - this.scriptModes = new ScriptModes(scriptEngines, builder.build(), Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, builder.build()); assertScriptModes(ScriptMode.ON, mustacheLangSet, new ScriptType[]{ScriptType.INLINE}, ScriptContext.AGGS, ScriptContext.SEARCH); assertScriptModes(ScriptMode.OFF, mustacheLangSet, new ScriptType[]{ScriptType.INLINE}, ScriptContext.MAPPING, ScriptContext.UPDATE); assertScriptModesAllOps(ScriptMode.OFF, allButMustacheLangSet, ScriptType.INLINE); @@ -413,7 +356,7 @@ public class ScriptModesTests extends ElasticsearchTestCase { @Test public void testDefaultSettingsToString() { assertAllSettingsWereChecked = false; - this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY, Loggers.getLogger(ScriptModesTests.class)); + this.scriptModes = new ScriptModes(scriptEngines, ImmutableSettings.EMPTY); assertThat(scriptModes.toString(), equalTo( "script.engine.custom.file.aggs: on\n" + "script.engine.custom.file.mapping: on\n" + diff --git a/src/test/java/org/elasticsearch/script/ScriptServiceTests.java b/src/test/java/org/elasticsearch/script/ScriptServiceTests.java index 6d905ea708ed..cd1dcbe078f2 100644 --- a/src/test/java/org/elasticsearch/script/ScriptServiceTests.java +++ b/src/test/java/org/elasticsearch/script/ScriptServiceTests.java @@ -93,6 +93,16 @@ public class ScriptServiceTests extends ElasticsearchTestCase { }; } + @Test + public void testNotSupportedDisableDynamicSetting() throws IOException { + try { + buildScriptService(ImmutableSettings.builder().put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, randomUnicodeOfLength(randomIntBetween(1, 10))).build()); + fail("script service should have thrown exception due to non supported script.disable_dynamic setting"); + } catch(ElasticsearchIllegalArgumentException e) { + assertThat(e.getMessage(), containsString(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING + " is not a supported setting, replace with fine-grained script settings")); + } + } + @Test public void testScriptsWithoutExtensions() throws IOException { buildScriptService(ImmutableSettings.EMPTY); @@ -184,54 +194,6 @@ public class ScriptServiceTests extends ElasticsearchTestCase { } } - @Test - public void testDisableDynamicDeprecatedSetting() throws IOException { - ImmutableSettings.Builder builder = ImmutableSettings.builder(); - ScriptService.DynamicScriptDisabling dynamicScriptDisabling = randomFrom(ScriptService.DynamicScriptDisabling.values()); - switch(dynamicScriptDisabling) { - case EVERYTHING_ALLOWED: - builder.put("script.disable_dynamic", randomFrom("false", "none")); - break; - case ONLY_DISK_ALLOWED: - builder.put("script.disable_dynamic", randomFrom("true", "all")); - break; - case SANDBOXED_ONLY: - builder.put("script.disable_dynamic", randomFrom("sandbox", "sandboxed")); - break; - } - - buildScriptService(builder.build()); - createFileScripts("groovy", "expression", "mustache", "test"); - - for (ScriptContext scriptContext : ScriptContext.values()) { - for (ScriptEngineService scriptEngineService : scriptEngineServices) { - for (String lang : scriptEngineService.types()) { - assertCompileAccepted(lang, "file_script", ScriptType.FILE, scriptContext); - - switch (dynamicScriptDisabling) { - case EVERYTHING_ALLOWED: - assertCompileAccepted(lang, "script", ScriptType.INDEXED, scriptContext); - assertCompileAccepted(lang, "script", ScriptType.INLINE, scriptContext); - break; - case ONLY_DISK_ALLOWED: - assertCompileRejected(lang, "script", ScriptType.INDEXED, scriptContext); - assertCompileRejected(lang, "script", ScriptType.INLINE, scriptContext); - break; - case SANDBOXED_ONLY: - if (scriptEngineService.sandboxed()) { - assertCompileAccepted(lang, "script", ScriptType.INDEXED, scriptContext); - assertCompileAccepted(lang, "script", ScriptType.INLINE, scriptContext); - } else { - assertCompileRejected(lang, "script", ScriptType.INDEXED, scriptContext); - assertCompileRejected(lang, "script", ScriptType.INLINE, scriptContext); - } - break; - } - } - } - } - } - @Test public void testFineGrainedSettings() throws IOException { //collect the fine-grained settings to set for this run @@ -324,7 +286,6 @@ public class ScriptServiceTests extends ElasticsearchTestCase { for (ScriptContext scriptContext : ScriptContext.values()) { //fallback mechanism: 1) engine specific settings 2) op based settings 3) source based settings ScriptMode scriptMode = engineSettings.get(scriptEngineService.types()[0] + "." + scriptType + "." + scriptContext); - ; if (scriptMode == null) { scriptMode = scriptContextSettings.get(scriptContext); } diff --git a/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreBackwardCompatibilityTests.java b/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreBackwardCompatibilityTests.java index d7997215dd7b..6b29f6ff7520 100644 --- a/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreBackwardCompatibilityTests.java +++ b/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreBackwardCompatibilityTests.java @@ -18,14 +18,12 @@ */ package org.elasticsearch.search.functionscore; -import org.elasticsearch.Version; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest; import org.junit.Test; @@ -104,21 +102,9 @@ public class FunctionScoreBackwardCompatibilityTests extends ElasticsearchBackwa } @Override - protected Settings nodeSettings(int nodeOrdinal) { - //enable scripting on the internal nodes - return ImmutableSettings.builder().put(super.nodeSettings(nodeOrdinal)).put("script.inline", "on").build(); - } - - @Override - protected Settings externalNodeSettings(int nodeOrdinal) { - //enable scripting on the external nodes using the proper setting depending on the bwc version - ImmutableSettings.Builder builder = ImmutableSettings.builder().put(super.externalNodeSettings(nodeOrdinal)); - if (compatibilityVersion().before(Version.V_1_6_0)) { - builder.put(ScriptService.DISABLE_DYNAMIC_SCRIPTING_SETTING, false); - } else { - builder.put("script.inline", "on"); - } - return builder.build(); + protected Settings commonNodeSettings(int nodeOrdinal) { + return ImmutableSettings.builder().put(super.commonNodeSettings(nodeOrdinal)) + .put("script.inline", "on").build(); } private void checkFunctionScoreStillWorks(String... ids) throws ExecutionException, InterruptedException, IOException {