puppet-openstack-cloud/templates/database/redis-notifications.sh.erb
Yanis Guenane 9289d22180 Redis: Enable master failover
This commit enable redis master failover. After a period of time
a new master will be elected by the sentinel and the haproxy will route
the stream to the correct redis node.

Change-Id: Ib107fdf37e9d0a24f9be4ae73c1a1092507f84b6
2015-03-13 16:21:41 +01:00

31 lines
944 B
Plaintext

#!/bin/bash
HAPROXY="<%= @haproxy_monitor_ip %>:<%= @haproxy_monitor_port %>"
CMD="$1"
ARGS="$2"
ARG1=`echo $ARGS | awk '{print $1}'`
call_curl () {
DATA=`echo "s=$1&action=$2&b=%234" | sed -e s/:/%3A/`
curl --silent -o /dev/null $HAPROXY --data "$DATA"
echo curl $HAPROXY --data "$DATA"
return 0
}
[ "$CMD" = "+odown" ] && [ "$ARG1" = "master" ] && \
call_curl `echo $ARGS | awk '{print $2 ":" $3 ":" $4}'` 'disable'
[ "$CMD" = "+sdown" ] && [ "$ARG1" = "slave" ] && \
call_curl `echo $ARGS | awk '{print $6 ":" $3 ":" $4}'` 'disable'
[ "$CMD" = "+switch-master" ] && \
call_curl `echo $ARGS | awk '{print $1 ":" $4 ":" $5}'` 'enable' &&
call_curl `echo $ARGS | awk '{print $1 ":" $2 ":" $3}'` 'disable'
[ "$CMD" = "-odown" ] && [ "$ARG1" = "master" ] && \
call_curl `echo $ARGS | awk '{print $2 ":" $3 ":" $4}'` 'enable'
# without exit code, sentinel thinks the script is still running and locks any further execution
exit 0