]> git.proxmox.com Git - ceph.git/blob - ceph/qa/workunits/rbd/qemu_dynamic_features.sh
import ceph nautilus 14.2.2
[ceph.git] / ceph / qa / workunits / rbd / qemu_dynamic_features.sh
1 #!/usr/bin/env bash
2 set -x
3
4 if [[ -z "${IMAGE_NAME}" ]]; then
5 echo image name must be provided
6 exit 1
7 fi
8
9 is_qemu_running() {
10 rbd status ${IMAGE_NAME} | grep -v "Watchers: none"
11 }
12
13 wait_for_qemu() {
14 while ! is_qemu_running ; do
15 echo "*** Waiting for QEMU"
16 sleep 30
17 done
18 }
19
20 wait_for_qemu
21 rbd feature disable ${IMAGE_NAME} journaling
22 rbd feature disable ${IMAGE_NAME} object-map
23 rbd feature disable ${IMAGE_NAME} exclusive-lock
24
25 while is_qemu_running ; do
26 echo "*** Enabling all features"
27 rbd feature enable ${IMAGE_NAME} exclusive-lock || break
28 rbd feature enable ${IMAGE_NAME} journaling || break
29 rbd feature enable ${IMAGE_NAME} object-map || break
30 if is_qemu_running ; then
31 sleep 60
32 fi
33
34 echo "*** Disabling all features"
35 rbd feature disable ${IMAGE_NAME} journaling || break
36 rbd feature disable ${IMAGE_NAME} object-map || break
37 rbd feature disable ${IMAGE_NAME} exclusive-lock || break
38 if is_qemu_running ; then
39 sleep 60
40 fi
41 done
42
43 if is_qemu_running ; then
44 echo "RBD command failed on alive QEMU"
45 exit 1
46 fi