ceph/qa/workunits/rbd/qemu_dynamic_features.sh
Mao Zhongyi 8d5bee2d46 rbd: interlock object-map/fast-diff features together
Since we only support Jewel and later releases, which both support
object-map and fast-diff, enabling/disabling object-map should always
enable/disable fast-diff.

Signed-off-by: Mao Zhongyi <maozy.fnst@cn.fujitsu.com>
2018-06-12 09:25:55 +08:00

49 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -x
if [[ -z "${IMAGE_NAME}" ]]; then
echo image name must be provided
exit 1
fi
is_qemu_running() {
rbd status ${IMAGE_NAME} | grep -v "Watchers: none"
}
wait_for_qemu() {
while ! is_qemu_running ; do
echo "*** Waiting for QEMU"
sleep 30
done
}
wait_for_qemu
rbd feature disable ${IMAGE_NAME} journaling
rbd feature disable ${IMAGE_NAME} fast-diff
rbd feature disable ${IMAGE_NAME} object-map
rbd feature disable ${IMAGE_NAME} exclusive-lock
while is_qemu_running ; do
echo "*** Enabling all features"
rbd feature enable ${IMAGE_NAME} exclusive-lock || break
rbd feature enable ${IMAGE_NAME} journaling || break
rbd feature enable ${IMAGE_NAME} object-map || break
if is_qemu_running ; then
sleep 60
fi
echo "*** Disabling all features"
rbd feature disable ${IMAGE_NAME} journaling || break
rbd feature disable ${IMAGE_NAME} fast-diff || break
rbd feature disable ${IMAGE_NAME} object-map || break
rbd feature disable ${IMAGE_NAME} exclusive-lock || break
if is_qemu_running ; then
sleep 60
fi
done
if is_qemu_running ; then
echo "RBD command failed on alive QEMU"
exit 1
fi