From: Loic Dachary Date: Sun, 16 Mar 2014 15:54:40 +0000 (+0100) Subject: mon: add osd crush create-erasure functional tests X-Git-Tag: v0.79~136^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8cf85f046e0d15bf19f0a53f8e31541ba7ea9cda;p=ceph.git mon: add osd crush create-erasure functional tests Cleanup the TEST_crush_rule_all function from redundant leftovers. Explicitly test crush rule rm instead of implicitly. Signed-off-by: Loic Dachary --- diff --git a/src/test/mon/osd-crush.sh b/src/test/mon/osd-crush.sh index 2e42fa6ce7da..38e2b19f1afb 100755 --- a/src/test/mon/osd-crush.sh +++ b/src/test/mon/osd-crush.sh @@ -66,19 +66,12 @@ function TEST_crush_rule_dump() { ./ceph osd crush rule rm $ruleset || return 1 } -function TEST_crush_rule_all() { - local dir=$1 - local crush_ruleset=erasure2 - ! ./ceph osd crush rule ls | grep $crush_ruleset || return 1 - ./ceph osd crush rule create-erasure $crush_ruleset || return 1 - ./ceph osd crush rule ls | grep $crush_ruleset || return 1 - - ./ceph osd crush rule create-erasure $crush_ruleset || return 1 - - ./ceph osd crush dump | grep $crush_ruleset || return 1 - - ./ceph osd crush rule rm $crush_ruleset || return 1 - ! ./ceph osd crush rule ls | grep $crush_ruleset || return 1 +function TEST_crush_rule_rm() { + local ruleset=erasure2 + ./ceph osd crush rule create-erasure $ruleset default || return 1 + ./ceph osd crush rule ls | grep $ruleset || return 1 + ./ceph osd crush rule rm $ruleset || return 1 + ! ./ceph osd crush rule ls | grep $ruleset || return 1 } function TEST_crush_rule_create_simple_exists() { @@ -94,6 +87,36 @@ function TEST_crush_rule_create_simple_exists() { ./ceph osd crush rule rm $ruleset || return 1 } +function TEST_crush_rule_create_erasure() { + local dir=$1 + ./ceph --format xml osd crush rule dump erasure-code | \ + egrep 'take[^<]+default' | \ + grep 'chooseleaf_indep0host' || return 1 + local ruleset=ruleset3 + ./ceph osd crush rule create-erasure $ruleset || return 1 + ./ceph osd crush rule create-erasure $ruleset 2>&1 | \ + grep "$ruleset already exists" || return 1 + ./ceph --format xml osd crush rule dump $ruleset | \ + egrep 'take[^<]+default' | \ + grep 'chooseleaf_indep0host' || return 1 + ./ceph osd crush rule rm $ruleset || return 1 + ! ./ceph osd crush rule ls | grep $ruleset || return 1 + ./ceph osd crush rule create-erasure $ruleset default || return 1 + ./ceph osd crush rule ls | grep $ruleset || return 1 + ./ceph osd crush rule rm $ruleset || return 1 +} + +function TEST_crush_rule_create_erasure_exists() { + local dir=$1 + local ruleset=ruleset5 + # add to the pending OSD map without triggering a paxos proposal + result=$(echo '{"prefix":"osdmonitor_prepare_command","prepare":"osd crush rule create-erasure","name":"'$ruleset'"}' | nc -U $dir/a/ceph-mon.a.asok | cut --bytes=5-) + test $result = true || return 1 + ./ceph osd crush rule create-erasure $ruleset 2>&1 | \ + grep "$ruleset already exists" || return 1 + ./ceph osd crush rule rm $ruleset || return 1 +} + main osd-crush # Local Variables: