#!/bin/bash
#---------------------
# Testing manila-daemons
#---------------------
set -e
DAEMONS=('manila-api' 'manila-data' 'manila-scheduler')
# NOTE(coreycb): manila-share needs keystone setup to test.

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

ret=0

if ! rabbitmqctl list_users | grep rabbit_user; then
    rabbitmqctl add_user rabbit_user rabbit_password
    rabbitmqctl set_permissions rabbit_user ".*" ".*" ".*"
fi

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

crudini --set /etc/manila/manila.conf database connection "mysql+pymysql://manila:changeme@localhost/manila"
crudini --set /etc/manila/manila.conf DEFAULT transport_url "rabbit://rabbit_user:rabbit_password@127.0.0.1:5672"

manila-manage db sync

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

for daemon in "${DAEMONS[@]}"; do
    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

