OpenSearch/qa/os/bats/utils/xpack.bash
Ryan Ernst 4af6d86c01
Rename vagrant project to os (#45509) (#45530)
The system level tests for our distributions have historically be run in
vagrant, and thus the name of the gradle project has been "vagrant".
However, as we move to running these tests in other environments (eg
GCP) the name vagrant no longer makes sense. This commit renames the
project to "os" (short for operating system), since these tests ensure
all of our distributions run correctly on our supported operating
systems.
2019-08-14 10:30:41 -07:00

101 lines
3.1 KiB
Bash

#!/bin/bash
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.
# Checks that X-Pack files are correctly installed
verify_xpack_installation() {
local name="x-pack"
local user="$ESPLUGIN_COMMAND_USER"
local group="$ESPLUGIN_COMMAND_USER"
# Verify binary files
# nocommit: already verified by "main" package verification
#assert_file "$ESHOME/bin" d $user $group 755
local binaryFiles=(
'elasticsearch-certgen'
'elasticsearch-certutil'
'elasticsearch-croneval'
'elasticsearch-migrate'
'elasticsearch-saml-metadata'
'elasticsearch-setup-passwords'
'elasticsearch-sql-cli'
"elasticsearch-sql-cli-$(cat version).jar" # This jar is executable so we pitch it in bin so folks will find it
'elasticsearch-syskeygen'
'elasticsearch-users'
'x-pack-env'
'x-pack-security-env'
'x-pack-watcher-env'
)
local binaryFilesCount=5 # start with oss distro number
for binaryFile in ${binaryFiles[@]}; do
echo "checking for bin file ${binaryFile}"
assert_file "$ESHOME/bin/${binaryFile}" f $user $group 755
binaryFilesCount=$(( binaryFilesCount + 1 ))
done
ls "$ESHOME/bin/"
# nocommit: decide whether to check the files added by the distribution, not part of xpack...
#assert_number_of_files "$ESHOME/bin/" $binaryFilesCount
# Verify config files
# nocommit: already verified by "main" package verification
#assert_file "$ESCONFIG" d $user elasticsearch 755
local configFiles=(
'users'
'users_roles'
'roles.yml'
'role_mapping.yml'
'log4j2.properties'
)
local configFilesCount=2 # start with ES files, excluding log4j2
for configFile in ${configFiles[@]}; do
assert_file "$ESCONFIG/${configFile}" f $user elasticsearch 660
configFilesCount=$(( configFilesCount + 1 ))
done
# nocommit: decide whether to check the files added by the distribution, not part of xpack...
#assert_number_of_files "$ESCONFIG/" $configFilesCount
}
assert_number_of_files() {
local directory=$1
local expected=$2
local count=$(ls "$directory" | wc -l)
[ "$count" -eq "$expected" ] || {
echo "Expected $expected files in $directory but found: $count"
false
}
}
generate_trial_license() {
sudo -E -u $ESPLUGIN_COMMAND_USER sh <<"NODE_SETTINGS"
cat >> $ESCONFIG/elasticsearch.yml <<- EOF
xpack.license.self_generated.type: trial
xpack.security.enabled: true
EOF
NODE_SETTINGS
}
wait_for_xpack() {
local host=${1:-localhost}
local port=${2:-9200}
local listening=1
for i in {1..60}; do
if test_port "$host" "$port"; then
listening=0
break
else
sleep 1
fi
done
[ "$listening" -eq 0 ] || {
echo "Looks like elasticsearch with x-pack never started."
debug_collect_logs
false
}
}