27 lines
968 B
Django/Jinja
27 lines
968 B
Django/Jinja
{% if compute_evacuate %}
|
|
source {{ overcloud_rc }}
|
|
## Detect if ceph shared storage was used
|
|
STORAGE_BACKEND=$(openstack volume service list -f json | jq -r -c '.[] | select(.Binary | contains("cinder-volume")) | .Host' | sed s/hostgroup@tripleo_//)
|
|
if [ $STORAGE_BACKEND == 'ceph' ]; then
|
|
nova host-evacuate-live {{ node_name }}
|
|
else
|
|
nova host-evacuate-live --block-migrate {{ node_name }}
|
|
fi
|
|
|
|
timeout_seconds=120
|
|
elapsed_seconds=0
|
|
while true; do
|
|
echo "Waiting for {{ node_name }} to get quiesced ..."
|
|
INSTANCE_COUNT=$(openstack server list --host {{ node_name }} -f json | jq -r -c '[.[] | select(.Status | contains("ACTIVE") or contains("PAUSED") or contains("MIGRATING"))] | length')
|
|
if [ $INSTANCE_COUNT == 0 ]; then
|
|
break
|
|
fi
|
|
sleep 3
|
|
(( elapsed_seconds += 3 ))
|
|
if [ $elapsed_seconds -ge $timeout_seconds ]; then
|
|
echo "FAILURE: Could not quiesce compute node {{ node_name }}"
|
|
exit 1
|
|
fi
|
|
done
|
|
{% endif %}
|