mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
f732900111
In #9474, we exported the hostname in the bin/elasticsearch scripts so that it could be used as a variable in the elasticsearch.yml file but did not do the same for plugin manager. When using the hostname variable in elasticsearch.yml and trying to use the plugin manager, initialization will fail because the property could not be resolved. This change will allow the hostname to be resolved in the same manner as the service scripts. Closes #10902
109 lines
2.5 KiB
Bash
Executable File
109 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
CDPATH=""
|
|
SCRIPT="$0"
|
|
|
|
# SCRIPT may be an arbitrarily deep series of symlinks. Loop until we have the concrete path.
|
|
while [ -h "$SCRIPT" ] ; do
|
|
ls=`ls -ld "$SCRIPT"`
|
|
# Drop everything prior to ->
|
|
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
if expr "$link" : '/.*' > /dev/null; then
|
|
SCRIPT="$link"
|
|
else
|
|
SCRIPT=`dirname "$SCRIPT"`/"$link"
|
|
fi
|
|
done
|
|
|
|
# determine elasticsearch home
|
|
ES_HOME=`dirname "$SCRIPT"`/..
|
|
|
|
# make ELASTICSEARCH_HOME absolute
|
|
ES_HOME=`cd "$ES_HOME"; pwd`
|
|
|
|
# Sets the default values for elasticsearch variables used in this script
|
|
if [ -z "$CONF_DIR" ]; then
|
|
CONF_DIR="${packaging.plugin.default.config.dir}"
|
|
|
|
if [ -z "$CONF_FILE" ]; then
|
|
CONF_FILE="$CONF_DIR/elasticsearch.yml"
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$CONF_FILE" ]; then
|
|
CONF_FILE="${packaging.plugin.default.config.file}"
|
|
fi
|
|
|
|
# The default env file is defined at building/packaging time.
|
|
# For a ${packaging.type} package, the value is "${packaging.env.file}".
|
|
ES_ENV_FILE="${packaging.env.file}"
|
|
|
|
# If an include is specified with the ES_INCLUDE environment variable, use it
|
|
if [ -n "$ES_INCLUDE" ]; then
|
|
ES_ENV_FILE="$ES_INCLUDE"
|
|
fi
|
|
|
|
# Source the environment file
|
|
if [ -n "$ES_ENV_FILE" ]; then
|
|
|
|
# If the ES_ENV_FILE is not found, try to resolve the path
|
|
# against the ES_HOME directory
|
|
if [ ! -f "$ES_ENV_FILE" ]; then
|
|
ES_ENV_FILE="$ELASTIC_HOME/$ES_ENV_FILE"
|
|
fi
|
|
|
|
. "$ES_ENV_FILE"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Unable to source environment file: $ES_ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ -x "$JAVA_HOME/bin/java" ]; then
|
|
JAVA=$JAVA_HOME/bin/java
|
|
else
|
|
JAVA=`which java`
|
|
fi
|
|
|
|
# real getopt cannot be used because we need to hand options over to the PluginManager
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
-D*=*)
|
|
properties="$properties $1"
|
|
;;
|
|
-D*)
|
|
var=$1
|
|
shift
|
|
properties="$properties $var=$1"
|
|
;;
|
|
*)
|
|
args="$args $1"
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# check if properties already has a config file or config dir
|
|
if [ -e "$CONF_DIR" ]; then
|
|
case "$properties" in
|
|
*-Des.default.path.conf=*|*-Des.path.conf=*)
|
|
;;
|
|
*)
|
|
properties="$properties -Des.default.path.conf=$CONF_DIR"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ -e "$CONF_FILE" ]; then
|
|
case "$properties" in
|
|
*-Des.default.config=*|*-Des.config=*)
|
|
;;
|
|
*)
|
|
properties="$properties -Des.default.config=$CONF_FILE"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
export HOSTNAME=`hostname -s`
|
|
|
|
exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_HOME/lib/*" org.elasticsearch.plugins.PluginManager $args
|