2018-12-12 11:38:09 +00:00
|
|
|
#!/bin/bash
|
2019-03-21 19:31:04 +00:00
|
|
|
# Note: Execute this file from the project root directory
|
2018-12-12 11:38:09 +00:00
|
|
|
|
|
|
|
# setup
|
|
|
|
rm -rf /var/tmp/beakerlib-*/
|
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
function setup_tests {
|
2019-06-02 17:47:02 +00:00
|
|
|
local share_dir=$1
|
|
|
|
local blueprints_dir=$2
|
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
# explicitly enable sshd for live-iso b/c it is disabled by default
|
|
|
|
# due to security concerns (no root password required)
|
2019-06-02 17:47:02 +00:00
|
|
|
sed -i.orig 's/^services.*/services --disabled="network" --enabled="NetworkManager,sshd"/' $share_dir/composer/live-iso.ks
|
2019-02-28 15:31:05 +00:00
|
|
|
# explicitly enable logging in with empty passwords via ssh, because
|
|
|
|
# the default sshd setting for PermitEmptyPasswords is 'no'; we need a little hack to do inplace
|
|
|
|
# substitution as awk on RHEL-7 doesn't provide '-i inplace' option
|
|
|
|
echo "$(awk "
|
|
|
|
/%post/ && FLAG != 2 {FLAG=1}
|
|
|
|
/%end/ && FLAG == 1 {print \"sed -i 's/.*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config\"; FLAG=2}
|
2019-06-02 17:47:02 +00:00
|
|
|
{print}" $share_dir/composer/live-iso.ks)" > $share_dir/composer/live-iso.ks
|
2019-04-08 09:00:41 +00:00
|
|
|
|
2019-06-05 13:16:19 +00:00
|
|
|
# do a backup of the original blueprints directory and get rid of the git
|
|
|
|
# directory (otherwise all of the initial changes in blueprints would have
|
|
|
|
# to be done using blueprints push)
|
|
|
|
cp -r $blueprints_dir ${blueprints_dir}.orig
|
|
|
|
rm -rf $blueprints_dir/git
|
|
|
|
|
2019-04-08 09:00:41 +00:00
|
|
|
# append a section with additional option on kernel command line to example-http-server blueprint
|
|
|
|
# which is used for building of most of the images
|
2019-06-02 17:47:02 +00:00
|
|
|
cat >> $blueprints_dir/example-http-server.toml << __EOF__
|
2019-04-08 09:00:41 +00:00
|
|
|
|
|
|
|
[customizations.kernel]
|
|
|
|
append = "custom_cmdline_arg"
|
|
|
|
__EOF__
|
2019-03-08 10:29:11 +00:00
|
|
|
}
|
2018-12-12 11:38:09 +00:00
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
function teardown_tests {
|
2019-06-05 13:16:19 +00:00
|
|
|
local share_dir=$1
|
|
|
|
local blueprints_dir=$2
|
|
|
|
|
|
|
|
mv $share_dir/composer/live-iso.ks.orig $share_dir/composer/live-iso.ks
|
|
|
|
rm -rf $blueprints_dir
|
|
|
|
mv ${blueprints_dir}.orig $blueprints_dir
|
2019-03-08 10:29:11 +00:00
|
|
|
}
|
2018-12-12 11:38:09 +00:00
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
if [ -z "$CLI" ]; then
|
|
|
|
export top_srcdir=`pwd`
|
|
|
|
. ./tests/testenv.sh
|
|
|
|
|
|
|
|
BLUEPRINTS_DIR=`mktemp -d '/tmp/composer-blueprints.XXXXX'`
|
|
|
|
cp ./tests/pylorax/blueprints/*.toml $BLUEPRINTS_DIR
|
|
|
|
|
|
|
|
SHARE_DIR=`mktemp -d '/tmp/composer-share.XXXXX'`
|
|
|
|
cp -R ./share/* $SHARE_DIR
|
|
|
|
chmod a+rx -R $SHARE_DIR
|
|
|
|
|
2019-06-02 17:47:02 +00:00
|
|
|
setup_tests $SHARE_DIR $BLUEPRINTS_DIR
|
2019-03-21 19:31:04 +00:00
|
|
|
# Start the lorax-composer daemon
|
2019-03-08 10:29:11 +00:00
|
|
|
./src/sbin/lorax-composer --sharedir $SHARE_DIR $BLUEPRINTS_DIR &
|
|
|
|
else
|
2019-06-02 17:47:02 +00:00
|
|
|
export PACKAGE="composer-cli"
|
2019-06-05 13:16:19 +00:00
|
|
|
systemctl stop lorax-composer
|
2019-06-02 17:47:02 +00:00
|
|
|
setup_tests /usr/share/lorax /var/lib/lorax/composer/blueprints
|
2019-06-05 13:16:19 +00:00
|
|
|
systemctl start lorax-composer
|
2019-03-08 10:29:11 +00:00
|
|
|
fi
|
2019-02-27 13:01:28 +00:00
|
|
|
|
2018-12-12 11:38:09 +00:00
|
|
|
|
2019-03-21 19:31:04 +00:00
|
|
|
# Wait for the backend to become ready
|
2018-12-12 11:38:09 +00:00
|
|
|
tries=0
|
|
|
|
until curl -m 15 --unix-socket /run/weldr/api.socket http://localhost:4000/api/status | grep 'db_supported.*true'; do
|
|
|
|
tries=$((tries + 1))
|
|
|
|
if [ $tries -gt 20 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
sleep 2
|
|
|
|
echo "DEBUG: Waiting for backend API to become ready before testing ..."
|
|
|
|
done;
|
|
|
|
|
|
|
|
|
2019-01-23 14:32:32 +00:00
|
|
|
export BEAKERLIB_JOURNAL=0
|
2019-01-23 22:09:45 +00:00
|
|
|
export PATH="/usr/local/bin:$PATH"
|
2018-12-12 11:38:09 +00:00
|
|
|
if [ -z "$*" ]; then
|
2019-03-21 19:31:04 +00:00
|
|
|
# Invoke cli/ tests which can be executed without special preparation
|
2018-12-12 11:38:09 +00:00
|
|
|
./tests/cli/test_blueprints_sanity.sh
|
|
|
|
./tests/cli/test_compose_sanity.sh
|
|
|
|
else
|
2019-03-21 19:31:04 +00:00
|
|
|
# Execute other cli tests which need more adjustments in the calling environment
|
2018-12-12 11:38:09 +00:00
|
|
|
# or can't be executed inside Travis CI
|
2019-01-25 17:47:38 +00:00
|
|
|
for TEST in "$@"; do
|
2018-12-12 11:38:09 +00:00
|
|
|
./$TEST
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
if [ -z "$CLI" ]; then
|
|
|
|
# stop lorax-composer and remove /run/weldr/api.socket
|
|
|
|
# only if running against source
|
|
|
|
pkill -9 lorax-composer
|
|
|
|
rm -f /run/weldr/api.socket
|
2019-06-05 13:16:19 +00:00
|
|
|
teardown_tests $SHARE_DIR $BLUEPRINTS_DIR
|
2019-03-08 10:29:11 +00:00
|
|
|
else
|
|
|
|
systemctl stop lorax-composer
|
2019-06-05 13:16:19 +00:00
|
|
|
teardown_tests /usr/share/lorax /var/lib/lorax/composer/blueprints
|
2019-03-08 10:29:11 +00:00
|
|
|
# start lorax-composer again so we can continue with manual or other kinds
|
|
|
|
# of testing on the same system
|
|
|
|
systemctl start lorax-composer
|
|
|
|
fi
|
2018-12-12 11:38:09 +00:00
|
|
|
|
2019-03-21 19:31:04 +00:00
|
|
|
# Look for failures
|
2018-12-12 11:38:09 +00:00
|
|
|
grep RESULT_STRING /var/tmp/beakerlib-*/TestResults | grep -v PASS && exit 1
|
|
|
|
|
2019-03-21 19:31:04 +00:00
|
|
|
# Explicit return code for Makefile
|
2018-12-12 11:38:09 +00:00
|
|
|
exit 0
|