]> git.proxmox.com Git - ceph.git/blobdiff - ceph/qa/workunits/rbd/krbd_data_pool.sh
update sources to v12.1.0
[ceph.git] / ceph / qa / workunits / rbd / krbd_data_pool.sh
index 0b7b6c933ec8e680b9b7537bed1a5508cb9b3d68..c3f48e3816dc800661ee8a609db38efee750b4a2 100755 (executable)
@@ -67,6 +67,16 @@ function mkfs_and_mount() {
     sudo rbd unmap $dev
 }
 
+function list_HEADs() {
+    local pool=$1
+
+    rados -p $pool ls | while read obj; do
+        if rados -p $pool stat $obj >/dev/null 2>&1; then
+            echo $obj
+        fi
+    done
+}
+
 function count_data_objects() {
     local spec=$1
 
@@ -78,7 +88,14 @@ function count_data_objects() {
 
     local prefix
     prefix=$(rbd info $spec | grep 'block_name_prefix: ' | awk '{ print $NF }')
-    echo $(rados -p $pool ls | grep -c $prefix)
+    rados -p $pool ls | grep -c $prefix
+}
+
+function get_num_clones() {
+    local pool=$1
+
+    rados -p $pool --format=json df |
+        python -c 'import sys, json; print json.load(sys.stdin)["pools"][0]["num_object_clones"]'
 }
 
 ceph osd pool create repdata 24 24
@@ -146,6 +163,12 @@ for pool in rbd rbdnonzero; do
     done
 done
 
+[[ $(get_num_clones rbd) -eq 0 ]]
+[[ $(get_num_clones repdata) -eq 0 ]]
+[[ $(get_num_clones ecdata) -eq 0 ]]
+[[ $(get_num_clones rbdnonzero) -eq 0 ]]
+[[ $(get_num_clones clonesonly) -eq 0 ]]
+
 for pool in rbd rbdnonzero; do
     for i in {0..3}; do
         compare $pool/img$i $OBJECT_X
@@ -161,10 +184,16 @@ for pool in rbd rbdnonzero; do
 done
 
 # mkfs should discard some objects everywhere but in clonesonly
-[[ $(rados -p rbd ls | wc -l) -lt $((NUM_META_RBDS + 5 * NUM_OBJECTS)) ]]
-[[ $(rados -p repdata ls | wc -l) -lt $((1 + 14 * NUM_OBJECTS)) ]]
-[[ $(rados -p ecdata ls | wc -l) -lt $((1 + 14 * NUM_OBJECTS)) ]]
-[[ $(rados -p rbdnonzero ls | wc -l) -lt $((NUM_META_RBDS + 5 * NUM_OBJECTS)) ]]
-[[ $(rados -p clonesonly ls | wc -l) -eq $((NUM_META_CLONESONLY + 6 * NUM_OBJECTS)) ]]
+[[ $(list_HEADs rbd | wc -l) -lt $((NUM_META_RBDS + 5 * NUM_OBJECTS)) ]]
+[[ $(list_HEADs repdata | wc -l) -lt $((1 + 14 * NUM_OBJECTS)) ]]
+[[ $(list_HEADs ecdata | wc -l) -lt $((1 + 14 * NUM_OBJECTS)) ]]
+[[ $(list_HEADs rbdnonzero | wc -l) -lt $((NUM_META_RBDS + 5 * NUM_OBJECTS)) ]]
+[[ $(list_HEADs clonesonly | wc -l) -eq $((NUM_META_CLONESONLY + 6 * NUM_OBJECTS)) ]]
+
+[[ $(get_num_clones rbd) -eq $NUM_OBJECTS ]]
+[[ $(get_num_clones repdata) -eq $((2 * NUM_OBJECTS)) ]]
+[[ $(get_num_clones ecdata) -eq $((2 * NUM_OBJECTS)) ]]
+[[ $(get_num_clones rbdnonzero) -eq $NUM_OBJECTS ]]
+[[ $(get_num_clones clonesonly) -eq 0 ]]
 
 echo OK