summaryrefslogtreecommitdiff
path: root/tools/test-setup.sh
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 /tools/test-setup.sh
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
Diffstat (limited to 'tools/test-setup.sh')
-rwxr-xr-xtools/test-setup.sh35
1 files changed, 35 insertions, 0 deletions
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