]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: split osd-scrub-repair.sh erasure code test
authorLoic Dachary <ldachary@redhat.com>
Thu, 28 May 2015 20:44:17 +0000 (22:44 +0200)
committerLoic Dachary <ldachary@redhat.com>
Thu, 28 May 2015 21:25:19 +0000 (23:25 +0200)
The erasure code repair test is split in two function:

 * setup conditions specific to jerasure (4 osds, jerasure
   profile)

 * populate and corrupt and repair the erasure coded pool,
   with one or two failures.

Signed-off-by: Loic Dachary <ldachary@redhat.com>
src/test/osd/osd-scrub-repair.sh

index 2aab445bfeb07e84b91e8d7d205ca27d3e26e385..6ebbc35485f3506b9b244c52bb0e0ffce8173091 100755 (executable)
@@ -120,22 +120,12 @@ function corrupt_and_repair_one() {
     wait_for_clean || return 1
 }
 
-function TEST_corrupt_and_repair_erasure_coded() {
+function corrupt_and_repair_erasure_coded() {
     local dir=$1
-    local poolname=ecpool
-    local payload=ABCDEF
-
-    setup $dir || return 1
-    run_mon $dir a || return 1
-    run_osd $dir 0 || return 1
-    run_osd $dir 1 || return 1
-    run_osd $dir 2 || return 1
-    run_osd $dir 3 || return 1
-    wait_for_clean || return 1
+    local poolname=$2
+    local profile=$3
 
-    ceph osd erasure-code-profile set myprofile \
-        k=2 m=2 ruleset-failure-domain=osd || return 1
-    ceph osd pool create $poolname 1 1 erasure myprofile \
+    ceph osd pool create $poolname 1 1 erasure $profile \
         || return 1
 
     add_something $dir $poolname
@@ -152,6 +142,28 @@ function TEST_corrupt_and_repair_erasure_coded() {
     corrupt_and_repair_two $dir $poolname $not_primary_first $not_primary_second || return 1
     corrupt_and_repair_two $dir $poolname $primary $not_primary_first || return 1
 
+}
+
+function TEST_corrupt_and_repair_jerasure() {
+    local dir=$1
+    local poolname=ecpool
+    local profile=myprofile
+
+    setup $dir || return 1
+    run_mon $dir a || return 1
+    for id in $(seq 0 3) ; do
+        run_osd $dir $id || return 1
+    done
+    wait_for_clean || return 1
+
+    ceph osd erasure-code-profile set $profile \
+        k=2 m=2 ruleset-failure-domain=osd || return 1
+
+    corrupt_and_repair_erasure_coded $dir $poolname $profile || return 1
+
+    teardown $dir || return 1
+}
+
     teardown $dir || return 1
 }