Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace most shell script logic with Java #85758

Merged
merged 193 commits into from
May 19, 2022
Merged
Show file tree
Hide file tree
Changes from 187 commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
917ee1e
stash
rjernst Mar 31, 2022
3a0a7e2
Merge branch 'master' into launcher
rjernst Apr 1, 2022
5ea8dbc
cleanup
rjernst Apr 1, 2022
2bf16e1
plugin cli sort of works, invoked through cli tool manually
rjernst Apr 2, 2022
3500ef7
plugin cli done (on nix)
rjernst Apr 2, 2022
42f1bde
certutil converted
rjernst Apr 2, 2022
483577f
use exec
rjernst Apr 4, 2022
b49edb4
use exec in certutil, remove <java17 checks
rjernst Apr 4, 2022
abefb36
move java version checking, use source instead of exec
rjernst Apr 4, 2022
e11e6a3
Fix version checker
rjernst Apr 4, 2022
2ba7d99
convert geoip cli
rjernst Apr 4, 2022
b3dc890
convert keystore cli
rjernst Apr 4, 2022
eeff485
introspect toolname
rjernst Apr 4, 2022
160bbcf
convert node and shard clis
rjernst Apr 4, 2022
eab9724
convert most security tools
rjernst Apr 4, 2022
271096f
convert croneval
rjernst Apr 4, 2022
e0fb885
use es-env script again, so sql-cli can still use it
rjernst Apr 4, 2022
fdc695f
fix reconfigure tool
rjernst Apr 4, 2022
64c65c6
convert postinst
rjernst Apr 4, 2022
9129265
Update windows scripts to use launcher tool
williamrandolph Apr 5, 2022
92e0247
Convert croneval.bat
williamrandolph Apr 5, 2022
9292c78
Set config directory in elasticsearch-cli.bat
williamrandolph Apr 5, 2022
3571c35
create server cli provider, move launcher stuff to it
rjernst Apr 5, 2022
fa15e1e
Use elasticsearch-env.bat in elasticsearch-cli.bat and in sql cli
williamrandolph Apr 5, 2022
4c6f9e8
Don't hardcode tool names for windows batch
williamrandolph Apr 5, 2022
c76c8b7
Just get the filename
williamrandolph Apr 5, 2022
ab73844
Merge branch 'launcher' into launcher-wrb
williamrandolph Apr 5, 2022
8ba04d0
more server cleanup, simplified logging init for clis
rjernst Apr 5, 2022
4af0543
remove old main methods
rjernst Apr 5, 2022
e0b0b57
remove beforeMain hook
rjernst Apr 5, 2022
8081db1
Call launcher in elasticsearch.bat
williamrandolph Apr 5, 2022
eea56b7
Merge branch 'launcher-wrb' into launcher
williamrandolph Apr 5, 2022
43ab03f
Stub for windows service cli tool
williamrandolph Apr 6, 2022
7401099
server sort of works, it starts!
rjernst Apr 6, 2022
38b518d
remove old files
rjernst Apr 6, 2022
ccd695b
Merge branch 'launcher' into launcher-windows-service
williamrandolph Apr 6, 2022
d49e11b
daemonization works
rjernst Apr 7, 2022
d026aa7
some cleanup
rjernst Apr 7, 2022
aae9eb4
pass -E through to autoconfigurenode
rjernst Apr 7, 2022
25de46e
Merge branch 'launcher-windows-service' into launcher
williamrandolph Apr 7, 2022
444f6d4
add comment
rjernst Apr 7, 2022
82cf495
windows service cli
rjernst Apr 7, 2022
dc9764a
windows service fixes
rjernst Apr 7, 2022
dbe21c4
more windows service fixes
rjernst Apr 7, 2022
4b0d62b
and the toolprovider filename too
rjernst Apr 7, 2022
76c32d5
remove old
rjernst Apr 7, 2022
f092e88
Merge branch 'master' into launcher
rjernst Apr 8, 2022
9b3d6c9
Merge branch 'master' into launcher
rjernst Apr 19, 2022
e28acc6
spotless
rjernst Apr 19, 2022
914d08a
remove old launcher
rjernst Apr 19, 2022
0fdb858
fix windows service
rjernst Apr 19, 2022
603c2f0
cleanup
rjernst Apr 20, 2022
6060da4
move tests
rjernst Apr 20, 2022
b8e5422
Merge branch 'master' into launcher
rjernst Apr 25, 2022
8f71d35
fix scripts to use correct env var
rjernst Apr 25, 2022
b8084b1
Merge branch 'master' into launcher
rjernst Apr 28, 2022
fcde65f
cleanups
rjernst Apr 28, 2022
468569f
use quiet flag
rjernst Apr 28, 2022
5551b3d
cleanup project config
rjernst Apr 28, 2022
4ca5bbd
remove direct dep on cli since it is still part of server
rjernst Apr 28, 2022
81fa06d
simplify checked exceptions
rjernst Apr 28, 2022
ee8d205
imports
rjernst Apr 28, 2022
620b492
Merge branch 'master' into launcher
rjernst Apr 28, 2022
55a0865
abstract start
rjernst Apr 28, 2022
0503dea
Merge branch 'master' into launcher
rjernst Apr 29, 2022
1a5e7b5
Merge branch 'master' into launcher
rjernst Apr 29, 2022
9ac647e
trying to improve tests...
rjernst Apr 29, 2022
f836b17
Make env aware CLI command publicly runnable
rjernst Apr 29, 2022
2113ecf
spotless
rjernst Apr 29, 2022
1bd19e8
Merge branch 'cli/env_aware_access' into launcher
rjernst Apr 29, 2022
8027ce4
get some tests working
rjernst Apr 30, 2022
44eea73
remove zip source import, doesn't work for integ-test-zip
rjernst Apr 30, 2022
edf9d82
pass keystore password through
rjernst Apr 30, 2022
76d6a4a
fix javadoc
rjernst Apr 30, 2022
b6a1382
fix forbidden
rjernst Apr 30, 2022
7a3f0dc
spotless
rjernst Apr 30, 2022
71f37e3
attempt windows fix for classpath
rjernst Apr 30, 2022
aac4d1a
add assertion, somehow cursor is empty
rjernst Apr 30, 2022
d025984
Merge branch 'master' into launcher
rjernst Apr 30, 2022
b894afb
fix docker process lookup
rjernst Apr 30, 2022
bc64782
defensive cursor
rjernst Apr 30, 2022
9624c26
copy old comment
rjernst Apr 30, 2022
b9e4d9f
add check on enrollment token repeats
rjernst May 1, 2022
228d167
move empty enrollemnt token test
rjernst May 1, 2022
3e36905
spotless
rjernst May 1, 2022
cb9b7f9
cleanup
rjernst May 1, 2022
7d92af7
remove old exit method
rjernst May 1, 2022
22bf949
change back to private parser option
rjernst May 1, 2022
7b97d7e
undo whitespace change
rjernst May 1, 2022
437b34c
add debugging for keystore tests
rjernst May 2, 2022
9777549
add back exit, for now
rjernst May 2, 2022
569c1f3
allow child process in systemd to send notify
rjernst May 2, 2022
ea5696c
add comment
rjernst May 2, 2022
5e2da7e
try different notify access
rjernst May 2, 2022
1bbd4ea
add error debug
rjernst May 2, 2022
686905c
add auto config tests
rjernst May 2, 2022
023a5ad
fix keystore password reading
rjernst May 2, 2022
386841e
simplify password passing to auto config
rjernst May 2, 2022
94d2cee
use separate thread for pump
rjernst May 2, 2022
7dcfcc3
improve tests
rjernst May 2, 2022
737b9f5
spotless
rjernst May 2, 2022
a81b960
spotless again
rjernst May 2, 2022
5d5c669
improve debug
rjernst May 2, 2022
c5f4576
more debug
rjernst May 2, 2022
fe2502e
implement close for server cli to propagate shutdown signal
rjernst May 3, 2022
fdbdbb1
wait for subprocess to die
rjernst May 3, 2022
23272b8
attempt to send main pid back to systemd
rjernst May 3, 2022
d5f315b
fix server cli to not kill subprocess when daemonized
rjernst May 3, 2022
33699c6
Merge branch 'master' into launcher
rjernst May 3, 2022
9da910b
implement fake pid
rjernst May 3, 2022
889e8bb
add debugging for auto config errors
rjernst May 3, 2022
1bbcf34
more debug for windows
rjernst May 3, 2022
189d632
improve stderr flush
rjernst May 3, 2022
4087595
fix unit tests
rjernst May 3, 2022
60e6840
improve windows cli
rjernst May 3, 2022
0d375ca
fix env vars to server script
rjernst May 3, 2022
7b20225
fix passthrough of enrollment token to auto config
rjernst May 3, 2022
38f716e
fix windows service provider
rjernst May 3, 2022
04091e4
fix test name
rjernst May 3, 2022
bda6dca
Merge branch 'master' into launcher
rjernst May 4, 2022
8e088ca
remove display name from assertions
rjernst May 4, 2022
8b1258a
tweak windows service test failure expectation
rjernst May 4, 2022
937b0a8
add packaging test debug
rjernst May 4, 2022
38d4712
more debugging for package tests
rjernst May 4, 2022
25b9a40
another windows test
rjernst May 4, 2022
242e111
spotless
rjernst May 4, 2022
ce91516
more packaging test debug
rjernst May 4, 2022
67cb0d9
pass verbosity through to keystore terminal
rjernst May 4, 2022
89539b2
attempting better windows service logs
rjernst May 4, 2022
b31e532
pass tool info as sysprops, not env for windows service
rjernst May 4, 2022
4953f1e
more debug for packaging tests
rjernst May 4, 2022
20e2dc2
spotless
rjernst May 4, 2022
77ca898
Merge branch 'master' into launcher
rjernst May 4, 2022
74634be
cleanup debug logging
rjernst May 4, 2022
584da86
try leaving server cli as main process with systemd
rjernst May 4, 2022
a56f5fe
add debug for windows service
rjernst May 4, 2022
39d13e6
add stop mode for windows service
rjernst May 4, 2022
5614994
log more when cleanup fails
rjernst May 4, 2022
6451adf
put command in the static, doh!
rjernst May 5, 2022
0a97715
rework rework service cli command passing
rjernst May 5, 2022
7069fcc
spotless
rjernst May 5, 2022
46306e6
more windows debugging
rjernst May 5, 2022
3e776f8
add systemd comment
rjernst May 5, 2022
0f83215
remove systemd changes
rjernst May 5, 2022
c60196e
Merge branch 'master' into launcher
rjernst May 5, 2022
55552ab
pass hostname through to windows service
rjernst May 5, 2022
f888299
Merge branch 'master' into launcher
rjernst May 6, 2022
fbeea85
fix compile
rjernst May 6, 2022
77745ae
daemonize in the windows service
rjernst May 6, 2022
7fdbeb3
don't pass quiet to windows service since we are now daemonizing
rjernst May 6, 2022
ae5457f
dump service logs on move failure
rjernst May 6, 2022
d6ad750
don't clear process handle for windows
rjernst May 6, 2022
142a94e
move logic into ServerProcess, very broken right now
rjernst May 6, 2022
dc87ec7
use sysprop to avoid waiting when starting windows service
rjernst May 7, 2022
f481470
Merge branch 'launcher_refactor' into launcher
rjernst May 9, 2022
b334d5c
don't wait for stderr to close, jvm bug?
rjernst May 9, 2022
ae31299
spotless
rjernst May 9, 2022
a1018a5
Merge branch 'master' into launcher
rjernst May 10, 2022
8b89c2e
fix bugs and add debugging
rjernst May 10, 2022
ed2cd51
exit pump early
rjernst May 10, 2022
4bc1697
fix compile
rjernst May 10, 2022
6a9c1af
copy bundled jdk instead of moving it
rjernst May 10, 2022
2ca3bee
remove manager test, won't work with new clis
rjernst May 10, 2022
27ba962
more debugging
rjernst May 10, 2022
5f84788
more windows debugging
rjernst May 10, 2022
98914a5
Merge branch 'master' into launcher
rjernst May 10, 2022
5b7da1b
better large file error matching
rjernst May 10, 2022
3870922
are these all nulls??
rjernst May 11, 2022
18ebfeb
cleaner debug string
rjernst May 11, 2022
4c4172d
Merge branch 'master' into launcher
rjernst May 13, 2022
a3dc55b
simpler read file again
rjernst May 13, 2022
db1f04f
let stderr pump fully drain
rjernst May 13, 2022
e4d7d4e
rework and document
rjernst May 16, 2022
0953a70
Merge branch 'master' into launcher
rjernst May 16, 2022
8289fc9
more javadocs
rjernst May 16, 2022
c6c0da5
more javadocs
rjernst May 16, 2022
4aa2953
spotless
rjernst May 16, 2022
efabb33
forbidden
rjernst May 16, 2022
5f617c3
Merge branch 'master' into launcher
rjernst May 16, 2022
cf0fe87
windows service tests
rjernst May 17, 2022
0eb87f2
tests done
rjernst May 18, 2022
3695181
revert large file handling
rjernst May 18, 2022
eb269c9
Merge branch 'master' into launcher
rjernst May 18, 2022
fa29cd9
fix command tests
rjernst May 18, 2022
1c1c7c9
fix naming of windows service daemon
rjernst May 18, 2022
48363b5
fix detach state
rjernst May 18, 2022
358447a
spotless
rjernst May 18, 2022
48b55a7
add enrollment token test
rjernst May 18, 2022
3234bd4
guard against exceptional read errors
rjernst May 18, 2022
ce2a433
protect from unexpected exception in error pump
rjernst May 18, 2022
83083e2
improve javadocs
rjernst May 18, 2022
79ba71e
Merge branch 'master' into launcher
rjernst May 18, 2022
a7f9442
tweak for running test on windows
rjernst May 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions distribution/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
* Properties to expand when copying packaging files *
*****************************************************************************/
configurations {
['libs', 'libsVersionChecker', 'libsCliLauncher', 'libsServerCli', 'libsPluginCli', 'libsKeystoreCli', 'libsSecurityCli', 'libsGeoIpCli', 'libsAnsiConsole'].each {
['libs', 'libsVersionChecker', 'libsCliLauncher', 'libsServerCli', 'libsWindowsServiceCli', 'libsPluginCli', 'libsKeystoreCli', 'libsSecurityCli', 'libsGeoIpCli', 'libsAnsiConsole'].each {
create(it) {
canBeConsumed = false
canBeResolved = true
Expand All @@ -253,6 +253,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
libsVersionChecker project(':distribution:tools:java-version-checker')
libsCliLauncher project(':distribution:tools:cli-launcher')
libsServerCli project(':distribution:tools:server-cli')
libsWindowsServiceCli project(':distribution:tools:windows-service-cli')
libsAnsiConsole project(':distribution:tools:ansi-console')
libsPluginCli project(':distribution:tools:plugin-cli')
libsKeystoreCli project(path: ':distribution:tools:keystore-cli')
Expand All @@ -278,6 +279,9 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
into('tools/server-cli') {
from(configurations.libsServerCli)
}
into('tools/windows-service-cli') {
from(configurations.libsWindowsServiceCli)
}
into('tools/geoip-cli') {
from(configurations.libsGeoIpCli)
}
Expand All @@ -295,7 +299,6 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
}
}


modulesFiles = { platform ->
copySpec {
eachFile {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ After=network-online.target

[Service]
Type=notify
# the elasticsearch process currently sends the notifications back to systemd
# and for some reason exec does not work (even though it is a child). We should change
# this notify access back to main (the default), see https://github.com/elastic/elasticsearch/issues/86475
NotifyAccess=all
RuntimeDirectory=elasticsearch
PrivateTmp=true
Environment=ES_HOME=/usr/share/elasticsearch
Expand Down
140 changes: 3 additions & 137 deletions distribution/src/bin/elasticsearch
Original file line number Diff line number Diff line change
@@ -1,139 +1,5 @@
#!/bin/bash

# CONTROLLING STARTUP:
#
# This script relies on a few environment variables to determine startup
# behavior, those variables are:
#
# ES_PATH_CONF -- Path to config directory
# ES_JAVA_OPTS -- External Java Opts on top of the defaults set
#
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Example
# values are "512m", and "10g".
#
# ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch

source "`dirname "$0"`"/elasticsearch-env

CHECK_KEYSTORE=true
ATTEMPT_SECURITY_AUTO_CONFIG=true
DAEMONIZE=false
ENROLL_TO_CLUSTER=false
# Store original arg array as we will be shifting through it below
ARG_LIST=("$@")

while [ $# -gt 0 ]; do
if [[ $1 == "--enrollment-token" ]]; then
if [ $ENROLL_TO_CLUSTER = true ]; then
echo "Multiple --enrollment-token parameters are not allowed" 1>&2
exit 1
fi
ENROLL_TO_CLUSTER=true
ATTEMPT_SECURITY_AUTO_CONFIG=false
ENROLLMENT_TOKEN="$2"
shift
elif [[ $1 == "-h" || $1 == "--help" || $1 == "-V" || $1 == "--version" ]]; then
CHECK_KEYSTORE=false
ATTEMPT_SECURITY_AUTO_CONFIG=false
elif [[ $1 == "-d" || $1 == "--daemonize" ]]; then
DAEMONIZE=true
fi
if [[ $# -gt 0 ]]; then
shift
fi
done

if [ -z "$ES_TMPDIR" ]; then
ES_TMPDIR=`"$JAVA" -cp "$SERVER_CLI_CLASSPATH" org.elasticsearch.server.cli.TempDirectory`
fi

if [ -z "$LIBFFI_TMPDIR" ]; then
LIBFFI_TMPDIR="$ES_TMPDIR"
export LIBFFI_TMPDIR
fi

# get keystore password before setting java options to avoid
# conflicting GC configurations for the keystore tools
unset KEYSTORE_PASSWORD
KEYSTORE_PASSWORD=
if [[ $CHECK_KEYSTORE = true ]] \
&& bin/elasticsearch-keystore has-passwd --silent
then
if ! read -s -r -p "Elasticsearch keystore password: " KEYSTORE_PASSWORD ; then
echo "Failed to read keystore password on console" 1>&2
exit 1
fi
fi

if [[ $ENROLL_TO_CLUSTER = true ]]; then
CLI_NAME="auto-configure-node" \
CLI_LIBS="modules/x-pack-core,modules/x-pack-security,lib/tools/security-cli" \
bin/elasticsearch-cli "${ARG_LIST[@]}" <<<"$KEYSTORE_PASSWORD"
elif [[ $ATTEMPT_SECURITY_AUTO_CONFIG = true ]]; then
# It is possible that an auto-conf failure prevents the node from starting, but this is only the exceptional case (exit code 1).
# Most likely an auto-conf failure will leave the configuration untouched (exit codes 73, 78 and 80), optionally printing a message
# if the error is uncommon or unexpected, but it should otherwise let the node to start as usual.
# It is passed in all the command line options in order to read the node settings ones (-E), while the other parameters are ignored
# (a small caveat is that it also inspects the -v option in order to provide more information on how auto config went)
if CLI_NAME="auto-configure-node" \
CLI_LIBS="modules/x-pack-core,modules/x-pack-security,lib/tools/security-cli" \
bin/elasticsearch-cli "${ARG_LIST[@]}" <<<"$KEYSTORE_PASSWORD"; then
:
else
retval=$?
# these exit codes cover the cases where auto-conf cannot run but the node should NOT be prevented from starting as usual
# eg the node is restarted, is already configured in an incompatible way, or the file system permissions do not allow it
if [[ $retval -ne 80 ]] && [[ $retval -ne 73 ]] && [[ $retval -ne 78 ]]; then
exit $retval
fi
fi
fi

# The JVM options parser produces the final JVM options to start Elasticsearch.
# It does this by incorporating JVM options in the following way:
# - first, system JVM options are applied (these are hardcoded options in the
# parser)
# - second, JVM options are read from jvm.options and jvm.options.d/*.options
# - third, JVM options from ES_JAVA_OPTS are applied
# - fourth, ergonomic JVM options are applied
ES_JAVA_OPTS=`export ES_TMPDIR; "$JAVA" -cp "$SERVER_CLI_CLASSPATH" -Des.distribution.type="$ES_DISTRIBUTION_TYPE" org.elasticsearch.server.cli.JvmOptionsParser "$ES_PATH_CONF" "$ES_HOME/plugins"`

# Remove enrollment related parameters before passing the arg list to Elasticsearch
for i in "${!ARG_LIST[@]}"; do
if [[ ${ARG_LIST[i]} = "--enrollment-token" || ${ARG_LIST[i]} = "$ENROLLMENT_TOKEN" ]]; then
unset 'ARG_LIST[i]'
fi
done

# manual parsing to find out, if process should be detached
if [[ $DAEMONIZE = false ]]; then
exec \
"$JAVA" \
$ES_JAVA_OPTS \
-Des.path.home="$ES_HOME" \
-Des.path.conf="$ES_PATH_CONF" \
-Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
-cp "$ES_CLASSPATH" \
org.elasticsearch.bootstrap.Elasticsearch \
"${ARG_LIST[@]}" <<<"$KEYSTORE_PASSWORD"
else
exec \
"$JAVA" \
$ES_JAVA_OPTS \
-Des.path.home="$ES_HOME" \
-Des.path.conf="$ES_PATH_CONF" \
-Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
-cp "$ES_CLASSPATH" \
org.elasticsearch.bootstrap.Elasticsearch \
"${ARG_LIST[@]}" \
<<<"$KEYSTORE_PASSWORD" &
retval=$?
pid=$!
[ $retval -eq 0 ] || exit $retval
if ! ps -p $pid > /dev/null ; then
exit 1
fi
exit 0
fi

exit $?
CLI_NAME=server
CLI_LIBS=lib/tools/server-cli
source "`dirname "$0"`"/elasticsearch-cli
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anticipating that the java process launch will be heavier on resources than the bash script, can we add an additional JVM command line option here to stop the JDK from using the optimizing compiler, i.e. -XX:TieredStopAtLevel=1. This will reduce both startup time, CPU and memory usage.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be for all CLIs or just server?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we were still launching Java processes before (JVM options parser, ergonomics, etc) so I don't think we've added any overhead here in terms of JVM startup, we've just consolidated some of that logic. I'd be surprised if there was any measurable change here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I was thinking about it. If most of our cli tools are generally short running we should use it by default.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I'll take it upon myself to get some data on CPU/memory while running without the optimizing compiler and maybe if it's beneficial to a great extent, I'll follow up with a PR.

4 changes: 0 additions & 4 deletions distribution/src/bin/elasticsearch-env
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,6 @@ while [ "`basename "$ES_HOME"`" != "bin" ]; do
done
ES_HOME=`dirname "$ES_HOME"`

# now set the classpath
ES_CLASSPATH="$ES_HOME/lib/*"
SERVER_CLI_CLASSPATH="$ES_CLASSPATH:$ES_HOME/lib/tools/server-cli/*"

# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; then
JAVA="$ES_JAVA_HOME/bin/java"
Expand Down
Loading