add mandatory plugins support in conf
This commit is contained in:
parent
bf36681e34
commit
017f48a187
|
@ -82,11 +82,11 @@
|
|||
#
|
||||
# node.rack: rack314
|
||||
|
||||
|
||||
# By default, multiple nodes are allowed to start from the same installation location
|
||||
# to disable it, set the following:
|
||||
# node.max_local_storage_nodes: 1
|
||||
|
||||
|
||||
#################################### Index ####################################
|
||||
|
||||
# You can set a number of options (such as shard/replica options, mapping
|
||||
|
@ -165,6 +165,13 @@
|
|||
# path.plugins: /path/to/plugins
|
||||
|
||||
|
||||
#################################### Plugin ###################################
|
||||
|
||||
# If a plugin listed here is not installed for current node, the node will not start.
|
||||
#
|
||||
# plugin.mandatory: mapper-attachments,lang-groovy
|
||||
|
||||
|
||||
################################### Memory ####################################
|
||||
|
||||
# ElasticSearch performs poorly when JVM starts swapping: you should ensure that
|
||||
|
|
|
@ -74,8 +74,22 @@ public class PluginsService extends AbstractComponent {
|
|||
// first, find all the ones that are in the classpath
|
||||
Map<String, Plugin> plugins = Maps.newHashMap();
|
||||
plugins.putAll(loadPluginsFromClasspath(settings));
|
||||
Set<String> sitePlugins = sitePlugins();
|
||||
|
||||
logger.info("loaded {}, sites {}", plugins.keySet(), sitePlugins());
|
||||
String[] mandatoryPlugins = settings.getAsArray("plugin.mandatory", null);
|
||||
if (mandatoryPlugins != null) {
|
||||
Set<String> missingPlugins = Sets.newHashSet();
|
||||
for (String mandatoryPlugin : mandatoryPlugins) {
|
||||
if (!plugins.containsKey(mandatoryPlugin) && !sitePlugins.contains(mandatoryPlugin) && !missingPlugins.contains(mandatoryPlugin)) {
|
||||
missingPlugins.add(mandatoryPlugin);
|
||||
}
|
||||
}
|
||||
if (!missingPlugins.isEmpty()) {
|
||||
throw new ElasticSearchException("Missing mandatory plugins " + missingPlugins);
|
||||
}
|
||||
}
|
||||
|
||||
logger.info("loaded {}, sites {}", plugins.keySet(), sitePlugins);
|
||||
|
||||
this.plugins = ImmutableMap.copyOf(plugins);
|
||||
|
||||
|
|
Loading…
Reference in New Issue