#!/bin/bash
#-----------------------
# Testing neutron agents
#-----------------------
set -e

PACKAGES="python-neutron-fwaas neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent"
apt-get -y install $PACKAGES

# update interface drives
sed -i 's/#interface_driver =.*/interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver/g' /etc/neutron/l3_agent.ini
sed -i 's/#interface_driver =.*/interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver/g' /etc/neutron/dhcp_agent.ini

service neutron-l3-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart

DAEMONS=('neutron-l3-agent' 'neutron-dhcp-agent' 'neutron-metadata-agent')
for daemon in "${DAEMONS[@]}"; do
    TIMEOUT=50
    while [ "$TIMEOUT" -gt 0 ]; do
        if service $daemon status > /dev/null; then
            echo "OK"
            break
        fi
        TIMEOUT=$((TIMEOUT - 1))
        sleep 0.5
    done

    if [ "$TIMEOUT" -le 0 ]; then
        echo "ERROR: ${daemon} IS NOT RUNNING"
        tail -100 /var/log/neutron/*.log
        apt-get -y remove --purge $PACKAGES
        exit 1
    fi
done

apt-get -y remove --purge $PACKAGES
