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

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

# update plugin path
sed -i 's/NEUTRON_PLUGIN_CONFIG\=.*/NEUTRON_PLUGIN_CONFIG\=\"\/etc\/neutron\/plugins\/ml2\/ml2_conf\.ini\"/g' /etc/default/neutron-server
sed -i 's/core_plugin = .*/core_plugin \= ml2/g' /etc/neutron/neutron.conf
# 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
service neutron-server restart

sleep 5

DAEMONS=('neutron-server' 'neutron-l3-agent' 'neutron-dhcp-agent' 'neutron-metadata-agent')
for daemon in "${DAEMONS[@]}"; do
    if service $daemon status > /dev/null; then
        echo "OK"
    else
        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
