#!/bin/bash
#---------------------
# Testing nova-daemons
#---------------------
set -e
DAEMONS=('nova-api')
ret=0

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

sed -i -e 's!connection = sqlite.*nova.sqlite!connection = mysql+pymysql://nova:changeme@localhost/nova!g' /etc/nova/nova.conf
sed -i -e 's!connection = sqlite.*nova_api.sqlite!connection = mysql+pymysql://nova:changeme@localhost/nova_api!g' /etc/nova/nova.conf

su -s /bin/sh -c 'nova-manage api_db sync' nova
su -s /bin/sh -c 'nova-manage db sync' nova

for daemon in "${DAEMONS[@]}"; do
    TIMEOUT=50
    apache2ctl restart
    while [ "$TIMEOUT" -gt 0 ]; do
        if apache2ctl -t -D DUMP_VHOSTS | grep -q $daemon.conf; 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
