Remove custom plugins path

This commit removes the ability to specify a custom plugins
path. Instead, the plugins path will always be a subdirectory called
"plugins" off of the home directory.
This commit is contained in:
Jason Tedor 2016-05-26 09:37:51 -04:00
parent 0f529e10a8
commit d29844e597
14 changed files with 8 additions and 52 deletions

View File

@ -244,7 +244,7 @@ final class Security {
addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.binFile(), "read,readlink"); addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.binFile(), "read,readlink");
addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.libFile(), "read,readlink"); addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.libFile(), "read,readlink");
addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.modulesFile(), "read,readlink"); addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.modulesFile(), "read,readlink");
addPath(policy, Environment.PATH_PLUGINS_SETTING.getKey(), environment.pluginsFile(), "read,readlink"); addPath(policy, Environment.PATH_HOME_SETTING.getKey(), environment.pluginsFile(), "read,readlink");
addPath(policy, Environment.PATH_CONF_SETTING.getKey(), environment.configFile(), "read,readlink"); addPath(policy, Environment.PATH_CONF_SETTING.getKey(), environment.configFile(), "read,readlink");
addPath(policy, Environment.PATH_SCRIPTS_SETTING.getKey(), environment.scriptsFile(), "read,readlink"); addPath(policy, Environment.PATH_SCRIPTS_SETTING.getKey(), environment.scriptsFile(), "read,readlink");
// read-write dirs // read-write dirs

View File

@ -332,7 +332,6 @@ public final class ClusterSettings extends AbstractScopedSettings {
Environment.PATH_DATA_SETTING, Environment.PATH_DATA_SETTING,
Environment.PATH_HOME_SETTING, Environment.PATH_HOME_SETTING,
Environment.PATH_LOGS_SETTING, Environment.PATH_LOGS_SETTING,
Environment.PATH_PLUGINS_SETTING,
Environment.PATH_REPO_SETTING, Environment.PATH_REPO_SETTING,
Environment.PATH_SCRIPTS_SETTING, Environment.PATH_SCRIPTS_SETTING,
Environment.PATH_SHARED_DATA_SETTING, Environment.PATH_SHARED_DATA_SETTING,

View File

@ -53,7 +53,6 @@ public class Environment {
public static final Setting<List<String>> PATH_DATA_SETTING = public static final Setting<List<String>> PATH_DATA_SETTING =
Setting.listSetting("path.data", Collections.emptyList(), Function.identity(), Property.NodeScope); Setting.listSetting("path.data", Collections.emptyList(), Function.identity(), Property.NodeScope);
public static final Setting<String> PATH_LOGS_SETTING = Setting.simpleString("path.logs", Property.NodeScope); public static final Setting<String> PATH_LOGS_SETTING = Setting.simpleString("path.logs", Property.NodeScope);
public static final Setting<String> PATH_PLUGINS_SETTING = Setting.simpleString("path.plugins", Property.NodeScope);
public static final Setting<List<String>> PATH_REPO_SETTING = public static final Setting<List<String>> PATH_REPO_SETTING =
Setting.listSetting("path.repo", Collections.emptyList(), Function.identity(), Property.NodeScope); Setting.listSetting("path.repo", Collections.emptyList(), Function.identity(), Property.NodeScope);
public static final Setting<String> PATH_SHARED_DATA_SETTING = Setting.simpleString("path.shared_data", Property.NodeScope); public static final Setting<String> PATH_SHARED_DATA_SETTING = Setting.simpleString("path.shared_data", Property.NodeScope);
@ -128,11 +127,7 @@ public class Environment {
scriptsFile = configFile.resolve("scripts"); scriptsFile = configFile.resolve("scripts");
} }
if (PATH_PLUGINS_SETTING.exists(settings)) {
pluginsFile = PathUtils.get(cleanPath(PATH_PLUGINS_SETTING.get(settings)));
} else {
pluginsFile = homeFile.resolve("plugins"); pluginsFile = homeFile.resolve("plugins");
}
List<String> dataPaths = PATH_DATA_SETTING.get(settings); List<String> dataPaths = PATH_DATA_SETTING.get(settings);
if (dataPaths.isEmpty() == false) { if (dataPaths.isEmpty() == false) {

View File

@ -220,9 +220,6 @@ public class TribeService extends AbstractLifecycleComponent<TribeService> {
if (Environment.PATH_CONF_SETTING.exists(globalSettings)) { if (Environment.PATH_CONF_SETTING.exists(globalSettings)) {
sb.put(Environment.PATH_CONF_SETTING.getKey(), Environment.PATH_CONF_SETTING.get(globalSettings)); sb.put(Environment.PATH_CONF_SETTING.getKey(), Environment.PATH_CONF_SETTING.get(globalSettings));
} }
if (Environment.PATH_PLUGINS_SETTING.exists(globalSettings)) {
sb.put(Environment.PATH_PLUGINS_SETTING.getKey(), Environment.PATH_PLUGINS_SETTING.get(globalSettings));
}
if (Environment.PATH_LOGS_SETTING.exists(globalSettings)) { if (Environment.PATH_LOGS_SETTING.exists(globalSettings)) {
sb.put(Environment.PATH_LOGS_SETTING.getKey(), Environment.PATH_LOGS_SETTING.get(globalSettings)); sb.put(Environment.PATH_LOGS_SETTING.getKey(), Environment.PATH_LOGS_SETTING.get(globalSettings));
} }

View File

@ -43,13 +43,11 @@ public class TribeServiceTests extends ESTestCase {
.put("node.name", "nodename") .put("node.name", "nodename")
.put("path.home", "some/path") .put("path.home", "some/path")
.put("path.conf", "conf/path") .put("path.conf", "conf/path")
.put("path.plugins", "plugins/path")
.put("path.scripts", "scripts/path") .put("path.scripts", "scripts/path")
.put("path.logs", "logs/path").build(); .put("path.logs", "logs/path").build();
Settings clientSettings = TribeService.buildClientSettings("tribe1", globalSettings, Settings.EMPTY); Settings clientSettings = TribeService.buildClientSettings("tribe1", globalSettings, Settings.EMPTY);
assertEquals("some/path", clientSettings.get("path.home")); assertEquals("some/path", clientSettings.get("path.home"));
assertEquals("conf/path", clientSettings.get("path.conf")); assertEquals("conf/path", clientSettings.get("path.conf"));
assertEquals("plugins/path", clientSettings.get("path.plugins"));
assertEquals("scripts/path", clientSettings.get("path.scripts")); assertEquals("scripts/path", clientSettings.get("path.scripts"));
assertEquals("logs/path", clientSettings.get("path.logs")); assertEquals("logs/path", clientSettings.get("path.logs"));

View File

@ -180,18 +180,7 @@ set ES_JAVA_OPTS="-DproxyHost=host_name -DproxyPort=port_number"
bin/elasticsearch-plugin install analysis-icu bin/elasticsearch-plugin install analysis-icu
----------------------------------- -----------------------------------
=== Settings related to plugins === Plugins directory
[float]
=== Custom plugins directory
The `plugins` directory can be changed from the default by adding the
following to the `elasticsearch.yml` config file:
[source,yml]
---------------------
path.plugins: /path/to/custom/plugins/dir
---------------------
The default location of the `plugins` directory depends on which package you install: The default location of the `plugins` directory depends on which package you install:

View File

@ -112,3 +112,8 @@ Previously, Java system properties could be passed to the plugin
command by passing `-D` style arguments directly to the plugin script. command by passing `-D` style arguments directly to the plugin script.
This is no longer permitted and such system properties must be passed This is no longer permitted and such system properties must be passed
via ES_JAVA_OPTS. via ES_JAVA_OPTS.
==== Custom plugins path
The ability to specify a custom plugins path via `path.plugins` has
been removed.

View File

@ -87,7 +87,6 @@ configuration options are passed down from the tribe node to each node client:
* `transport.publish_host` * `transport.publish_host`
* `path.home` * `path.home`
* `path.conf` * `path.conf`
* `path.plugins`
* `path.logs` * `path.logs`
* `path.scripts` * `path.scripts`
* `shield.*` * `shield.*`

View File

@ -174,7 +174,6 @@ locations for a Debian-based system:
| plugins | plugins
| Plugin files location. Each plugin will be contained in a subdirectory. | Plugin files location. Each plugin will be contained in a subdirectory.
| /usr/share/elasticsearch/plugins | /usr/share/elasticsearch/plugins
| path.plugins
| repo | repo
| Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here. | Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

View File

@ -160,7 +160,6 @@ locations for an RPM-based system:
| plugins | plugins
| Plugin files location. Each plugin will be contained in a subdirectory. | Plugin files location. Each plugin will be contained in a subdirectory.
| /usr/share/elasticsearch/plugins | /usr/share/elasticsearch/plugins
| path.plugins
| repo | repo
| Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here. | Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

View File

@ -228,7 +228,6 @@ directory so that you do not delete important data later on.
| plugins | plugins
| Plugin files location. Each plugin will be contained in a subdirectory. | Plugin files location. Each plugin will be contained in a subdirectory.
| %ES_HOME%\plugins | %ES_HOME%\plugins
| path.plugins
| repo | repo
| Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here. | Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

View File

@ -147,7 +147,6 @@ directory so that you do not delete important data later on.
| plugins | plugins
| Plugin files location. Each plugin will be contained in a subdirectory. | Plugin files location. Each plugin will be contained in a subdirectory.
| $ES_HOME/plugins | $ES_HOME/plugins
| path.plugins
| repo | repo
| Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here. | Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

View File

@ -77,7 +77,6 @@ public class EvilSecurityTests extends ESTestCase {
settingsBuilder.put(Environment.PATH_HOME_SETTING.getKey(), esHome.resolve("home").toString()); settingsBuilder.put(Environment.PATH_HOME_SETTING.getKey(), esHome.resolve("home").toString());
settingsBuilder.put(Environment.PATH_CONF_SETTING.getKey(), esHome.resolve("conf").toString()); settingsBuilder.put(Environment.PATH_CONF_SETTING.getKey(), esHome.resolve("conf").toString());
settingsBuilder.put(Environment.PATH_SCRIPTS_SETTING.getKey(), esHome.resolve("scripts").toString()); settingsBuilder.put(Environment.PATH_SCRIPTS_SETTING.getKey(), esHome.resolve("scripts").toString());
settingsBuilder.put(Environment.PATH_PLUGINS_SETTING.getKey(), esHome.resolve("plugins").toString());
settingsBuilder.putArray(Environment.PATH_DATA_SETTING.getKey(), esHome.resolve("data1").toString(), esHome.resolve("data2").toString()); settingsBuilder.putArray(Environment.PATH_DATA_SETTING.getKey(), esHome.resolve("data1").toString(), esHome.resolve("data2").toString());
settingsBuilder.put(Environment.PATH_SHARED_DATA_SETTING.getKey(), esHome.resolve("custom").toString()); settingsBuilder.put(Environment.PATH_SHARED_DATA_SETTING.getKey(), esHome.resolve("custom").toString());
settingsBuilder.put(Environment.PATH_LOGS_SETTING.getKey(), esHome.resolve("logs").toString()); settingsBuilder.put(Environment.PATH_LOGS_SETTING.getKey(), esHome.resolve("logs").toString());

View File

@ -113,27 +113,6 @@ fi
fi fi
} }
@test "[$GROUP] install jvm-example plugin with a custom path.plugins" {
# Clean up after the last time this test was run
rm -rf /tmp/plugins.*
local oldPlugins="$ESPLUGINS"
export ESPLUGINS=$(mktemp -d -t 'plugins.XXXX')
# Modify the path.plugins setting in configuration file
echo "path.plugins: $ESPLUGINS" >> "$ESCONFIG/elasticsearch.yml"
chown -R elasticsearch:elasticsearch "$ESPLUGINS"
install_jvm_example
start_elasticsearch_service
# check that configuration was actually picked up
curl -s localhost:9200/_cat/configured_example | sed 's/ *$//' > /tmp/installed
echo "foo" > /tmp/expected
diff /tmp/installed /tmp/expected
stop_elasticsearch_service
remove_jvm_example
}
@test "[$GROUP] install jvm-example plugin with a custom CONFIG_DIR" { @test "[$GROUP] install jvm-example plugin with a custom CONFIG_DIR" {
# Clean up after the last time we ran this test # Clean up after the last time we ran this test
rm -rf /tmp/config.* rm -rf /tmp/config.*