From 085de864db31631ead22f9c23488ed05b6bd5f88 Mon Sep 17 00:00:00 2001 From: Lee Yarwood Date: Tue, 15 Jun 2021 12:48:13 +0100 Subject: [PATCH] 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 Change-Id: I7122933d85bd7d0333c2c35e0f1a8414c1baa6d5 --- bindep.txt | 8 +++++--- tools/test-setup.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/bindep.txt b/bindep.txt index b32c5cba730e..3a4d7bef8063 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 5b986ced361a..96a08c4a9847 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