diff --git a/bindep.txt b/bindep.txt index 1724ff1..e7322e1 100644 --- a/bindep.txt +++ b/bindep.txt @@ -6,6 +6,8 @@ libffi-devel [platform:rpm] libffi-dev [platform:dpkg] python3-libselinux [platform:rpm] libssl-dev [platform:dpkg] +mysql-client [test !platform:rpm] +mysql-server [test] openssl-devel [platform:rpm] python3-dnf [platform:fedora] python3-devel [platform:rpm] diff --git a/tests/playbooks/pre.yaml b/tests/playbooks/pre.yaml index 447ab3d..89f79f4 100644 --- a/tests/playbooks/pre.yaml +++ b/tests/playbooks/pre.yaml @@ -16,6 +16,10 @@ state: absent when: ansible_os_family == 'RedHat' + - name: Execute test-setup role + include_role: + name: test-setup + - name: Install ansible configuration file template: dest: ~/.ansible.cfg diff --git a/tools/test-setup.sh b/tools/test-setup.sh new file mode 100755 index 0000000..241ee37 --- /dev/null +++ b/tools/test-setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash -ex +# Copyright 2018 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Be sure mysql is started. +sudo service mysql start + +# The root password for the MySQL database; pass it in via +# MYSQL_ROOT_PW. +DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_worker} + +# This user and its password are used by the tests, if you change it, +# your tests might fail. +DB_USER=openstack_citest +DB_PW=openstack_citest + +sudo -H mysqladmin -u root password $DB_ROOT_PW + +# It's best practice to remove anonymous users from the database. If +# a anonymous user exists, then it matches first for connections and +# other connections from that host will not work. +sudo -H mysql -u root -p$DB_ROOT_PW -h localhost -e " + DELETE FROM mysql.user WHERE User=''; + FLUSH PRIVILEGES; + CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PW'; + GRANT ALL PRIVILEGES ON *.* TO '$DB_USER'@'%' WITH GRANT OPTION;" + +# Now create our database. +mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e " + SET default_storage_engine=MYISAM; + DROP DATABASE IF EXISTS openstack_citest; + CREATE DATABASE openstack_citest CHARACTER SET utf8;"