Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / qa / workunits / rbd / diff.sh
1 #!/bin/bash -ex
2
3 function cleanup() {
4     rbd snap purge foo || :
5     rbd rm foo || :
6     rbd snap purge foo.copy || :
7     rbd rm foo.copy || :
8     rbd snap purge foo.copy2 || :
9     rbd rm foo.copy2 || :
10     rm -f foo.diff foo.out
11 }
12
13 cleanup
14
15 rbd create foo --size 1000
16 rbd bench-write foo --io-size 4096 --io-threads 5 --io-total 4096000 --io-pattern rand
17
18 #rbd cp foo foo.copy
19 rbd create foo.copy --size 1000
20 rbd export-diff foo - | rbd import-diff - foo.copy
21
22 rbd snap create foo --snap=two
23 rbd bench-write foo --io-size 4096 --io-threads 5 --io-total 4096000 --io-pattern rand
24 rbd snap create foo --snap=three
25 rbd snap create foo.copy --snap=two
26
27 rbd export-diff foo@two --from-snap three foo.diff && exit 1 || true  # wrong snap order
28 rm -f foo.diff
29
30 rbd export-diff foo@three --from-snap two foo.diff
31 rbd import-diff foo.diff foo.copy
32 rbd import-diff foo.diff foo.copy && exit 1 || true   # this should fail with EEXIST on the end snap
33 rbd snap ls foo.copy | grep three
34
35 rbd create foo.copy2 --size 1000
36 rbd import-diff foo.diff foo.copy2 && exit 1 || true   # this should fail bc the start snap dne
37
38 rbd export foo foo.out
39 orig=`md5sum foo.out | awk '{print $1}'`
40 rm foo.out
41 rbd export foo.copy foo.out
42 copy=`md5sum foo.out | awk '{print $1}'`
43
44 if [ "$orig" != "$copy" ]; then
45     echo does not match
46     exit 1
47 fi
48
49 cleanup
50
51 echo OK
52