Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / qa / workunits / rados / test_pool_quota.sh
1 #!/bin/sh -ex
2
3 p=`uuidgen`
4
5 # objects
6 ceph osd pool create $p 12
7 ceph osd pool set-quota $p max_objects 10
8 ceph osd pool application enable $p rados
9
10 for f in `seq 1 10` ; do
11  rados -p $p put obj$f /etc/passwd
12 done
13
14 sleep 30
15
16 rados -p $p put onemore /etc/passwd  &
17 pid=$!
18
19 ceph osd pool set-quota $p max_objects 100
20 wait $pid 
21 [ $? -ne 0 ] && exit 1 || true
22
23 rados -p $p put twomore /etc/passwd
24
25 # bytes
26 ceph osd pool set-quota $p max_bytes 100
27 sleep 30
28
29 rados -p $p put two /etc/passwd &
30 pid=$!
31
32 ceph osd pool set-quota $p max_bytes 0
33 ceph osd pool set-quota $p max_objects 0
34 wait $pid 
35 [ $? -ne 0 ] && exit 1 || true
36
37 rados -p $p put three /etc/passwd
38
39
40 #one pool being full does not block a different pool
41
42 pp=`uuidgen`
43
44 ceph osd pool create $pp 12
45 ceph osd pool application enable $pp rados
46
47 # set objects quota 
48 ceph osd pool set-quota $pp max_objects 10
49 sleep 30
50
51 for f in `seq 1 10` ; do
52  rados -p $pp put obj$f /etc/passwd
53 done
54
55 sleep 30
56
57 rados -p $p put threemore /etc/passwd 
58
59 ceph osd pool set-quota $p max_bytes 0
60 ceph osd pool set-quota $p max_objects 0
61
62 sleep 30
63 # done
64 ceph osd pool delete $p $p --yes-i-really-really-mean-it
65 ceph osd pool delete $pp $pp --yes-i-really-really-mean-it
66
67 echo OK
68