kolla-ansible/ansible/roles/mariadb/templates/wsrep-notify.sh.j2
Michal Arbet 5d17100118 Additional small changes in role/mariadb
- Replace hardcoded haproxy monitor user with variable.
 - Rename mariadb_backup variable to mariadb_backup_possible.
 - Drop creation of monitor user in handlers as this is
   now handled in register.yml for good reason.

Change-Id: I255a79d36ae18ca42d0befd00b235ca509197db3
2021-04-14 16:10:30 +02:00

80 lines
1.5 KiB
Django/Jinja

#!/bin/bash -e
# Edit parameters below to specify the address and login to server.
USER={{ database_user }}
PSWD={{ database_password }}
HOST={{ api_interface_address }}
PORT={{ mariadb_port }}
LB_USER={{ mariadb_monitor_user }}
ENABLE_LB="UPDATE mysql.user SET User='${LB_USER}' WHERE User='${LB_USER}_blocked';"
DISABLE_LB="UPDATE mysql.user SET User='${LB_USER}_blocked' WHERE User='${LB_USER}';"
MYSQL_CMD="`type -p mysql` -B -u$USER -p$PSWD -h$HOST -P$PORT"
status_update()
{
echo "SET SESSION wsrep_on=off;"
echo "$@"
echo "FLUSH PRIVILEGES;"
}
get_sst_method()
{
$MYSQL_CMD -s -N -e "SHOW VARIABLES LIKE 'wsrep_sst_method';" | awk '{ print $2 }'
}
while [ $# -gt 0 ]
do
case $1 in
--status)
STATUS=$2
shift
;;
--uuid)
CLUSTER_UUID=$2
shift
;;
--primary)
[ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
shift
;;
--index)
INDEX=$2
shift
;;
--members)
MEMBERS=$2
shift
;;
esac
shift
done
case $STATUS in
Synced)
CMD=$ENABLE_LB
;;
Donor)
# enabling donor only if xtrabackup configured
SST_METHOD=`get_sst_method`
if [[ $SST_METHOD =~ (mariabackup|xtrabackup) ]]; then
CMD=$ENABLE_LB
else
CMD=$DISABLE_LB
fi
;;
Undefined)
# shutting down database: do nothing
;;
*)
CMD=$DISABLE_LB
;;
esac
if [ -n "$CMD" ]
then
status_update "$CMD" | $MYSQL_CMD
fi
exit 0