kolla-ansible/tests/test-magnum.sh

82 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Test deployment of magnum, trove and designate.
set -o xtrace
set -o errexit
# Enable unbuffered output for Ansible in Jenkins.
export PYTHONUNBUFFERED=1
function test_magnum_clusters {
openstack coe cluster list
openstack coe cluster template list
}
function test_trove {
# smoke test
openstack database instance list
openstack database cluster list
}
function test_designate {
# Smoke test.
openstack zone list --all
# Create a default zone for fixed and floating IPs, then reconfigure nova
# and neutron to use it.
openstack zone create --email admin@example.org example.org.
ZONE_ID=$(openstack zone show example.org. -f value -c id)
mkdir -p /etc/kolla/config/designate/
cat << EOF > /etc/kolla/config/designate/designate-sink.conf
[handler:nova_fixed]
zone_id = ${ZONE_ID}
[handler:neutron_floatingip]
zone_id = ${ZONE_ID}
EOF
RAW_INVENTORY=/etc/kolla/inventory
kolla-ansible -i ${RAW_INVENTORY} --tags designate -vvv reconfigure &> /tmp/logs/ansible/reconfigure-designate
# Create an instance, and check that its name resolves.
openstack server create --wait --image cirros --flavor m1.tiny --key-name mykey --network demo-net dns-test --wait
attempt=1
while true; do
IP=$(dig +short @192.0.2.1 dns-test.example.org. A)
if [[ -n $IP ]]; then
break
fi
attempt=$((attempt+1))
if [[ $attempt -eq 10 ]]; then
echo "Failed to resolve dns-test.example.org."
openstack recordset list ${ZONE_ID}
exit 1
fi
sleep 10
done
}
function test_magnum_logged {
. /etc/kolla/admin-openrc.sh
. ~/openstackclient-venv/bin/activate
test_magnum_clusters
test_designate
test_trove
}
function test_magnum {
echo "Testing Magnum, Trove and Designate"
test_magnum_logged > /tmp/logs/ansible/test-magnum 2>&1
result=$?
if [[ $result != 0 ]]; then
echo "Testing Magnum, Trove and Designate failed. See ansible/test-magnum for details"
else
echo "Successfully tested Magnum, Trove and Designate . See ansible/test-magnum for details"
fi
return $result
}
test_magnum