85 lines
2.6 KiB
Bash
Executable File
85 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
# Below variables are set to exceute this script
|
|
IS_GATE=${IS_GATE:-False}
|
|
INSTALL_MYSQL_ONLY=${INSTALL_MYSQL_ONLY:-False}
|
|
|
|
CONTRIB_DIR="$BASE/new/neutron-fwaas/neutron_fwaas/tests/contrib"
|
|
|
|
$BASE/new/devstack-gate/devstack-vm-gate.sh
|
|
|
|
# Add a rootwrap filter to support test-only
|
|
# configuration (e.g. a KillFilter for processes that
|
|
# use the python installed in a tox env).
|
|
FUNC_FILTER=$CONTRIB_DIR/filters.template
|
|
sed -e "s+\$BASE_PATH+$BASE/new/neutron-fwaas/.tox/dsvm-functional+" \
|
|
$FUNC_FILTER | sudo tee /etc/neutron/rootwrap.d/functional.filters > /dev/null
|
|
|
|
# Use devstack functions to install mysql and psql servers
|
|
TOP_DIR=$BASE/new/devstack
|
|
source $TOP_DIR/functions
|
|
source $TOP_DIR/inc/meta-config
|
|
source $TOP_DIR/stackrc
|
|
source $TOP_DIR/lib/database
|
|
source $TOP_DIR/localrc
|
|
|
|
# Install_databases [install_pg]
|
|
# Tweak the script accordingly if we need psql in future
|
|
function _install_databases {
|
|
local install_pg=${1:-True}
|
|
|
|
echo_summary "Installing databases"
|
|
|
|
# Avoid attempting to configure the db if it appears to already
|
|
# have run. The setup as currently defined is not idempotent.
|
|
if mysql openstack_citest > /dev/null 2>&1 < /dev/null; then
|
|
echo_summary "DB config appears to be complete, skipping."
|
|
return 0
|
|
fi
|
|
|
|
enable_service mysql
|
|
initialize_database_backends
|
|
install_database
|
|
configure_database_mysql
|
|
|
|
if [[ "$install_pg" == "True" ]]; then
|
|
enable_service postgresql
|
|
initialize_database_backends
|
|
install_database
|
|
configure_database_postgresql
|
|
fi
|
|
|
|
# Set up the 'openstack_citest' user and database in each backend
|
|
tmp_dir=$(mktemp -d)
|
|
trap "rm -rf $tmp_dir" EXIT
|
|
|
|
cat << EOF > $tmp_dir/mysql.sql
|
|
CREATE DATABASE openstack_citest;
|
|
CREATE USER 'openstack_citest'@'localhost' IDENTIFIED BY 'openstack_citest';
|
|
CREATE USER 'openstack_citest' IDENTIFIED BY 'openstack_citest';
|
|
GRANT ALL PRIVILEGES ON *.* TO 'openstack_citest'@'localhost';
|
|
GRANT ALL PRIVILEGES ON *.* TO 'openstack_citest';
|
|
FLUSH PRIVILEGES;
|
|
EOF
|
|
/usr/bin/mysql -u root < $tmp_dir/mysql.sql
|
|
|
|
if [[ "$install_pg" == "True" ]]; then
|
|
cat << EOF > $tmp_dir/postgresql.sql
|
|
CREATE USER openstack_citest WITH CREATEDB LOGIN PASSWORD 'openstack_citest';
|
|
CREATE DATABASE openstack_citest WITH OWNER openstack_citest;
|
|
EOF
|
|
|
|
# User/group postgres needs to be given access to tmp_dir
|
|
setfacl -m g:postgres:rwx $tmp_dir
|
|
sudo -u postgres /usr/bin/psql --file=$tmp_dir/postgresql.sql
|
|
fi
|
|
}
|
|
|
|
if [[ "$IS_GATE" != "True" ]]; then
|
|
if [[ "$INSTALL_MYSQL_ONLY" == "True" ]]; then
|
|
_install_databases nopg
|
|
fi
|
|
fi
|