summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Yarwood <lyarwood@redhat.com>2021-06-15 12:48:13 +0100
committerLee Yarwood <lyarwood@redhat.com>2021-06-18 12:34:27 +0100
commit085de864db31631ead22f9c23488ed05b6bd5f88 (patch)
tree1cad2ca50161a641c01df3b3262f7726fba2ad73
parenta0ec2de968cfded8b88c2f3af1152b5932d675b7 (diff)
downloadnova-085de864db31631ead22f9c23488ed05b6bd5f88.tar.gz
tests: Allow bindep and test-setup.sh to run on EL distros
Only install mariadb on EL based hosts. Also when using mariadb and postgresql on EL based distros we need to ensure each service is configured and actually started before using either. Co-Authored-By: Ade Lee <alee@redhat.com> Change-Id: I7122933d85bd7d0333c2c35e0f1a8414c1baa6d5
-rw-r--r--bindep.txt8
-rwxr-xr-xtools/test-setup.sh35
2 files changed, 40 insertions, 3 deletions
diff --git a/bindep.txt b/bindep.txt
index b32c5cba73..3a4d7bef80 100644
--- a/bindep.txt
+++ b/bindep.txt
@@ -24,10 +24,12 @@ libxml2-dev [platform:dpkg test]
libxslt-devel [platform:rpm test]
libxslt1-dev [platform:dpkg test]
locales [platform:debian]
-mysql [platform:rpm]
+mysql [platform:rpm !platform:redhat]
mysql-client [platform:dpkg]
-mysql-devel [platform:rpm test]
-mysql-server
+mysql-devel [platform:rpm !platform:redhat test]
+mysql-server [!platform:redhat]
+mariadb-devel [platform:rpm platform:redhat test]
+mariadb-server [platform:rpm platform:redhat]
openssh-client [platform:dpkg]
openssh-clients [platform:rpm]
openssl
diff --git a/tools/test-setup.sh b/tools/test-setup.sh
index 5b986ced36..96a08c4a98 100755
--- a/tools/test-setup.sh
+++ b/tools/test-setup.sh
@@ -15,6 +15,41 @@ DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_slave}
DB_USER=openstack_citest
DB_PW=openstack_citest
+function is_rhel7 {
+ [ -f /usr/bin/yum ] && \
+ cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \
+ cat /etc/*release | grep -q 'release 7'
+}
+
+function is_rhel8 {
+ [ -f /usr/bin/dnf ] && \
+ cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \
+ cat /etc/*release | grep -q 'release 8'
+}
+
+function set_conf_line { # file regex value
+ sudo sh -c "grep -q -e '$2' $1 && \
+ sed -i 's|$2|$3|g' $1 || \
+ echo '$3' >> $1"
+}
+
+if is_rhel7 || is_rhel8; then
+ # mysql needs to be started on centos/rhel
+ sudo systemctl restart mariadb.service
+
+ # postgres setup for centos
+ sudo postgresql-setup --initdb
+ PG_CONF=/var/lib/pgsql/data/postgresql.conf
+ set_conf_line $PG_CONF '^password_encryption =.*' 'password_encryption = scram-sha-256'
+
+ PG_HBA=/var/lib/pgsql/data/pg_hba.conf
+ set_conf_line $PG_HBA '^local[ \t]*all[ \t]*all.*' 'local all all peer'
+ set_conf_line $PG_HBA '^host[ \t]*all[ \t]*all[ \t]*127.0.0.1\/32.*' 'host all all 127.0.0.1/32 scram-sha-256'
+ set_conf_line $PG_HBA '^host[ \t]*all[ \t]*all[ \t]*::1\/128.*' 'host all all ::1/128 scram-sha-256'
+
+ sudo systemctl restart postgresql.service
+fi
+
sudo -H mysqladmin -u root password $DB_ROOT_PW
# It's best practice to remove anonymous users from the database. If