#!/bin/bash

sn="/tmp/kill-script.bash"
(
cat <<'EOS'
#!/bin/bash

ps ax | grep celeryd | grep -v grep | awk '{print $1}' | xargs kill "$1" 2>/dev/null
EOS
) > $sn

chmod 700 $sn

for iter in 1 2
do
    echo "killing worker processes, round $iter"
    for m in gemsun01 gemsun02 gemsun03 gemsun04 gemmicro01 gemmicro02 bigstar04
    do
        echo ">> $m"
        if [ $iter -eq 1 ]; then
            scp -p $sn root@$m.ethz.ch:$sn > /dev/null
            ssh root@$m.ethz.ch $sn "-15"
        else
            ssh root@$m.ethz.ch $sn "-9"
        fi
    done
    echo "sleeping.."
    sleep 3
done

echo ""
echo ">> Stopping rabbitmq"
echo ""
ssh root@gemcontrol.ethz.ch '/etc/init.d/rabbitmq-server stop'

echo ""
echo ">> Starting rabbitmq"
echo ""
ssh root@gemcontrol.ethz.ch 'ulimit -n 1024; /etc/init.d/rabbitmq-server start'

echo ""
echo ">> Deleting celery queue"
echo ""
ssh root@gemcontrol.ethz.ch '~muharem/queue-delete celery'

echo ""
echo ">> Stopping rabbitmq"
echo ""
ssh root@gemcontrol.ethz.ch '/etc/init.d/rabbitmq-server stop'

echo ""
echo ">> Flushing progress counters"
echo ""
ssh root@gemcontrol.ethz.ch 'redis-cli -n 15 flushall'

echo ""
echo ">> Stopping redis"
echo ""
ssh root@gemcontrol.ethz.ch 'ulimit -n 1024; /etc/init.d/redis-server stop'
