kolla-ansible/tests/test-ovn.sh

58 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -o xtrace
set -o errexit
set -o pipefail
# Enable unbuffered output
export PYTHONUNBUFFERED=1
function test_ovn_logged {
# NOTE(yoctozepto): could use real ini parsing but this is fine for now
local neutron_ml2_conf_path=/etc/kolla/neutron-server/ml2_conf.ini
ovn_nb_connection=$(sudo grep -P -o -e "(?<=^ovn_nb_connection = ).*" "$neutron_ml2_conf_path")
ovn_sb_connection=$(sudo grep -P -o -e "(?<=^ovn_sb_connection = ).*" "$neutron_ml2_conf_path")
# List OVN NB/SB entries
echo "OVN NB DB entries:"
sudo docker exec ovn_northd ovn-nbctl --db "$ovn_nb_connection" show
echo "OVN SB DB entries:"
sudo docker exec ovn_northd ovn-sbctl --db "$ovn_sb_connection" show
# Test OVSDB cluster state
if [[ $BASE_DISTRO =~ ^(debian|ubuntu)$ ]]; then
OVNNB_STATUS=$(sudo docker exec ovn_nb_db ovs-appctl -t /var/run/openvswitch/ovnnb_db.ctl cluster/status OVN_Northbound)
OVNSB_STATUS=$(sudo docker exec ovn_sb_db ovs-appctl -t /var/run/openvswitch/ovnsb_db.ctl cluster/status OVN_Southbound)
else
OVNNB_STATUS=$(sudo docker exec ovn_nb_db ovs-appctl -t /var/run/ovn/ovnnb_db.ctl cluster/status OVN_Northbound)
OVNSB_STATUS=$(sudo docker exec ovn_sb_db ovs-appctl -t /var/run/ovn/ovnsb_db.ctl cluster/status OVN_Southbound)
fi
if [[ $(grep -o "at tcp:" <<< ${OVNNB_STATUS} | wc -l) != "3" ]]; then
echo "ERR: NB Cluster does not have 3 nodes"
echo "Output: ${OVNNB_STATUS}"
exit 1
fi
if [[ $(grep -o "at tcp:" <<< ${OVNSB_STATUS} | wc -l) != "3" ]]; then
echo "ERR: SB Cluster does not have 3 nodes"
echo "Output: ${OVNSB_STATUS}"
exit 1
fi
}
function test_ovn {
echo "Testing OVN"
test_ovn_logged > /tmp/logs/ansible/test-ovn 2>&1
result=$?
if [[ $result != 0 ]]; then
echo "Testing OVN failed. See ansible/test-ovn for details"
else
echo "Successfully tested OVN. See ansible/test-ovn for details"
fi
return $result
}
test_ovn