
Recently a change landed in devstack [1] to install packages into a global venv by default and the "nova" command was not symlinked for compat, so jobs using run-evacuate-hook are failing with: nova: command not found We had intended to switch away from using novaclient CLI commands in our scripts anyway, so we can just use this opportunity to switch to OSC. [1]: If9bc7ba45522189d03f19b86cb681bb150ee2f25 Change-Id: Ifd969b84a99a9c0460bceb1a28fcee6e51cbb4ae
59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
||
# Source tempest to determine the build timeout configuration.
|
||
source /opt/stack/devstack/lib/tempest
|
||
source /opt/stack/devstack/openrc admin
|
||
set -x
|
||
set -e
|
||
|
||
# Wait for the controller compute service to be enabled.
|
||
count=0
|
||
status=$(openstack compute service list --host ${CONTROLLER_HOSTNAME} --service nova-compute -f value -c Status)
|
||
while [ "${status}" != "enabled" ]
|
||
do
|
||
sleep 1
|
||
count=$((count+1))
|
||
if [ ${count} -eq 30 ]; then
|
||
echo "Timed out waiting for controller compute service to be enabled"
|
||
exit 5
|
||
fi
|
||
status=$(openstack compute service list --host ${CONTROLLER_HOSTNAME} --service nova-compute -f value -c Status)
|
||
done
|
||
|
||
function evacuate_and_wait_for_active() {
|
||
local server="$1"
|
||
|
||
# Shared storage will be auto-calculated with -–os-compute-api-version 2.14
|
||
# and greater and --shared-storage should not be used with later
|
||
# microversions.
|
||
openstack --os-compute-api-version 2.14 server evacuate ${server}
|
||
# Wait for the instance to go into ACTIVE state from the evacuate.
|
||
count=0
|
||
status=$(openstack server show ${server} -f value -c status)
|
||
while [ "${status}" != "ACTIVE" ]
|
||
do
|
||
sleep 1
|
||
count=$((count+1))
|
||
if [ ${count} -eq ${BUILD_TIMEOUT} ]; then
|
||
echo "Timed out waiting for server ${server} to go to ACTIVE status"
|
||
exit 6
|
||
fi
|
||
status=$(openstack server show ${server} -f value -c status)
|
||
done
|
||
}
|
||
|
||
evacuate_and_wait_for_active evacuate-test
|
||
evacuate_and_wait_for_active evacuate-bfv-test
|
||
|
||
# Make sure the servers moved.
|
||
for server in evacuate-test evacuate-bfv-test; do
|
||
host=$(openstack server show ${server} -f value -c OS-EXT-SRV-ATTR:host)
|
||
if [[ ${host} != ${CONTROLLER_HOSTNAME} ]]; then
|
||
echo "Unexpected host ${host} for server ${server} after evacuate."
|
||
exit 7
|
||
fi
|
||
done
|
||
|
||
# Cleanup test servers
|
||
openstack server delete --wait evacuate-test
|
||
openstack server delete --wait evacuate-bfv-test
|