Currently the docker based test setup requires the docker cli and docker-compose. However on systems that only use podman this doesn't work. While there is a docker cli wrapper for podman docker-compose doesn't work together with podman. However there is also podman-compose which supports the same docker-compose yaml files. Thus adapt the script such that it finds either the docker or podman executables and uses them. Change-Id: I2d1c5e1713c51de376653b35266819fd380e8891
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eu
|
|
|
|
cd $(dirname $0)
|
|
|
|
# Select docker or podman
|
|
if command -v docker > /dev/null; then
|
|
DOCKER=docker
|
|
elif command -v podman > /dev/null; then
|
|
DOCKER=podman
|
|
else
|
|
echo "Please install docker or podman."
|
|
exit 1
|
|
fi
|
|
|
|
# Select docker-compose or podman-compose
|
|
if command -v docker-compose > /dev/null; then
|
|
COMPOSE=docker-compose
|
|
elif command -v podman-compose > /dev/null; then
|
|
COMPOSE=podman-compose
|
|
else
|
|
echo "Please install docker-compose or podman-compose."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
MYSQL="${DOCKER} exec zuul-test-mysql mysql -u root -pinsecure_slave"
|
|
|
|
if [ "${COMPOSE}" == "docker-compose" ]; then
|
|
docker-compose rm -sf
|
|
else
|
|
podman-compose down
|
|
fi
|
|
|
|
${COMPOSE} up -d
|
|
|
|
echo "Waiting for mysql"
|
|
timeout 30 bash -c "until ${MYSQL} -e 'show databases'; do sleep 0.5; done"
|
|
echo
|
|
|
|
echo "Setting up permissions for zuul tests"
|
|
${MYSQL} -e "GRANT ALL PRIVILEGES ON *.* TO 'openstack_citest'@'%' identified by 'openstack_citest' WITH GRANT OPTION;"
|
|
${MYSQL} -u openstack_citest -popenstack_citest -e "SET default_storage_engine=MYISAM; DROP DATABASE IF EXISTS openstack_citest; CREATE DATABASE openstack_citest CHARACTER SET utf8;"
|
|
|
|
echo "Finished"
|