Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / qa / workunits / rbd / qemu_dynamic_features.sh
1 #!/bin/bash -x
2
3 if [[ -z "${IMAGE_NAME}" ]]; then
4   echo image name must be provided
5   exit 1
6 fi
7
8 is_qemu_running() {
9   rbd status ${IMAGE_NAME} | grep -v "Watchers: none"
10 }
11
12 wait_for_qemu() {
13   while ! is_qemu_running ; do
14     echo "*** Waiting for QEMU"
15     sleep 30
16   done
17 }
18
19 wait_for_qemu
20 rbd feature disable ${IMAGE_NAME} journaling
21 rbd feature disable ${IMAGE_NAME} fast-diff
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   rbd feature enable ${IMAGE_NAME} fast-diff || break
31   if is_qemu_running ; then
32     sleep 60
33   fi
34
35   echo "*** Disabling all features"
36   rbd feature disable ${IMAGE_NAME} journaling || break
37   rbd feature disable ${IMAGE_NAME} fast-diff || break
38   rbd feature disable ${IMAGE_NAME} object-map || break
39   rbd feature disable ${IMAGE_NAME} exclusive-lock || break
40   if is_qemu_running ; then
41     sleep 60
42   fi
43 done
44
45 if is_qemu_running ; then
46     echo "RBD command failed on alive QEMU"
47     exit 1
48 fi