From: Ali Maredia Date: Tue, 12 Jan 2016 23:22:46 +0000 (-0500) Subject: cmake: shell scripts in test/mon passing in cmake X-Git-Tag: v10.2.0~27^2~54 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5d4d3ff704e07b6b5da4697d42cac793ddafefe8;p=ceph.git cmake: shell scripts in test/mon passing in cmake Replaced relative paths in shell scripts in test/mon to work with CEPH_FOO environment variables set in cmake, added CMakelists.txt to test/mon Signed-off-by: Ali Maredia --- diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index f72a7c8d8e21..d5e66758dfa4 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -616,24 +616,6 @@ set_target_properties(ceph_test_msgr PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) target_link_libraries(ceph_test_msgr os global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS}) -# ceph_test_mon_workloadgen -add_executable(ceph_test_mon_workloadgen - mon/test_mon_workloadgen.cc - ) -target_link_libraries(ceph_test_mon_workloadgen - os - osdc - global - ${EXTRALIBS} - ${CMAKE_DL_LIBS} - ) - -#test_mon_msg -add_executable(ceph_test_mon_msg mon/test-mon-msg.cc) -set_target_properties(ceph_test_mon_msg PROPERTIES COMPILE_FLAGS - ${UNITTEST_CXX_FLAGS}) -target_link_libraries(ceph_test_mon_msg os osdc global ${UNITTEST_LIBS}) - #ceph_perf_local add_executable(ceph_perf_local perf_local.cc @@ -1167,6 +1149,7 @@ add_dependencies(check ceph-osd ceph-dencoder ceph-objectstore-tool + ceph-monstore-tool osdmaptool rbd radosgw-admin) @@ -1417,29 +1400,7 @@ add_executable(unittest_mds_sessionfilter EXCLUDE_FROM_ALL add_ceph_unittest(unittest_mds_sessionfilter ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mds_sessionfilter) target_link_libraries(unittest_mds_sessionfilter mds osdc common global ${BLKID_LIBRARIES}) -#mon directory -add_ceph_test(misc.sh ${CMAKE_SOURCE_DIR}/src/test/mon/misc.sh) -add_ceph_test(mkfs.sh ${CMAKE_SOURCE_DIR}/src/test/mon/mkfs.sh) -add_ceph_test(mon-handle-forward.sh ${CMAKE_SOURCE_DIR}/src/test/mon/mon-handle-forward.sh) -add_ceph_test(mon-ping.sh ${CMAKE_SOURCE_DIR}/src/test/mon/mon-ping.sh) -add_ceph_test(mon-scrub.sh ${CMAKE_SOURCE_DIR}/src/test/mon/mon-scrub.sh) -add_ceph_test(osd-crush.sh ${CMAKE_SOURCE_DIR}/src/test/mon/osd-crush.sh) -add_ceph_test(osd-erasure-code-profile.sh ${CMAKE_SOURCE_DIR}/src/test/mon/osd-erasure-code-profile.sh) -add_ceph_test(osd-pool-create.sh ${CMAKE_SOURCE_DIR}/src/test/mon/osd-pool-create.sh) - -# unittest_mon_moncap -add_executable(unittest_mon_moncap EXCLUDE_FROM_ALL - mon/moncap.cc - ) -add_ceph_unittest(unittest_mon_moncap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mon_moncap) -target_link_libraries(unittest_mon_moncap mon global) - -# unittest_mon_pgmap -add_executable(unittest_mon_pgmap EXCLUDE_FROM_ALL - mon/PGMap.cc - ) -add_ceph_unittest(unittest_mon_pgmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mon_pgmap) -target_link_libraries(unittest_mon_pgmap mon global) +add_subdirectory(mon) #objectstore directory diff --git a/src/test/mon/CMakeLists.txt b/src/test/mon/CMakeLists.txt new file mode 100644 index 000000000000..7474b41d9d81 --- /dev/null +++ b/src/test/mon/CMakeLists.txt @@ -0,0 +1,45 @@ +# ceph_test_mon_workloadgen +add_executable(ceph_test_mon_workloadgen + test_mon_workloadgen.cc + ) +target_link_libraries(ceph_test_mon_workloadgen + os + osdc + global + ${EXTRALIBS} + ${CMAKE_DL_LIBS} + ) + +# ceph_test_mon_msg +add_executable(ceph_test_mon_msg + test-mon-msg.cc + ) +target_link_libraries(ceph_test_mon_msg os osdc global ${UNITTEST_LIBS}) +set_target_properties(ceph_test_mon_msg PROPERTIES COMPILE_FLAGS + ${UNITTEST_CXX_FLAGS}) + +#scripts +add_ceph_test(misc.sh ${CMAKE_CURRENT_SOURCE_DIR}/misc.sh) +add_ceph_test(mkfs.sh ${CMAKE_CURRENT_SOURCE_DIR}/mkfs.sh) +add_ceph_test(mon-created-time.sh ${CMAKE_CURRENT_SOURCE_DIR}/mon-created-time.sh) +add_ceph_test(mon-handle-forward.sh ${CMAKE_CURRENT_SOURCE_DIR}/mon-handle-forward.sh) +add_ceph_test(mon-ping.sh ${CMAKE_CURRENT_SOURCE_DIR}/mon-ping.sh) +add_ceph_test(mon-scrub.sh ${CMAKE_CURRENT_SOURCE_DIR}/mon-scrub.sh) +add_ceph_test(osd-crush.sh ${CMAKE_CURRENT_SOURCE_DIR}/osd-crush.sh) +add_ceph_test(osd-erasure-code-profile.sh ${CMAKE_CURRENT_SOURCE_DIR}/osd-erasure-code-profile.sh) +add_ceph_test(osd-pool-create.sh ${CMAKE_CURRENT_SOURCE_DIR}/osd-pool-create.sh) + +# unittest_mon_moncap +add_executable(unittest_mon_moncap EXCLUDE_FROM_ALL + moncap.cc + ) +add_ceph_unittest(unittest_mon_moncap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mon_moncap) +target_link_libraries(unittest_mon_moncap mon global) + +# unittest_mon_pgmap +add_executable(unittest_mon_pgmap EXCLUDE_FROM_ALL + PGMap.cc + ) +add_ceph_unittest(unittest_mon_pgmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mon_pgmap) +target_link_libraries(unittest_mon_pgmap mon global) + diff --git a/src/test/mon/misc.sh b/src/test/mon/misc.sh index 1f8f755d2fa8..53f7bff24091 100755 --- a/src/test/mon/misc.sh +++ b/src/test/mon/misc.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 diff --git a/src/test/mon/mkfs.sh b/src/test/mon/mkfs.sh index f165fc6a81ec..270736cd36bb 100755 --- a/src/test/mon/mkfs.sh +++ b/src/test/mon/mkfs.sh @@ -39,11 +39,11 @@ function teardown() { function mon_mkfs() { local fsid=$(uuidgen) - ./ceph-mon \ + ceph-mon \ --id $MON_ID \ --fsid $fsid \ - --erasure-code-dir=.libs \ - --compression-dir=.libs \ + --erasure-code-dir=$CEPH_LIB \ + --compression-dir=$CEPH_LIB \ --mkfs \ --mon-data=$MON_DIR \ --mon-initial-members=$MON_ID \ @@ -52,13 +52,13 @@ function mon_mkfs() { } function mon_run() { - ./ceph-mon \ + ceph-mon \ --id $MON_ID \ --chdir= \ --mon-osd-full-ratio=.99 \ --mon-data-avail-crit=1 \ - --erasure-code-dir=.libs \ - --compression-dir=.libs \ + --erasure-code-dir=$CEPH_LIB \ + --compression-dir=$CEPH_LIB \ --mon-data=$MON_DIR \ --log-file=$MON_DIR/log \ --mon-cluster-log-file=$MON_DIR/log \ @@ -81,12 +81,12 @@ function kill_daemons() { function auth_none() { mon_mkfs --auth-supported=none - ./ceph-mon \ + ceph-mon \ --id $MON_ID \ --mon-osd-full-ratio=.99 \ --mon-data-avail-crit=1 \ - --erasure-code-dir=.libs \ - --compression-dir=.libs \ + --erasure-code-dir=$CEPH_LIB \ + --compression-dir=$CEPH_LIB \ --mon-data=$MON_DIR \ --extract-monmap $MON_DIR/monmap @@ -96,7 +96,7 @@ function auth_none() { mon_run --auth-supported=none - timeout $TIMEOUT ./ceph --mon-host $CEPH_MON mon stat || return 1 + timeout $TIMEOUT ceph --mon-host $CEPH_MON mon stat || return 1 } function auth_cephx_keyring() { @@ -112,7 +112,7 @@ EOF mon_run - timeout $TIMEOUT ./ceph \ + timeout $TIMEOUT ceph \ --name mon. \ --keyring $MON_DIR/keyring \ --mon-host $CEPH_MON mon stat || return 1 @@ -124,7 +124,7 @@ function auth_cephx_key() { return 1 fi - local key=$(./ceph-authtool --gen-print-key) + local key=$(ceph-authtool --gen-print-key) if mon_mkfs --key='corrupted key' ; then return 1 @@ -139,7 +139,7 @@ function auth_cephx_key() { mon_run - timeout $TIMEOUT ./ceph \ + timeout $TIMEOUT ceph \ --name mon. \ --keyring $MON_DIR/keyring \ --mon-host $CEPH_MON mon stat || return 1 @@ -149,12 +149,12 @@ function makedir() { local toodeep=$MON_DIR/toodeep # fail if recursive directory creation is needed - ./ceph-mon \ + ceph-mon \ --id $MON_ID \ --mon-osd-full-ratio=.99 \ --mon-data-avail-crit=1 \ - --erasure-code-dir=.libs \ - --compression-dir=.libs \ + --compression-dir=$CEPH_LIB \ + --erasure-code-dir=$CEPH_LIB \ --mkfs \ --mon-data=$toodeep 2>&1 | tee $DIR/makedir.log grep 'toodeep.*No such file' $DIR/makedir.log > /dev/null diff --git a/src/test/mon/mon-created-time.sh b/src/test/mon/mon-created-time.sh index b4f7d1a78872..0022a23f9f2d 100755 --- a/src/test/mon/mon-created-time.sh +++ b/src/test/mon/mon-created-time.sh @@ -12,7 +12,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -36,13 +36,13 @@ function TEST_mon_created_time() { run_mon $dir a || return 1 - ./ceph mon dump || return 1 + ceph mon dump || return 1 - if test "$(./ceph mon dump 2>/dev/null | sed -n '/created/p' | awk '{print $NF}')"x = ""x ; then + if test "$(ceph mon dump 2>/dev/null | sed -n '/created/p' | awk '{print $NF}')"x = ""x ; then return 1 fi - if test "$(./ceph mon dump 2>/dev/null | sed -n '/created/p' | awk '{print $NF}')"x = "0.000000"x ; then + if test "$(ceph mon dump 2>/dev/null | sed -n '/created/p' | awk '{print $NF}')"x = "0.000000"x ; then return 1 fi } diff --git a/src/test/mon/mon-handle-forward.sh b/src/test/mon/mon-handle-forward.sh index 18f6db532bad..f10e6e54be13 100755 --- a/src/test/mon/mon-handle-forward.sh +++ b/src/test/mon/mon-handle-forward.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -33,21 +33,21 @@ function run() { run_mon $dir b --public-addr $MONB || return 1 ) - timeout 360 ./ceph --mon-host $MONA mon stat || return 1 + timeout 360 ceph --mon-host $MONA mon stat || return 1 # check that MONB is indeed a peon - ./ceph --admin-daemon $dir/ceph-mon.b.asok mon_status | + ceph --admin-daemon $dir/ceph-mon.b.asok mon_status | grep '"peon"' || return 1 # when the leader ( MONA ) is used, there is no message forwarding - ./ceph --mon-host $MONA osd pool create POOL1 12 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + ceph --mon-host $MONA osd pool create POOL1 12 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep 'mon_command(.*"POOL1"' $dir/a/mon.a.log - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.b.asok log flush || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.b.asok log flush || return 1 grep 'mon_command(.*"POOL1"' $dir/mon.b.log && return 1 # when the peon ( MONB ) is used, the message is forwarded to the leader - ./ceph --mon-host $MONB osd pool create POOL2 12 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.b.asok log flush || return 1 + ceph --mon-host $MONB osd pool create POOL2 12 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.b.asok log flush || return 1 grep 'forward_request.*mon_command(.*"POOL2"' $dir/mon.b.log - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep ' forward(mon_command(.*"POOL2"' $dir/mon.a.log # forwarded messages must retain features from the original connection features=$(sed -n -e 's|.*127.0.0.1:0.*accept features \([0-9][0-9]*\)|\1|p' < \ diff --git a/src/test/mon/mon-ping.sh b/src/test/mon/mon-ping.sh index c27dc7b9bd28..d3adf5c55d31 100755 --- a/src/test/mon/mon-ping.sh +++ b/src/test/mon/mon-ping.sh @@ -12,7 +12,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -36,7 +36,7 @@ function TEST_mon_ping() { run_mon $dir a || return 1 - ./ceph ping mon.a || return 1 + ceph ping mon.a || return 1 } main mon-ping "$@" diff --git a/src/test/mon/mon-scrub.sh b/src/test/mon/mon-scrub.sh index b8698393a70b..b4205392d66a 100755 --- a/src/test/mon/mon-scrub.sh +++ b/src/test/mon/mon-scrub.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -39,7 +39,7 @@ function TEST_mon_scrub() { run_mon $dir a || return 1 - ./ceph mon scrub || return 1 + ceph mon scrub || return 1 } main mon-scrub "$@" diff --git a/src/test/mon/osd-crush.sh b/src/test/mon/osd-crush.sh index 4dbbd0442d91..787fefb5da59 100755 --- a/src/test/mon/osd-crush.sh +++ b/src/test/mon/osd-crush.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -39,20 +39,20 @@ function TEST_crush_rule_create_simple() { run_mon $dir a || return 1 - ./ceph --format xml osd crush rule dump replicated_ruleset | \ + ceph --format xml osd crush rule dump replicated_ruleset | \ egrep 'take[^<]+default' | \ grep 'choose_firstn0osd' || return 1 local ruleset=ruleset0 local root=host1 - ./ceph osd crush add-bucket $root host + ceph osd crush add-bucket $root host local failure_domain=osd - ./ceph osd crush rule create-simple $ruleset $root $failure_domain || return 1 - ./ceph osd crush rule create-simple $ruleset $root $failure_domain 2>&1 | \ + ceph osd crush rule create-simple $ruleset $root $failure_domain || return 1 + ceph osd crush rule create-simple $ruleset $root $failure_domain 2>&1 | \ grep "$ruleset already exists" || return 1 - ./ceph --format xml osd crush rule dump $ruleset | \ + ceph --format xml osd crush rule dump $ruleset | \ egrep 'take[^<]+'$root'' | \ grep 'choose_firstn0'$failure_domain'' || return 1 - ./ceph osd crush rule rm $ruleset || return 1 + ceph osd crush rule rm $ruleset || return 1 } function TEST_crush_rule_dump() { @@ -61,14 +61,14 @@ function TEST_crush_rule_dump() { run_mon $dir a || return 1 local ruleset=ruleset1 - ./ceph osd crush rule create-erasure $ruleset || return 1 + ceph osd crush rule create-erasure $ruleset || return 1 local expected expected="$ruleset" - ./ceph --format xml osd crush rule dump $ruleset | grep $expected || return 1 + ceph --format xml osd crush rule dump $ruleset | grep $expected || return 1 expected='"rule_name": "'$ruleset'"' - ./ceph osd crush rule dump | grep "$expected" || return 1 - ! ./ceph osd crush rule dump non_existent_ruleset || return 1 - ./ceph osd crush rule rm $ruleset || return 1 + ceph osd crush rule dump | grep "$expected" || return 1 + ! ceph osd crush rule dump non_existent_ruleset || return 1 + ceph osd crush rule rm $ruleset || return 1 } function TEST_crush_rule_rm() { @@ -76,10 +76,10 @@ function TEST_crush_rule_rm() { run_mon $dir a || 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 - ! ./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 + ! ceph osd crush rule ls | grep $ruleset || return 1 } function TEST_crush_rule_create_erasure() { @@ -93,32 +93,32 @@ function TEST_crush_rule_create_erasure() { # # create a new ruleset with the default profile, implicitly # - ./ceph osd crush rule create-erasure $ruleset || return 1 - ./ceph osd crush rule create-erasure $ruleset 2>&1 | \ + 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 | \ + 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 rm $ruleset || return 1 + ! ceph osd crush rule ls | grep $ruleset || return 1 # # create a new ruleset with the default profile, explicitly # - ./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 + 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 # # create a new ruleset and the default profile, implicitly # - ./ceph osd erasure-code-profile rm default || return 1 - ! ./ceph osd erasure-code-profile ls | grep default || return 1 - ./ceph osd crush rule create-erasure $ruleset || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + ceph osd erasure-code-profile rm default || return 1 + ! ceph osd erasure-code-profile ls | grep default || return 1 + ceph osd crush rule create-erasure $ruleset || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep 'profile set default' $dir/mon.a.log || return 1 - ./ceph osd erasure-code-profile ls | grep default || return 1 - ./ceph osd crush rule rm $ruleset || return 1 - ! ./ceph osd crush rule ls | grep $ruleset || return 1 + ceph osd erasure-code-profile ls | grep default || return 1 + ceph osd crush rule rm $ruleset || return 1 + ! ceph osd crush rule ls | grep $ruleset || return 1 # # verify that if the crushmap contains a bugous ruleset, # it will prevent the creation of a pool. @@ -127,32 +127,32 @@ function TEST_crush_rule_create_erasure() { ceph tell mon.\* injectargs --crushtool "false" expect_failure $dir "Error EINVAL" \ - ./ceph osd pool create mypool 1 1 erasure || return 1 + ceph osd pool create mypool 1 1 erasure || return 1 } function check_ruleset_id_match_rule_id() { local rule_name=$1 - rule_id=`./ceph osd crush rule dump $rule_name | grep "\"rule_id\":" | awk -F ":|," '{print int($2)}'` - ruleset_id=`./ceph osd crush rule dump $rule_name | grep "\"ruleset\":"| awk -F ":|," '{print int($2)}'` + rule_id=`ceph osd crush rule dump $rule_name | grep "\"rule_id\":" | awk -F ":|," '{print int($2)}'` + ruleset_id=`ceph osd crush rule dump $rule_name | grep "\"ruleset\":"| awk -F ":|," '{print int($2)}'` test $ruleset_id = $rule_id || return 1 } function generate_manipulated_rules() { local dir=$1 - ./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 getcrushmap -o $dir/original_map - ./crushtool -d $dir/original_map -o $dir/decoded_original_map + 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 getcrushmap -o $dir/original_map + crushtool -d $dir/original_map -o $dir/decoded_original_map #manipulate the rulesets , to make the rule_id != ruleset_id sed -i 's/ruleset 0/ruleset 3/' $dir/decoded_original_map sed -i 's/ruleset 2/ruleset 0/' $dir/decoded_original_map sed -i 's/ruleset 1/ruleset 2/' $dir/decoded_original_map - ./crushtool -c $dir/decoded_original_map -o $dir/new_map - ./ceph osd setcrushmap -i $dir/new_map + crushtool -c $dir/decoded_original_map -o $dir/new_map + ceph osd setcrushmap -i $dir/new_map - ./ceph osd crush rule dump + ceph osd crush rule dump } function TEST_crush_ruleset_match_rule_when_creating() { @@ -164,9 +164,9 @@ function TEST_crush_ruleset_match_rule_when_creating() { generate_manipulated_rules $dir - ./ceph osd crush rule create-simple special_rule_simple $root osd firstn || return 1 + ceph osd crush rule create-simple special_rule_simple $root osd firstn || return 1 - ./ceph osd crush rule dump + ceph osd crush rule dump #show special_rule_simple has same rule_id and ruleset_id check_ruleset_id_match_rule_id special_rule_simple || return 1 } @@ -178,11 +178,11 @@ function TEST_add_ruleset_failed() { local root=host1 - ./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 getcrushmap > $dir/crushmap || return 1 - ./crushtool --decompile $dir/crushmap > $dir/crushmap.txt || return 1 + 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 getcrushmap > $dir/crushmap || return 1 + crushtool --decompile $dir/crushmap > $dir/crushmap.txt || return 1 for i in $(seq 3 255) do cat <> $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 + 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 } @@ -208,12 +208,12 @@ function TEST_crush_rename_bucket() { run_mon $dir a || return 1 - ./ceph osd crush add-bucket host1 host - ! ./ceph osd tree | grep host2 || return 1 - ./ceph osd crush rename-bucket host1 host2 || return 1 - ./ceph osd tree | grep host2 || return 1 - ./ceph osd crush rename-bucket host1 host2 || return 1 # idempotency - ./ceph osd crush rename-bucket nonexistent something 2>&1 | grep "Error ENOENT" || return 1 + ceph osd crush add-bucket host1 host + ! ceph osd tree | grep host2 || return 1 + ceph osd crush rename-bucket host1 host2 || return 1 + ceph osd tree | grep host2 || return 1 + ceph osd crush rename-bucket host1 host2 || return 1 # idempotency + ceph osd crush rename-bucket nonexistent something 2>&1 | grep "Error ENOENT" || return 1 } function TEST_crush_reject_empty() { @@ -224,17 +224,17 @@ function TEST_crush_reject_empty() { local empty_map=$dir/empty_map :> $empty_map.txt - ./crushtool -c $empty_map.txt -o $empty_map.map || return 1 + crushtool -c $empty_map.txt -o $empty_map.map || return 1 expect_failure $dir "Error EINVAL" \ - ./ceph osd setcrushmap -i $empty_map.map || return 1 + ceph osd setcrushmap -i $empty_map.map || return 1 } function TEST_crush_tree() { local dir=$1 run_mon $dir a || return 1 - ./ceph osd crush tree --format=xml | \ - $XMLSTARLET val -e -r test/mon/osd-crush-tree.rng - || return 1 + ceph osd crush tree --format=xml | \ + $XMLSTARLET val -e -r $CEPH_ROOT/src/test/mon/osd-crush-tree.rng - || return 1 } # NB: disable me if i am too time consuming @@ -254,7 +254,7 @@ function TEST_crush_repair_faulty_crushmap() { local empty_map=$dir/empty_map :> $empty_map.txt - ./crushtool -c $empty_map.txt -o $empty_map.map || return 1 + crushtool -c $empty_map.txt -o $empty_map.map || return 1 local crushtool_path_old=`ceph-conf --show-config-value crushtool` ceph tell mon.\* injectargs --crushtool "true" @@ -267,7 +267,7 @@ function TEST_crush_repair_faulty_crushmap() { # vain, after mon.a is offline kill_daemons $dir || return 1 # rewrite the monstore with the good crush map, - ./tools/ceph-monstore-update-crush.sh --rewrite $dir/a || return 1 + $CEPH_ROOT/src/tools/ceph-monstore-update-crush.sh --rewrite $dir/a || return 1 run_mon $dir a --public-addr $MONA || return 1 run_mon $dir b --public-addr $MONB || return 1 diff --git a/src/test/mon/osd-erasure-code-profile.sh b/src/test/mon/osd-erasure-code-profile.sh index 8e9491f4558d..65c410ad7181 100755 --- a/src/test/mon/osd-erasure-code-profile.sh +++ b/src/test/mon/osd-erasure-code-profile.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -44,27 +44,27 @@ function TEST_set() { # # no key=value pairs : use the default configuration # - ./ceph osd erasure-code-profile set $profile 2>&1 || return 1 - ./ceph osd erasure-code-profile get $profile | \ + ceph osd erasure-code-profile set $profile 2>&1 || return 1 + ceph osd erasure-code-profile get $profile | \ grep plugin=jerasure || return 1 - ./ceph osd erasure-code-profile rm $profile + ceph osd erasure-code-profile rm $profile # # key=value pairs override the default # - ./ceph osd erasure-code-profile set $profile \ + ceph osd erasure-code-profile set $profile \ key=value plugin=example || return 1 - ./ceph osd erasure-code-profile get $profile | \ + ceph osd erasure-code-profile get $profile | \ grep -e key=value -e plugin=example || return 1 # # --force is required to override an existing profile # - ! ./ceph osd erasure-code-profile set $profile > $dir/out 2>&1 || return 1 + ! ceph osd erasure-code-profile set $profile > $dir/out 2>&1 || return 1 grep 'will not override' $dir/out || return 1 - ./ceph osd erasure-code-profile set $profile key=other --force || return 1 - ./ceph osd erasure-code-profile get $profile | \ + ceph osd erasure-code-profile set $profile key=other --force || return 1 + ceph osd erasure-code-profile get $profile | \ grep key=other || return 1 - ./ceph osd erasure-code-profile rm $profile # cleanup + ceph osd erasure-code-profile rm $profile # cleanup } function TEST_ls() { @@ -74,13 +74,13 @@ function TEST_ls() { run_mon $dir a || return 1 local profile=myprofile - ! ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile set $profile 2>&1 || return 1 - ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph --format xml osd erasure-code-profile ls | \ + ! ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile set $profile 2>&1 || return 1 + ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph --format xml osd erasure-code-profile ls | \ grep "$profile" || return 1 - ./ceph osd erasure-code-profile rm $profile # cleanup + ceph osd erasure-code-profile rm $profile # cleanup } function TEST_rm() { @@ -90,21 +90,21 @@ function TEST_rm() { run_mon $dir a || return 1 local profile=myprofile - ./ceph osd erasure-code-profile set $profile 2>&1 || return 1 - ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile rm $profile || return 1 - ! ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile rm WRONG 2>&1 | \ + ceph osd erasure-code-profile set $profile 2>&1 || return 1 + ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile rm $profile || return 1 + ! ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile rm WRONG 2>&1 | \ grep "WRONG does not exist" || return 1 - ./ceph osd erasure-code-profile set $profile || return 1 - ./ceph osd pool create poolname 12 12 erasure $profile || return 1 - ! ./ceph osd erasure-code-profile rm $profile > $dir/out 2>&1 || return 1 + ceph osd erasure-code-profile set $profile || return 1 + ceph osd pool create poolname 12 12 erasure $profile || return 1 + ! ceph osd erasure-code-profile rm $profile > $dir/out 2>&1 || return 1 grep "poolname.*using.*$profile" $dir/out || return 1 - ./ceph osd pool delete poolname poolname --yes-i-really-really-mean-it || return 1 - ./ceph osd erasure-code-profile rm $profile || return 1 + ceph osd pool delete poolname poolname --yes-i-really-really-mean-it || return 1 + ceph osd erasure-code-profile rm $profile || return 1 - ./ceph osd erasure-code-profile rm $profile # cleanup + ceph osd erasure-code-profile rm $profile # cleanup } function TEST_get() { @@ -114,11 +114,11 @@ function TEST_get() { run_mon $dir a || return 1 local default_profile=default - ./ceph osd erasure-code-profile get $default_profile | \ + ceph osd erasure-code-profile get $default_profile | \ grep plugin=jerasure || return 1 - ./ceph --format xml osd erasure-code-profile get $default_profile | \ + ceph --format xml osd erasure-code-profile get $default_profile | \ grep 'jerasure' || return 1 - ! ./ceph osd erasure-code-profile get WRONG > $dir/out 2>&1 || return 1 + ! ceph osd erasure-code-profile get WRONG > $dir/out 2>&1 || return 1 grep -q "unknown erasure code profile 'WRONG'" $dir/out || return 1 } @@ -132,7 +132,7 @@ function TEST_set_idempotent() { # ceph osd erasure-code-profile set: verify that it is idempotent, # as if it was using the same code path. # - ./ceph osd erasure-code-profile set default k=2 m=1 2>&1 || return 1 + ceph osd erasure-code-profile set default k=2 m=1 2>&1 || return 1 local profile # # Because plugin=jerasure is the default, it uses a slightly @@ -140,21 +140,21 @@ function TEST_set_idempotent() { # implicitly. # profile=profileidempotent1 - ! ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile set $profile k=2 ruleset-failure-domain=osd 2>&1 || return 1 - ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile set $profile k=2 ruleset-failure-domain=osd 2>&1 || return 1 - ./ceph osd erasure-code-profile rm $profile # cleanup + ! ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile set $profile k=2 ruleset-failure-domain=osd 2>&1 || return 1 + ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile set $profile k=2 ruleset-failure-domain=osd 2>&1 || return 1 + ceph osd erasure-code-profile rm $profile # cleanup # # In the general case the profile is exactly what is on # profile=profileidempotent2 - ! ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile set $profile plugin=lrc k=4 m=2 l=3 ruleset-failure-domain=osd 2>&1 || return 1 - ./ceph osd erasure-code-profile ls | grep $profile || return 1 - ./ceph osd erasure-code-profile set $profile plugin=lrc k=4 m=2 l=3 ruleset-failure-domain=osd 2>&1 || return 1 - ./ceph osd erasure-code-profile rm $profile # cleanup + ! ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile set $profile plugin=lrc k=4 m=2 l=3 ruleset-failure-domain=osd 2>&1 || return 1 + ceph osd erasure-code-profile ls | grep $profile || return 1 + ceph osd erasure-code-profile set $profile plugin=lrc k=4 m=2 l=3 ruleset-failure-domain=osd 2>&1 || return 1 + ceph osd erasure-code-profile rm $profile # cleanup } function TEST_format_invalid() { @@ -165,7 +165,7 @@ function TEST_format_invalid() { # valid JSON but not of the expected type run_mon $dir a \ --osd_pool_default_erasure-code-profile 1 || return 1 - ! ./ceph osd erasure-code-profile set $profile > $dir/out 2>&1 || return 1 + ! ceph osd erasure-code-profile set $profile > $dir/out 2>&1 || return 1 cat $dir/out grep 'must be a JSON object' $dir/out || return 1 } @@ -177,7 +177,7 @@ function TEST_format_json() { expected='"plugin":"example"' run_mon $dir a \ --osd_pool_default_erasure-code-profile "{$expected}" || return 1 - ./ceph --format json osd erasure-code-profile get default | \ + ceph --format json osd erasure-code-profile get default | \ grep "$expected" || return 1 } @@ -188,7 +188,7 @@ function TEST_format_plain() { expected='"plugin":"example"' run_mon $dir a \ --osd_pool_default_erasure-code-profile "plugin=example" || return 1 - ./ceph --format json osd erasure-code-profile get default | \ + ceph --format json osd erasure-code-profile get default | \ grep "$expected" || return 1 } @@ -199,7 +199,7 @@ function TEST_profile_k_sanity() { run_mon $dir a || return 1 expect_failure $dir 'k must be a multiple of (k + m) / l' \ - ./ceph osd erasure-code-profile set $profile \ + ceph osd erasure-code-profile set $profile \ plugin=lrc \ l=1 \ k=1 \ @@ -207,7 +207,7 @@ function TEST_profile_k_sanity() { if erasure_code_plugin_exists isa ; then expect_failure $dir 'k=1 must be >= 2' \ - ./ceph osd erasure-code-profile set $profile \ + ceph osd erasure-code-profile set $profile \ plugin=isa \ k=1 \ m=1 || return 1 @@ -216,7 +216,7 @@ function TEST_profile_k_sanity() { fi expect_failure $dir 'k=1 must be >= 2' \ - ./ceph osd erasure-code-profile set $profile \ + ceph osd erasure-code-profile set $profile \ plugin=jerasure \ k=1 \ m=1 || return 1 diff --git a/src/test/mon/osd-pool-create.sh b/src/test/mon/osd-pool-create.sh index 0d11a239b96c..4a19d13410b8 100755 --- a/src/test/mon/osd-pool-create.sh +++ b/src/test/mon/osd-pool-create.sh @@ -15,7 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library Public License for more details. # -source ../qa/workunits/ceph-helpers.sh +source $CEPH_ROOT/qa/workunits/ceph-helpers.sh function run() { local dir=$1 @@ -40,9 +40,9 @@ function TEST_default_deprectated_0() { local expected=66 run_mon $dir a \ --osd_pool_default_crush_replicated_ruleset $expected || return 1 - ./ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 - ./ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 + ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 ! grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } @@ -52,9 +52,9 @@ function TEST_default_deprectated_1() { local expected=55 run_mon $dir a \ --osd_pool_default_crush_rule $expected || return 1 - ./ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 - ./ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 + ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } @@ -65,10 +65,10 @@ function TEST_default_deprectated_2() { run_mon $dir a \ --osd_pool_default_crush_rule $expected \ --osd_pool_default_crush_replicated_ruleset $unexpected || return 1 - ./ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 - ! ./ceph --format json osd dump | grep '"crush_ruleset":'$unexpected || return 1 - ./ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + ceph osd pool get rbd crush_ruleset | grep 'ruleset: '$expected || return 1 + ! ceph --format json osd dump | grep '"crush_ruleset":'$unexpected || return 1 + ceph osd crush rule dump replicated_ruleset | grep '"ruleset": '$expected || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } @@ -78,8 +78,8 @@ function TEST_erasure_invalid_profile() { run_mon $dir a || return 1 local poolname=pool_erasure local notaprofile=not-a-valid-erasure-code-profile - ! ./ceph osd pool create $poolname 12 12 erasure $notaprofile || return 1 - ! ./ceph osd erasure-code-profile ls | grep $notaprofile || return 1 + ! ceph osd pool create $poolname 12 12 erasure $notaprofile || return 1 + ! ceph osd erasure-code-profile ls | grep $notaprofile || return 1 } function TEST_erasure_crush_rule() { @@ -89,45 +89,45 @@ function TEST_erasure_crush_rule() { # choose the crush ruleset used with an erasure coded pool # local crush_ruleset=myruleset - ! ./ceph osd crush rule ls | grep $crush_ruleset || return 1 - ./ceph osd crush rule create-erasure $crush_ruleset - ./ceph osd crush rule ls | grep $crush_ruleset + ! ceph osd crush rule ls | grep $crush_ruleset || return 1 + ceph osd crush rule create-erasure $crush_ruleset + ceph osd crush rule ls | grep $crush_ruleset local poolname poolname=pool_erasure1 - ! ./ceph --format json osd dump | grep '"crush_ruleset":1' || return 1 - ./ceph osd pool create $poolname 12 12 erasure default $crush_ruleset - ./ceph --format json osd dump | grep '"crush_ruleset":1' || return 1 + ! ceph --format json osd dump | grep '"crush_ruleset":1' || return 1 + ceph osd pool create $poolname 12 12 erasure default $crush_ruleset + ceph --format json osd dump | grep '"crush_ruleset":1' || return 1 # # a crush ruleset by the name of the pool is implicitly created # poolname=pool_erasure2 - ./ceph osd erasure-code-profile set myprofile - ./ceph osd pool create $poolname 12 12 erasure myprofile - ./ceph osd crush rule ls | grep $poolname || return 1 + ceph osd erasure-code-profile set myprofile + ceph osd pool create $poolname 12 12 erasure myprofile + ceph osd crush rule ls | grep $poolname || return 1 # # a non existent crush ruleset given in argument is an error # http://tracker.ceph.com/issues/9304 # poolname=pool_erasure3 - ! ./ceph osd pool create $poolname 12 12 erasure myprofile INVALIDRULESET || return 1 + ! ceph osd pool create $poolname 12 12 erasure myprofile INVALIDRULESET || return 1 } function TEST_erasure_code_profile_default() { local dir=$1 run_mon $dir a || return 1 - ./ceph osd erasure-code-profile rm default || return 1 - ! ./ceph osd erasure-code-profile ls | grep default || return 1 - ./ceph osd pool create $poolname 12 12 erasure default - ./ceph osd erasure-code-profile ls | grep default || return 1 + ceph osd erasure-code-profile rm default || return 1 + ! ceph osd erasure-code-profile ls | grep default || return 1 + ceph osd pool create $poolname 12 12 erasure default + ceph osd erasure-code-profile ls | grep default || return 1 } function TEST_erasure_crush_stripe_width() { local dir=$1 # the default stripe width is used to initialize the pool run_mon $dir a --public-addr $CEPH_MON - stripe_width=$(./ceph-conf --show-config-value osd_pool_erasure_code_stripe_width) - ./ceph osd pool create pool_erasure 12 12 erasure - ./ceph --format json osd dump | tee $dir/osd.json + stripe_width=$(ceph-conf --show-config-value osd_pool_erasure_code_stripe_width) + ceph osd pool create pool_erasure 12 12 erasure + ceph --format json osd dump | tee $dir/osd.json grep '"stripe_width":'$stripe_width $dir/osd.json > /dev/null || return 1 } @@ -146,24 +146,24 @@ function TEST_erasure_crush_stripe_width_padded() { run_mon $dir a \ --osd_pool_erasure_code_stripe_width $desired_stripe_width \ --osd_pool_default_erasure_code_profile "$profile" || return 1 - ./ceph osd pool create pool_erasure 12 12 erasure - ./ceph osd dump | tee $dir/osd.json + ceph osd pool create pool_erasure 12 12 erasure + ceph osd dump | tee $dir/osd.json grep "stripe_width $actual_stripe_width" $dir/osd.json > /dev/null || return 1 } function TEST_erasure_code_pool() { local dir=$1 run_mon $dir a || return 1 - ./ceph --format json osd dump > $dir/osd.json + ceph --format json osd dump > $dir/osd.json local expected='"erasure_code_profile":"default"' ! grep "$expected" $dir/osd.json || return 1 - ./ceph osd pool create erasurecodes 12 12 erasure - ./ceph --format json osd dump | tee $dir/osd.json + ceph osd pool create erasurecodes 12 12 erasure + ceph --format json osd dump | tee $dir/osd.json grep "$expected" $dir/osd.json > /dev/null || return 1 - ./ceph osd pool create erasurecodes 12 12 erasure 2>&1 | \ + ceph osd pool create erasurecodes 12 12 erasure 2>&1 | \ grep 'already exists' || return 1 - ./ceph osd pool create erasurecodes 12 12 2>&1 | \ + ceph osd pool create erasurecodes 12 12 2>&1 | \ grep 'cannot change to type replicated' || return 1 } @@ -172,18 +172,18 @@ function TEST_replicated_pool_with_ruleset() { run_mon $dir a local ruleset=ruleset0 local root=host1 - ./ceph osd crush add-bucket $root host + ceph osd crush add-bucket $root host local failure_domain=osd local poolname=mypool - ./ceph osd crush rule create-simple $ruleset $root $failure_domain || return 1 - ./ceph osd crush rule ls | grep $ruleset - ./ceph osd pool create $poolname 12 12 replicated $ruleset 2>&1 | \ + ceph osd crush rule create-simple $ruleset $root $failure_domain || return 1 + ceph osd crush rule ls | grep $ruleset + ceph osd pool create $poolname 12 12 replicated $ruleset 2>&1 | \ grep "pool 'mypool' created" || return 1 - rule_id=`./ceph osd crush rule dump $ruleset | grep "rule_id" | awk -F[' ':,] '{print $4}'` - ./ceph osd pool get $poolname crush_ruleset 2>&1 | \ + rule_id=`ceph osd crush rule dump $ruleset | grep "rule_id" | awk -F[' ':,] '{print $4}'` + ceph osd pool get $poolname crush_ruleset 2>&1 | \ grep "crush_ruleset: $rule_id" || return 1 #non-existent crush ruleset - ./ceph osd pool create newpool 12 12 replicated non-existent 2>&1 | \ + ceph osd pool create newpool 12 12 replicated non-existent 2>&1 | \ grep "doesn't exist" || return 1 } @@ -191,11 +191,11 @@ function TEST_replicated_pool_with_non_existent_default_ruleset_0() { local dir=$1 run_mon $dir a || return 1 # change the default crush rule - ./ceph tell mon.a injectargs -- \ + ceph tell mon.a injectargs -- \ --osd_pool_default_crush_replicated_ruleset 66 || return 1 - ./ceph osd pool create mypool 12 12 replicated 2>&1 | \ + ceph osd pool create mypool 12 12 replicated 2>&1 | \ grep "No suitable CRUSH ruleset exists" || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 ! grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } @@ -203,23 +203,23 @@ function TEST_replicated_pool_with_non_existent_default_ruleset_1() { local dir=$1 run_mon $dir a || return 1 # change the default crush rule using deprecated option - ./ceph tell mon.a injectargs -- \ + ceph tell mon.a injectargs -- \ --osd_pool_default_crush_rule 55 || return 1 - ./ceph osd pool create mypool 12 12 replicated 2>&1 | \ + ceph osd pool create mypool 12 12 replicated 2>&1 | \ grep "No suitable CRUSH ruleset exists" || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } function TEST_replicated_pool_with_non_existent_default_ruleset_2() { local dir=$1 run_mon $dir a || return 1 - ./ceph tell mon.a injectargs -- \ + ceph tell mon.a injectargs -- \ --osd_pool_default_crush_rule 77 \ --osd_pool_default_crush_replicated_ruleset 33 || return 1 - ./ceph osd pool create mypool 12 12 replicated 2>&1 | \ + ceph osd pool create mypool 12 12 replicated 2>&1 | \ grep "No suitable CRUSH ruleset exists" || return 1 - CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 + CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1 grep "osd_pool_default_crush_rule is deprecated " $dir/mon.a.log || return 1 } @@ -227,46 +227,46 @@ function TEST_erasure_code_pool_lrc() { local dir=$1 run_mon $dir a || return 1 - ./ceph osd erasure-code-profile set LRCprofile \ + ceph osd erasure-code-profile set LRCprofile \ plugin=lrc \ mapping=DD_ \ layers='[ [ "DDc", "" ] ]' || return 1 - ./ceph --format json osd dump > $dir/osd.json + ceph --format json osd dump > $dir/osd.json local expected='"erasure_code_profile":"LRCprofile"' local poolname=erasurecodes ! grep "$expected" $dir/osd.json || return 1 - ./ceph osd pool create $poolname 12 12 erasure LRCprofile - ./ceph --format json osd dump | tee $dir/osd.json + ceph osd pool create $poolname 12 12 erasure LRCprofile + ceph --format json osd dump | tee $dir/osd.json grep "$expected" $dir/osd.json > /dev/null || return 1 - ./ceph osd crush rule ls | grep $poolname || return 1 + ceph osd crush rule ls | grep $poolname || return 1 } function TEST_replicated_pool() { local dir=$1 run_mon $dir a || return 1 - ./ceph osd pool create replicated 12 12 replicated replicated_ruleset 2>&1 | \ + ceph osd pool create replicated 12 12 replicated replicated_ruleset 2>&1 | \ grep "pool 'replicated' created" || return 1 - ./ceph osd pool create replicated 12 12 replicated replicated_ruleset 2>&1 | \ + ceph osd pool create replicated 12 12 replicated replicated_ruleset 2>&1 | \ grep 'already exists' || return 1 # default is replicated - ./ceph osd pool create replicated1 12 12 2>&1 | \ + ceph osd pool create replicated1 12 12 2>&1 | \ grep "pool 'replicated1' created" || return 1 # default is replicated, pgp_num = pg_num - ./ceph osd pool create replicated2 12 2>&1 | \ + ceph osd pool create replicated2 12 2>&1 | \ grep "pool 'replicated2' created" || return 1 - ./ceph osd pool create replicated 12 12 erasure 2>&1 | \ + ceph osd pool create replicated 12 12 erasure 2>&1 | \ grep 'cannot change to type erasure' || return 1 } function TEST_no_pool_delete() { local dir=$1 run_mon $dir a || return 1 - ./ceph osd pool create foo 1 || return 1 - ./ceph tell mon.a injectargs -- --no-mon-allow-pool-delete || return 1 - ! ./ceph osd pool delete foo foo --yes-i-really-really-mean-it || return 1 - ./ceph tell mon.a injectargs -- --mon-allow-pool-delete || return 1 - ./ceph osd pool delete foo foo --yes-i-really-really-mean-it || return 1 + ceph osd pool create foo 1 || return 1 + ceph tell mon.a injectargs -- --no-mon-allow-pool-delete || return 1 + ! ceph osd pool delete foo foo --yes-i-really-really-mean-it || return 1 + ceph tell mon.a injectargs -- --mon-allow-pool-delete || return 1 + ceph osd pool delete foo foo --yes-i-really-really-mean-it || return 1 } function TEST_utf8_cli() { @@ -276,13 +276,13 @@ function TEST_utf8_cli() { # the fix for http://tracker.ceph.com/issues/7387. If it turns out # to not be OK (when is the default encoding *not* UTF-8?), maybe # the character '黄' can be replaced with the escape $'\xe9\xbb\x84' - ./ceph osd pool create 黄 1024 2>&1 | \ + ceph osd pool create 黄 1024 2>&1 | \ grep "pool '黄' created" || return 1 - ./ceph osd lspools 2>&1 | \ + ceph osd lspools 2>&1 | \ grep "黄" || return 1 - ./ceph -f json-pretty osd dump | \ + ceph -f json-pretty osd dump | \ python -c "import json; import sys; json.load(sys.stdin)" || return 1 - ./ceph osd pool delete 黄 黄 --yes-i-really-really-mean-it + ceph osd pool delete 黄 黄 --yes-i-really-really-mean-it } main osd-pool-create "$@" diff --git a/src/tools/ceph-monstore-update-crush.sh b/src/tools/ceph-monstore-update-crush.sh index 7fc41e062c8b..1508f06ddaf0 100755 --- a/src/tools/ceph-monstore-update-crush.sh +++ b/src/tools/ceph-monstore-update-crush.sh @@ -34,10 +34,10 @@ function osdmap_get() { local epoch=${3:+-v $3} local osdmap=`mktemp` - ceph-monstore-tool $store_path get osdmap -- \ + $CEPH_BIN/ceph-monstore-tool $store_path get osdmap -- \ $epoch -o $osdmap > /dev/null || return - echo $(osdmaptool --dump xml $osdmap 2> /dev/null | \ + echo $($CEPH_BIN/osdmaptool --dump xml $osdmap 2> /dev/null | \ $XMLSTARLET sel -t -m "$query" -v .) rm -f $osdmap @@ -50,11 +50,11 @@ function test_crush() { local crush=$4 local osdmap=`mktemp` - ceph-monstore-tool $store_path get osdmap -- \ + $CEPH_BIN/ceph-monstore-tool $store_path get osdmap -- \ -v $epoch -o $osdmap > /dev/null - osdmaptool --export-crush $crush $osdmap &> /dev/null + $CEPH_BIN/osdmaptool --export-crush $crush $osdmap &> /dev/null - if crushtool --test --check $max_osd -i $crush > /dev/null; then + if $CEPH_BIN/crushtool --test --check $max_osd -i $crush > /dev/null; then good=true else good=false @@ -157,14 +157,14 @@ function main() { if test $good_epoch -eq $last_osdmap_epoch; then echo "and mon store has no faulty crush maps." elif test $output; then - crushtool --decompile $good_crush --outfn $output + $CEPH_BIN/crushtool --decompile $good_crush --outfn $output elif test $rewrite; then - ceph-monstore-tool $store_path rewrite-crush -- \ + $CEPH_BIN/ceph-monstore-tool $store_path rewrite-crush -- \ --crush $good_crush \ --good-epoch $good_epoch else echo - crushtool --decompile $good_crush + $CEPH_BIN/crushtool --decompile $good_crush fi rm -f $good_crush }