#!/bin/bash
#-----------------------
# Testing octavia-daemons
#-----------------------
set -e
DAEMONS=('octavia-api' 'octavia-driver-agent' 'octavia-health-manager' 'octavia-housekeeping' 'octavia-worker')
failure=false

for daemon in "${DAEMONS[@]}"; do
    systemctl restart $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"
        failure=true
    else
        echo "${daemon} IS RUNNING"
    fi
done

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