tripleo-upgrade/templates/check_service_haproxy_backe...

28 lines
1.2 KiB
Django/Jinja

source {{ undercloud_rc }}
NODE_IP=$(openstack server show {{ node_name | splitext | first }} -f json | jq -r .addresses | grep -oP '[0-9.]+')
## in case of external loadbalancer haproxy resource is not running on controller nodes
EXT_LB=$(ssh -q -o StrictHostKeyChecking=no heat-admin@$NODE_IP 'sudo hiera -c /etc/puppet/hiera.yaml enable_load_balancer')
if [[ $EXT_LB != 'false' ]]; then
timeout_seconds={{ node_reboot_timeout }}
elapsed_seconds=0
while true; do
rm -rf ~/haproxy.stats
echo "Waiting for haproxy backend services to come up"
ssh -q -o StrictHostKeyChecking=no heat-admin@$NODE_IP > ~/haproxy.stats <<-\SSH
sudo docker exec $(sudo docker ps | grep -oP haproxy-bundle.*) bash -c 'echo "show stat" | socat /var/lib/haproxy/stats stdio | grep -v redis'
SSH
grep DOWN ~/haproxy.stats > /dev/null
if [[ $? != 0 ]]; then
echo "HAproxy backends are ready"
break
fi
sleep 3
(( elapsed_seconds += 3 ))
if [ $elapsed_seconds -ge $timeout_seconds ]; then
echo "FAILURE: $(grep DOWN haproxy.stats | awk -F ',' {'print $1'}) is down on $(grep DOWN haproxy.stats | awk -F ',' {'print $2'})"
exit 1
fi
done
fi