#!/bin/bash
#---------------------
# Testing trove-daemons
#---------------------
set -e
DAEMONS=('trove-api' 'trove-taskmanager' 'trove-conductor')

for daemon in "${DAEMONS[@]}"; do
    systemctl stop $daemon
done

ret=0

mysql -u root << EOF
DROP DATABASE IF EXISTS trove;
CREATE DATABASE trove;
CREATE USER 'trove'@'localhost' IDENTIFIED BY 'changeme';
CREATE USER 'trove'@'%'         IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'localhost';
GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'%';
EOF

crudini --set /etc/trove/trove.conf database connection "mysql+pymysql://trove:changeme@localhost/trove"

su -s /bin/sh -c 'trove-manage db_sync' trove > /dev/null 2>&1

for daemon in "${DAEMONS[@]}"; do
    systemctl start $daemon
    TIMEOUT=50
    while [ "$TIMEOUT" -gt 0 ]; do
        if systemctl is-active $daemon > /dev/null; then
            echo "OK"
            break
        fi
        TIMEOUT=$((TIMEOUT - 1))
        sleep 0.1
    done

    if [ "$TIMEOUT" -le 0 ]; then
        echo "ERROR: ${daemon} IS NOT RUNNING"
        ret=1
    fi
done

exit $ret
