]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: reduce osd-crush.sh execution time 2341/head
authorLoic Dachary <loic-201408@dachary.org>
Thu, 28 Aug 2014 10:47:03 +0000 (12:47 +0200)
committerLoic Dachary <loic-201408@dachary.org>
Thu, 28 Aug 2014 10:47:03 +0000 (12:47 +0200)
A loop creating 255 crush rulesets via the command line takes
minutes. It is replaced by the generation of a crushmap instead.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
src/test/mon/osd-crush.sh

index 8f39a1a923a8f5541faf2b101d7a1fa486abdc4e..0aa9c9bd3e805c689a2755a58542513950f3738e 100755 (executable)
@@ -192,16 +192,28 @@ function TEST_add_ruleset_failed() {
     ./ceph osd crush add-bucket $root host
     ./ceph osd crush rule create-simple test_rule1 $root osd firstn || return 1
     ./ceph osd crush rule create-simple test_rule2 $root osd firstn || return 1
-    #./ceph osd crush rule rm test_rule1
-    for i in `seq 3 255`
-    do
-      ./ceph osd crush rule create-simple test_rule$i $root osd firstn || return 1
-      Check_ruleset_id_match_rule_id test_rule$i || return 1
-    done
-
+    ./ceph osd getcrushmap > $dir/crushmap || return 1
+    ./crushtool --decompile $dir/crushmap > $dir/crushmap.txt || return 1
+    for i in $(seq 3 255)
+        do
+            cat <<EOF
+rule test_rule$i {
+       ruleset $i
+       type replicated
+       min_size 1
+       max_size 10
+       step take $root
+       step choose firstn 0 type osd
+       step emit
+}
+EOF
+    done >> $dir/crushmap.txt
+    ./crushtool --compile $dir/crushmap.txt -o $dir/crushmap || return 1
+    ./ceph osd setcrushmap -i $dir/crushmap  || return 1
     ./ceph osd crush rule create-simple test_rule_nospace $root osd firstn 2>&1 | grep "Error ENOSPC" || return 1
 
 }
+
 main osd-crush
 
 # Local Variables: