#!/bin/bash
#-----------------------
# Testing cinder-daemons
#-----------------------
set -e
DAEMONS=('apache2' 'cinder-scheduler')
failure=false

if grep -qE "^(sql_)?connection.*sqlite.*" /etc/cinder/cinder.conf
then
    su -s /bin/sh -c 'cinder-manage db sync' cinder
fi

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

for daemon in "${DAEMONS[@]}"; do
    TIMEOUT=50
    while [ "$TIMEOUT" -gt 0 ]; do
        if pidof -x $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"
        failure=true
    else
        echo "${daemon} IS RUNNING"
    fi
done

if [ "$failure" = true ]; then
    exit 1
fi
