
The post_test_hook.sh runs in the nova-next CI job. The 1.0.0 version of the osc-placement plugin adds the CLIs to show consumer resource allocations. This adds some sanity check code to the post_test_hook.sh script to look for any resource provider (compute nodes) that have allocations against them, which shouldn't be the case for successful test runs where servers are cleaned up properly. Change-Id: I9801ad04eedf2fede24f3eb104715dcc8e20063d
55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/bash -x
|
|
|
|
MANAGE="/usr/local/bin/nova-manage"
|
|
|
|
function archive_deleted_rows {
|
|
# NOTE(danms): Run this a few times to make sure that we end
|
|
# up with nothing more to archive
|
|
for i in `seq 30`; do
|
|
$MANAGE db archive_deleted_rows --verbose --max_rows 1000
|
|
RET=$?
|
|
if [[ $RET -gt 1 ]]; then
|
|
echo Archiving failed with result $RET
|
|
return $RET
|
|
elif [[ $RET -eq 0 ]]; then
|
|
echo Archiving Complete
|
|
break;
|
|
fi
|
|
done
|
|
}
|
|
|
|
archive_deleted_rows
|
|
|
|
set -e
|
|
# We need to get the admin credentials to run the OSC CLIs for Placement.
|
|
set +x
|
|
BASE=${BASE:-/opt/stack}
|
|
source $BASE/new/devstack/openrc admin
|
|
set -x
|
|
|
|
# TODO(mriedem): Consider checking for instances in ERROR state because
|
|
# if there are any, we would expect them to retain allocations in Placement
|
|
# and therefore we don't really need to check for leaked allocations.
|
|
|
|
# Check for orphaned instance allocations in Placement which could mean
|
|
# something failed during a test run and isn't getting cleaned up properly.
|
|
echo "Looking for leaked resource provider allocations in Placement"
|
|
LEAKED_ALLOCATIONS=0
|
|
for provider in $(openstack resource provider list -c uuid -f value); do
|
|
echo "Looking for allocations for provider $provider"
|
|
allocations=$(openstack resource provider show --allocations $provider \
|
|
-c allocations -f value)
|
|
if [[ "$allocations" != "{}" ]]; then
|
|
echo "Resource provider has allocations:"
|
|
openstack resource provider show --allocations $provider
|
|
LEAKED_ALLOCATIONS=1
|
|
fi
|
|
done
|
|
|
|
# Fail if there were any leaked allocations.
|
|
if [[ $LEAKED_ALLOCATIONS -eq 1 ]]; then
|
|
echo "There were leaked allocations; failing."
|
|
exit 1
|
|
fi
|
|
echo "Resource provider allocations were cleaned up properly."
|