Modify mysql DLZ module test to work with 9.16

Use built DLZ module instead of built-in functionality.
This commit is contained in:
Petr Menšík 2021-09-04 01:35:11 +02:00
commit 3e6a5fa104
3 changed files with 33 additions and 10 deletions

View file

@ -54,7 +54,9 @@ $(METADATA): Makefile
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: bind" >> $(METADATA)
@echo "Requires: bind bind-sdb bind-utils mysql mysql-server redhat-lsb" >> $(METADATA)
@echo "Requires: bind bind-sdb bind-utils mariadb-server redhat-lsb" >> $(METADATA)
# Only built on Rawhide, Fedora
@echo "Requires: bind-dlz-mysql" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)

View file

@ -23,9 +23,9 @@ require:
- bind
- bind-sdb
- bind-utils
- mysql
- mysql-server
- mariadb-server
- redhat-lsb
- bind-dlz-mysql
duration: 15m
enabled: true
tag:

View file

@ -36,21 +36,40 @@ NAMED_SERVICE="named-sdb"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm 'bind'
rlAssertRpm 'bind-sdb'
rlAssertRpm 'bind-utils'
rlAssertRpm 'mysql'
rlAssertRpm 'mysql-server'
if rpm -q mariadb-server; then
MYSQL_SERVICE=mariadb
elif rpm -q community-mysql-server; then
MYSQL_SERVICE=mysql
else
MYSQL_SERVICE=mysql
fi
rlRun "rpm -q mariadb{-server,} community-mysql{,-server}" 0-2 "Print mysql versions"
rlRun "systemctl cat $MYSQL_SERVICE | cat"
rlFileBackup --clean "/var/lib/mysql" "/etc/rndc.key" "/etc/named.conf" "/etc/sysconfig/named"
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "chmod a+rx $TmpDir"
if rlIsRHEL "<7";then
rlRun "echo 'ENABLE_SDB=yes' > /etc/sysconfig/named"
NAMED_SERVICE=named
BIND_DATABASE="mysql"
elif [ -x /usr/lib64/bind/dlz_mysql_dynamic.so ]; then
NAMED_SERVICE=named
BIND_DATABASE="dlopen /usr/lib64/bind/dlz_mysql_dynamic.so"
# FIXME: this passes only with setenforce 0, does not work with SELinux!
##============= named_t ==============
#allow named_t mysqld_t:unix_stream_socket connectto;
#allow named_t mysqld_var_run_t:sock_file write;
#
else
rlAssertRpm 'bind-sdb'
NAMED_SERVICE=named-sdb
BIND_DATABASE="mysql"
fi
rlRun "ORIG_ENFORCING=$(getenforce)"
rlRun "setenforce 0"
rlRun "ORIGPWD=`pwd`"
rlRun "rlServiceStart mysqld"
rlRun "rlServiceStart $MYSQL_SERVICE"
rlRun "mysql < dlz.schema" 0,1
rlRun "echo \"CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}';\" | mysql" 0,1 "Create DB user"
rlRun "echo \"GRANT ALL PRIVILEGES ON BindDB.* TO '${DB_USER}'@'localhost';\" | mysql" 0,1 "Give DB user access rights"
@ -66,10 +85,11 @@ rlJournalStart
# configure bind
rlRun "rlServiceStop $NAMED_SERVICE"
cat >> /etc/named.conf <<EOFD
dlz "mytest" {
database "mysql
database "${BIND_DATABASE}
{
host=localhost socket=/var/lib/mysql/mysql.sock dbname=BindDB user=${DB_USER} pass=${DB_PASSWORD} threads=2
}
@ -115,7 +135,7 @@ EOFD
for i in 1 2; do
rlRun "dig @localhost ns$i.example.com +short | grep \"192.168.0.[0-9]\+\""
done
rlLogInfo "Following record is note defined:"
rlLogInfo "Following record is not defined:"
rlRun "dig @localhost mailer.example.com | grep \"status: NXDOMAIN\"" 0
[ "$DEBUG" = y ] && PS1="test-debug $PS1" bash -i
@ -125,7 +145,8 @@ EOFD
rlRun "echo \"DROP USER '${DB_USER}'@'localhost';\" | mysql" 0,1 "Destroy DB user"
rlServiceRestore $NAMED_SERVICE
rlRun "mysqladmin drop --force BindDB"
rlServiceRestore mysqld
rlServiceRestore $MYSQL_SERVICE
[ -n "${ORIG_ENFORCING}" ] && rlRun "setenforce ${ORIG_ENFORCING}"
rlFileRestore
rlPhaseEnd
rlJournalPrintText