diff options
Diffstat (limited to 'src/ceph/qa/workunits/rados')
19 files changed, 0 insertions, 1391 deletions
diff --git a/src/ceph/qa/workunits/rados/clone.sh b/src/ceph/qa/workunits/rados/clone.sh deleted file mode 100755 index 281e89f..0000000 --- a/src/ceph/qa/workunits/rados/clone.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -x - -set -e - -rados -p data rm foo || true -rados -p data put foo.tmp /etc/passwd --object-locator foo -rados -p data clonedata foo.tmp foo --object-locator foo -rados -p data get foo /tmp/foo -cmp /tmp/foo /etc/passwd -rados -p data rm foo.tmp --object-locator foo -rados -p data rm foo - -echo OK
\ No newline at end of file diff --git a/src/ceph/qa/workunits/rados/load-gen-big.sh b/src/ceph/qa/workunits/rados/load-gen-big.sh deleted file mode 100755 index 6715658..0000000 --- a/src/ceph/qa/workunits/rados/load-gen-big.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rados -p rbd load-gen \ - --num-objects 10240 \ - --min-object-size 1048576 \ - --max-object-size 25600000 \ - --max-ops 1024 \ - --max-backlog 1024 \ - --read-percent 50 \ - --run-length 1200 diff --git a/src/ceph/qa/workunits/rados/load-gen-mix-small-long.sh b/src/ceph/qa/workunits/rados/load-gen-mix-small-long.sh deleted file mode 100755 index 593bad5..0000000 --- a/src/ceph/qa/workunits/rados/load-gen-mix-small-long.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rados -p rbd load-gen \ - --num-objects 1024 \ - --min-object-size 1 \ - --max-object-size 1048576 \ - --max-ops 128 \ - --max-backlog 128 \ - --read-percent 50 \ - --run-length 1800 diff --git a/src/ceph/qa/workunits/rados/load-gen-mix-small.sh b/src/ceph/qa/workunits/rados/load-gen-mix-small.sh deleted file mode 100755 index 02db77b..0000000 --- a/src/ceph/qa/workunits/rados/load-gen-mix-small.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rados -p rbd load-gen \ - --num-objects 1024 \ - --min-object-size 1 \ - --max-object-size 1048576 \ - --max-ops 128 \ - --max-backlog 128 \ - --read-percent 50 \ - --run-length 600 diff --git a/src/ceph/qa/workunits/rados/load-gen-mix.sh b/src/ceph/qa/workunits/rados/load-gen-mix.sh deleted file mode 100755 index ad3b4be..0000000 --- a/src/ceph/qa/workunits/rados/load-gen-mix.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rados -p rbd load-gen \ - --num-objects 10240 \ - --min-object-size 1 \ - --max-object-size 1048576 \ - --max-ops 128 \ - --max-backlog 128 \ - --read-percent 50 \ - --run-length 600 diff --git a/src/ceph/qa/workunits/rados/load-gen-mostlyread.sh b/src/ceph/qa/workunits/rados/load-gen-mostlyread.sh deleted file mode 100755 index 236f82d..0000000 --- a/src/ceph/qa/workunits/rados/load-gen-mostlyread.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rados -p rbd load-gen \ - --num-objects 51200 \ - --min-object-size 1 \ - --max-object-size 1048576 \ - --max-ops 128 \ - --max-backlog 128 \ - --read-percent 90 \ - --run-length 600 diff --git a/src/ceph/qa/workunits/rados/stress_watch.sh b/src/ceph/qa/workunits/rados/stress_watch.sh deleted file mode 100755 index 49f144b..0000000 --- a/src/ceph/qa/workunits/rados/stress_watch.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -e - -ceph_test_stress_watch -ceph_multi_stress_watch rep reppool repobj -ceph_multi_stress_watch ec ecpool ecobj - -exit 0 diff --git a/src/ceph/qa/workunits/rados/test.sh b/src/ceph/qa/workunits/rados/test.sh deleted file mode 100755 index cbf398f..0000000 --- a/src/ceph/qa/workunits/rados/test.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -ex - -parallel=1 -[ "$1" = "--serial" ] && parallel=0 - -color="" -[ -t 1 ] && color="--gtest_color=yes" - -function cleanup() { - pkill -P $$ || true -} -trap cleanup EXIT ERR HUP INT QUIT - -declare -A pids - -for f in \ - api_aio api_io api_list api_lock api_misc \ - api_tier api_pool api_snapshots api_stat api_watch_notify api_cmd \ - api_service \ - api_c_write_operations \ - api_c_read_operations \ - list_parallel \ - open_pools_parallel \ - delete_pools_parallel \ - watch_notify -do - if [ $parallel -eq 1 ]; then - r=`printf '%25s' $f` - bash -o pipefail -exc "ceph_test_rados_$f $color 2>&1 | tee ceph_test_rados_$f.log | sed \"s/^/$r: /\"" & - pid=$! - echo "test $f on pid $pid" - pids[$f]=$pid - else - ceph_test_rados_$f - fi -done - -ret=0 -if [ $parallel -eq 1 ]; then -for t in "${!pids[@]}" -do - pid=${pids[$t]} - if ! wait $pid - then - echo "error in $t ($pid)" - ret=1 - fi -done -fi - -exit $ret diff --git a/src/ceph/qa/workunits/rados/test_alloc_hint.sh b/src/ceph/qa/workunits/rados/test_alloc_hint.sh deleted file mode 100755 index 3e24694..0000000 --- a/src/ceph/qa/workunits/rados/test_alloc_hint.sh +++ /dev/null @@ -1,176 +0,0 @@ -#!/bin/bash - -set -ex -shopt -s nullglob # fns glob expansion in expect_alloc_hint_eq() - -# -# Helpers -# - -function get_xml_val() { - local xml="$1" - local tag="$2" - - local regex=".*<${tag}>(.*)</${tag}>.*" - if [[ ! "${xml}" =~ ${regex} ]]; then - echo "'${xml}' xml doesn't match '${tag}' tag regex" >&2 - return 2 - fi - - echo "${BASH_REMATCH[1]}" -} - -function get_conf_val() { - set -e - - local entity="$1" - local option="$2" - - local val - val="$(sudo ceph daemon "${entity}" config get --format=xml "${option}")" - val="$(get_xml_val "${val}" "${option}")" - - echo "${val}" -} - -function setup_osd_data() { - for (( i = 0 ; i < "${NUM_OSDS}" ; i++ )); do - OSD_DATA[i]="$(get_conf_val "osd.$i" "osd_data")" - done -} - -function setup_pgid() { - local poolname="$1" - local objname="$2" - - local pgid - pgid="$(ceph osd map "${poolname}" "${objname}" --format=xml)" - pgid="$(get_xml_val "${pgid}" "pgid")" - - PGID="${pgid}" -} - -function expect_alloc_hint_eq() { - local expected_extsize="$1" - - for (( i = 0 ; i < "${NUM_OSDS}" ; i++ )); do - # Make sure that stuff is flushed from the journal to the store - # by the time we get to it, as we prod the actual files and not - # the journal. - sudo ceph daemon "osd.${i}" "flush_journal" - - # e.g., .../25.6_head/foo__head_7FC1F406__19 - # .../26.bs1_head/bar__head_EFE6384B__1a_ffffffffffffffff_1 - local fns=$(sudo sh -c "ls ${OSD_DATA[i]}/current/${PGID}*_head/${OBJ}_*") - local count="${#fns[@]}" - if [ "${count}" -ne 1 ]; then - echo "bad fns count: ${count}" >&2 - return 2 - fi - - local extsize - extsize="$(sudo xfs_io -c extsize "${fns[0]}")" - local extsize_regex="^\[(.*)\] ${fns[0]}$" - if [[ ! "${extsize}" =~ ${extsize_regex} ]]; then - echo "extsize doesn't match extsize_regex: ${extsize}" >&2 - return 2 - fi - extsize="${BASH_REMATCH[1]}" - - if [ "${extsize}" -ne "${expected_extsize}" ]; then - echo "FAIL: alloc_hint: actual ${extsize}, expected ${expected_extsize}" >&2 - return 1 - fi - done -} - -# -# Global setup -# - -EC_K="2" -EC_M="1" -NUM_OSDS="$((EC_K + EC_M))" - -NUM_PG="12" -NUM_PGP="${NUM_PG}" - -LOW_CAP="$(get_conf_val "osd.0" "filestore_max_alloc_hint_size")" -HIGH_CAP="$((LOW_CAP * 10))" # 10M, assuming 1M default cap -SMALL_HINT="$((LOW_CAP / 4))" # 256K, assuming 1M default cap -BIG_HINT="$((LOW_CAP * 6))" # 6M, assuming 1M default cap - -setup_osd_data - -# -# ReplicatedBackend tests -# - -POOL="alloc_hint-rep" -ceph osd pool create "${POOL}" "${NUM_PG}" -ceph osd pool set "${POOL}" size "${NUM_OSDS}" -ceph osd pool application enable "${POOL}" rados - -OBJ="foo" -setup_pgid "${POOL}" "${OBJ}" -rados -p "${POOL}" create "${OBJ}" - -# Empty object, SMALL_HINT - expect SMALL_HINT -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${SMALL_HINT}" "${SMALL_HINT}" -expect_alloc_hint_eq "${SMALL_HINT}" - -# Try changing to BIG_HINT (1) - expect LOW_CAP (BIG_HINT > LOW_CAP) -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${BIG_HINT}" "${BIG_HINT}" -expect_alloc_hint_eq "${LOW_CAP}" - -# Bump the cap to HIGH_CAP -ceph tell 'osd.*' injectargs "--filestore_max_alloc_hint_size ${HIGH_CAP}" - -# Try changing to BIG_HINT (2) - expect BIG_HINT (BIG_HINT < HIGH_CAP) -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${BIG_HINT}" "${BIG_HINT}" -expect_alloc_hint_eq "${BIG_HINT}" - -ceph tell 'osd.*' injectargs "--filestore_max_alloc_hint_size ${LOW_CAP}" - -# Populate object with some data -rados -p "${POOL}" put "${OBJ}" /etc/passwd - -# Try changing back to SMALL_HINT - expect BIG_HINT (non-empty object) -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${SMALL_HINT}" "${SMALL_HINT}" -expect_alloc_hint_eq "${BIG_HINT}" - -OBJ="bar" -setup_pgid "${POOL}" "${OBJ}" - -# Non-existent object, SMALL_HINT - expect SMALL_HINT (object creation) -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${SMALL_HINT}" "${SMALL_HINT}" -expect_alloc_hint_eq "${SMALL_HINT}" - -ceph osd pool delete "${POOL}" "${POOL}" --yes-i-really-really-mean-it - -# -# ECBackend tests -# - -PROFILE="alloc_hint-ecprofile" -POOL="alloc_hint-ec" -ceph osd erasure-code-profile set "${PROFILE}" k=2 m=1 crush-failure-domain=osd -ceph osd erasure-code-profile get "${PROFILE}" # just so it's logged -ceph osd pool create "${POOL}" "${NUM_PG}" "${NUM_PGP}" erasure "${PROFILE}" -ceph osd pool application enable "${POOL}" rados - -OBJ="baz" -setup_pgid "${POOL}" "${OBJ}" -rados -p "${POOL}" create "${OBJ}" - -# Empty object, SMALL_HINT - expect scaled-down SMALL_HINT -rados -p "${POOL}" set-alloc-hint "${OBJ}" "${SMALL_HINT}" "${SMALL_HINT}" -expect_alloc_hint_eq "$((SMALL_HINT / EC_K))" - -ceph osd pool delete "${POOL}" "${POOL}" --yes-i-really-really-mean-it - -# -# Global teardown -# - -echo "OK" diff --git a/src/ceph/qa/workunits/rados/test_cache_pool.sh b/src/ceph/qa/workunits/rados/test_cache_pool.sh deleted file mode 100755 index 5975893..0000000 --- a/src/ceph/qa/workunits/rados/test_cache_pool.sh +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/bash -x - -set -e - -expect_false() -{ - set -x - if "$@"; then return 1; else return 0; fi -} - -# create pools, set up tier relationship -ceph osd pool create base_pool 2 -ceph osd pool application enable base_pool rados -ceph osd pool create partial_wrong 2 -ceph osd pool create wrong_cache 2 -ceph osd tier add base_pool partial_wrong -ceph osd tier add base_pool wrong_cache - -# populate base_pool with some data -echo "foo" > foo.txt -echo "bar" > bar.txt -echo "baz" > baz.txt -rados -p base_pool put fooobj foo.txt -rados -p base_pool put barobj bar.txt -# fill in wrong_cache backwards so we can tell we read from it -rados -p wrong_cache put fooobj bar.txt -rados -p wrong_cache put barobj foo.txt -# partial_wrong gets barobj backwards so we can check promote and non-promote -rados -p partial_wrong put barobj foo.txt - -# get the objects back before setting a caching pool -rados -p base_pool get fooobj tmp.txt -diff -q tmp.txt foo.txt -rados -p base_pool get barobj tmp.txt -diff -q tmp.txt bar.txt - -# set up redirect and make sure we get backwards results -ceph osd tier set-overlay base_pool wrong_cache -ceph osd tier cache-mode wrong_cache writeback -rados -p base_pool get fooobj tmp.txt -diff -q tmp.txt bar.txt -rados -p base_pool get barobj tmp.txt -diff -q tmp.txt foo.txt - -# switch cache pools and make sure we're doing promote -ceph osd tier remove-overlay base_pool -ceph osd tier set-overlay base_pool partial_wrong -ceph osd tier cache-mode partial_wrong writeback -rados -p base_pool get fooobj tmp.txt -diff -q tmp.txt foo.txt # hurray, it promoted! -rados -p base_pool get barobj tmp.txt -diff -q tmp.txt foo.txt # yep, we read partial_wrong's local object! - -# try a nonexistent object and make sure we get an error -expect_false rados -p base_pool get bazobj tmp.txt - -# drop the cache entirely and make sure contents are still the same -ceph osd tier remove-overlay base_pool -rados -p base_pool get fooobj tmp.txt -diff -q tmp.txt foo.txt -rados -p base_pool get barobj tmp.txt -diff -q tmp.txt bar.txt - -# create an empty cache pool and make sure it has objects after reading -ceph osd pool create empty_cache 2 - -touch empty.txt -rados -p empty_cache ls > tmp.txt -diff -q tmp.txt empty.txt - -ceph osd tier add base_pool empty_cache -ceph osd tier set-overlay base_pool empty_cache -ceph osd tier cache-mode empty_cache writeback -rados -p base_pool get fooobj tmp.txt -rados -p base_pool get barobj tmp.txt -expect_false rados -p base_pool get bazobj tmp.txt - -rados -p empty_cache ls > tmp.txt -expect_false diff -q tmp.txt empty.txt - -# cleanup -ceph osd tier remove-overlay base_pool -ceph osd tier remove base_pool wrong_cache -ceph osd tier remove base_pool partial_wrong -ceph osd tier remove base_pool empty_cache -ceph osd pool delete base_pool base_pool --yes-i-really-really-mean-it -ceph osd pool delete empty_cache empty_cache --yes-i-really-really-mean-it -ceph osd pool delete wrong_cache wrong_cache --yes-i-really-really-mean-it -ceph osd pool delete partial_wrong partial_wrong --yes-i-really-really-mean-it - -## set of base, cache -ceph osd pool create base 8 -ceph osd pool application enable base rados -ceph osd pool create cache 8 - -ceph osd tier add base cache -ceph osd tier cache-mode cache writeback -ceph osd tier set-overlay base cache - -# cache-flush, cache-evict -rados -p base put foo /etc/passwd -expect_false rados -p base cache-evict foo -expect_false rados -p base cache-flush foo -expect_false rados -p cache cache-evict foo -rados -p cache cache-flush foo -rados -p cache cache-evict foo -rados -p cache ls - | wc -l | grep 0 - -# cache-try-flush, cache-evict -rados -p base put foo /etc/passwd -expect_false rados -p base cache-evict foo -expect_false rados -p base cache-flush foo -expect_false rados -p cache cache-evict foo -rados -p cache cache-try-flush foo -rados -p cache cache-evict foo -rados -p cache ls - | wc -l | grep 0 - -# cache-flush-evict-all -rados -p base put bar /etc/passwd -rados -p cache ls - | wc -l | grep 1 -expect_false rados -p base cache-flush-evict-all -rados -p cache cache-flush-evict-all -rados -p cache ls - | wc -l | grep 0 - -# cache-try-flush-evict-all -rados -p base put bar /etc/passwd -rados -p cache ls - | wc -l | grep 1 -expect_false rados -p base cache-flush-evict-all -rados -p cache cache-try-flush-evict-all -rados -p cache ls - | wc -l | grep 0 - -# cache flush/evit when clone objects exist -rados -p base put testclone /etc/passwd -rados -p cache ls - | wc -l | grep 1 -ceph osd pool mksnap base snap -rados -p base put testclone /etc/hosts -rados -p cache cache-flush-evict-all -rados -p cache ls - | wc -l | grep 0 - -ceph osd tier cache-mode cache forward --yes-i-really-mean-it -rados -p base -s snap get testclone testclone.txt -diff -q testclone.txt /etc/passwd -rados -p base get testclone testclone.txt -diff -q testclone.txt /etc/hosts - -# test --with-clones option -ceph osd tier cache-mode cache writeback -rados -p base put testclone2 /etc/passwd -rados -p cache ls - | wc -l | grep 1 -ceph osd pool mksnap base snap1 -rados -p base put testclone2 /etc/hosts -expect_false rados -p cache cache-flush testclone2 -rados -p cache cache-flush testclone2 --with-clones -expect_false rados -p cache cache-evict testclone2 -rados -p cache cache-evict testclone2 --with-clones -rados -p cache ls - | wc -l | grep 0 - -rados -p base -s snap1 get testclone2 testclone2.txt -diff -q testclone2.txt /etc/passwd -rados -p base get testclone2 testclone2.txt -diff -q testclone2.txt /etc/hosts - -# cleanup -ceph osd tier remove-overlay base -ceph osd tier remove base cache - -ceph osd pool delete cache cache --yes-i-really-really-mean-it -ceph osd pool delete base base --yes-i-really-really-mean-it - -echo OK diff --git a/src/ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh b/src/ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh deleted file mode 100755 index 94580c2..0000000 --- a/src/ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash -ex -############################################ -# Helper functions -############################################ -function install() { - for package in "$@" ; do - install_one $package - done - return 0 -} - -function install_one() { - case $(lsb_release -si) in - Ubuntu|Debian|Devuan) - sudo apt-get install -y --force-yes "$@" - ;; - CentOS|Fedora|RedHatEnterpriseServer) - sudo yum install -y "$@" - ;; - *SUSE*) - sudo zypper --non-interactive install "$@" - ;; - *) - echo "$(lsb_release -si) is unknown, $@ will have to be installed manually." - ;; - esac -} -############################################ -# Install required tools -############################################ -echo "Install required tools" -install git automake - -CURRENT_PATH=`pwd` - -############################################ -# Compile&Start RocksDB -############################################ -# install prerequisites -# for rocksdb -case $(lsb_release -si) in - Ubuntu|Debian|Devuan) - install g++-4.7 libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev librados-dev - ;; - CentOS|Fedora|RedHatEnterpriseServer) - install gcc-c++.x86_64 gflags-devel snappy-devel zlib zlib-devel bzip2 bzip2-devel librados2-devel.x86_64 - ;; - *) - echo "$(lsb_release -si) is unknown, $@ will have to be installed manually." - ;; -esac - -# # gflags -# sudo yum install gflags-devel -# -# wget https://github.com/schuhschuh/gflags/archive/master.zip -# unzip master.zip -# cd gflags-master -# mkdir build && cd build -# export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1 -# make && make install - -# # snappy-devel - - -echo "Compile rocksdb" -if [ -e rocksdb ]; then - rm -fr rocksdb -fi -git clone https://github.com/facebook/rocksdb.git --depth 1 - -# compile code -cd rocksdb -make env_librados_test ROCKSDB_USE_LIBRADOS=1 -j8 - -echo "Copy ceph.conf" -# prepare ceph.conf -mkdir -p ../ceph/src/ -if [ -f "/etc/ceph/ceph.conf" ]; then - cp /etc/ceph/ceph.conf ../ceph/src/ -elif [ -f "/etc/ceph/ceph/ceph.conf" ]; then - cp /etc/ceph/ceph/ceph.conf ../ceph/src/ -else - echo "/etc/ceph/ceph/ceph.conf doesn't exist" -fi - -echo "Run EnvLibrados test" -# run test -if [ -f "../ceph/src/ceph.conf" ] - then - cp env_librados_test ~/cephtest/archive - ./env_librados_test -else - echo "../ceph/src/ceph.conf doesn't exist" -fi -cd ${CURRENT_PATH} diff --git a/src/ceph/qa/workunits/rados/test_hang.sh b/src/ceph/qa/workunits/rados/test_hang.sh deleted file mode 100755 index 724e0bb..0000000 --- a/src/ceph/qa/workunits/rados/test_hang.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -ex - -# Hang forever for manual testing using the thrasher -while(true) -do - sleep 300 -done -exit 0 diff --git a/src/ceph/qa/workunits/rados/test_health_warnings.sh b/src/ceph/qa/workunits/rados/test_health_warnings.sh deleted file mode 100755 index a4a9c11..0000000 --- a/src/ceph/qa/workunits/rados/test_health_warnings.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -ex - -set -u - -# number of osds = 10 -crushtool -o crushmap --build --num_osds 10 host straw 2 rack straw 2 row straw 2 root straw 0 -ceph osd setcrushmap -i crushmap -ceph osd tree -ceph tell osd.* injectargs --osd_max_markdown_count 1024 --osd_max_markdown_period 1 - -wait_for_healthy() { - while ceph health | grep down - do - sleep 1 - done -} - -test_mark_two_osds_same_host_down() { - ceph osd set noup - ceph osd down osd.0 osd.1 - ceph health detail - ceph health | grep "1 host" - ceph health | grep "2 osds" - ceph health detail | grep "osd.0" - ceph health detail | grep "osd.1" - ceph osd unset noup - wait_for_healthy -} - -test_mark_two_osds_same_rack_down() { - ceph osd set noup - ceph osd down osd.8 osd.9 - ceph health detail - ceph health | grep "1 host" - ceph health | grep "1 rack" - ceph health | grep "1 row" - ceph health | grep "2 osds" - ceph health detail | grep "osd.8" - ceph health detail | grep "osd.9" - ceph osd unset noup - wait_for_healthy -} - -test_mark_all_but_last_osds_down() { - ceph osd set noup - ceph osd down $(ceph osd ls | sed \$d) - ceph health detail - ceph health | grep "1 row" - ceph health | grep "2 racks" - ceph health | grep "4 hosts" - ceph health | grep "9 osds" - ceph osd unset noup - wait_for_healthy -} - -test_mark_two_osds_same_host_down_with_classes() { - ceph osd set noup - ceph osd crush set-device-class ssd osd.0 osd.2 osd.4 osd.6 osd.8 - ceph osd crush set-device-class hdd osd.1 osd.3 osd.5 osd.7 osd.9 - ceph osd down osd.0 osd.1 - ceph health detail - ceph health | grep "1 host" - ceph health | grep "2 osds" - ceph health detail | grep "osd.0" - ceph health detail | grep "osd.1" - ceph osd unset noup - wait_for_healthy -} - -test_mark_two_osds_same_host_down -test_mark_two_osds_same_rack_down -test_mark_all_but_last_osds_down -test_mark_two_osds_same_host_down_with_classes - -exit 0 diff --git a/src/ceph/qa/workunits/rados/test_pool_access.sh b/src/ceph/qa/workunits/rados/test_pool_access.sh deleted file mode 100755 index 8597b71..0000000 --- a/src/ceph/qa/workunits/rados/test_pool_access.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -x - -set -e - -expect_1() -{ - set -x - set +e - "$@" - if [ $? == 1 ]; then return 0; else return 1; fi -} - - -key=`ceph auth get-or-create-key client.poolaccess1 mon 'allow r' osd 'allow *'` -rados --id poolaccess1 --key $key -p rbd ls - -key=`ceph auth get-or-create-key client.poolaccess2 mon 'allow r' osd 'allow * pool=nopool'` -expect_1 rados --id poolaccess2 --key $key -p rbd ls - -key=`ceph auth get-or-create-key client.poolaccess3 mon 'allow r' osd 'allow rw pool=nopool'` -expect_1 rados --id poolaccess3 --key $key -p rbd ls - -echo OK diff --git a/src/ceph/qa/workunits/rados/test_pool_quota.sh b/src/ceph/qa/workunits/rados/test_pool_quota.sh deleted file mode 100755 index 0eacefc..0000000 --- a/src/ceph/qa/workunits/rados/test_pool_quota.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -ex - -p=`uuidgen` - -# objects -ceph osd pool create $p 12 -ceph osd pool set-quota $p max_objects 10 -ceph osd pool application enable $p rados - -for f in `seq 1 10` ; do - rados -p $p put obj$f /etc/passwd -done - -sleep 30 - -rados -p $p put onemore /etc/passwd & -pid=$! - -ceph osd pool set-quota $p max_objects 100 -wait $pid -[ $? -ne 0 ] && exit 1 || true - -rados -p $p put twomore /etc/passwd - -# bytes -ceph osd pool set-quota $p max_bytes 100 -sleep 30 - -rados -p $p put two /etc/passwd & -pid=$! - -ceph osd pool set-quota $p max_bytes 0 -ceph osd pool set-quota $p max_objects 0 -wait $pid -[ $? -ne 0 ] && exit 1 || true - -rados -p $p put three /etc/passwd - - -#one pool being full does not block a different pool - -pp=`uuidgen` - -ceph osd pool create $pp 12 -ceph osd pool application enable $pp rados - -# set objects quota -ceph osd pool set-quota $pp max_objects 10 -sleep 30 - -for f in `seq 1 10` ; do - rados -p $pp put obj$f /etc/passwd -done - -sleep 30 - -rados -p $p put threemore /etc/passwd - -ceph osd pool set-quota $p max_bytes 0 -ceph osd pool set-quota $p max_objects 0 - -sleep 30 -# done -ceph osd pool delete $p $p --yes-i-really-really-mean-it -ceph osd pool delete $pp $pp --yes-i-really-really-mean-it - -echo OK - diff --git a/src/ceph/qa/workunits/rados/test_python.sh b/src/ceph/qa/workunits/rados/test_python.sh deleted file mode 100755 index 80369c8..0000000 --- a/src/ceph/qa/workunits/rados/test_python.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -ex - -${PYTHON:-python} -m nose -v $(dirname $0)/../../../src/test/pybind/test_rados.py -exit 0 diff --git a/src/ceph/qa/workunits/rados/test_rados_timeouts.sh b/src/ceph/qa/workunits/rados/test_rados_timeouts.sh deleted file mode 100755 index bb35d72..0000000 --- a/src/ceph/qa/workunits/rados/test_rados_timeouts.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -x - -delay_mon() { - MSGTYPE=$1 - shift - $@ --rados-mon-op-timeout 1 --ms-inject-delay-type mon --ms-inject-delay-max 10000000 --ms-inject-delay-probability 1 --ms-inject-delay-msg-type $MSGTYPE - if [ $? -eq 0 ]; then - exit 1 - fi -} - -delay_osd() { - MSGTYPE=$1 - shift - $@ --rados-osd-op-timeout 1 --ms-inject-delay-type osd --ms-inject-delay-max 10000000 --ms-inject-delay-probability 1 --ms-inject-delay-msg-type $MSGTYPE - if [ $? -eq 0 ]; then - exit 2 - fi -} - -# pool ops -delay_mon omap rados lspools -delay_mon poolopreply rados mkpool test -delay_mon poolopreply rados mksnap -p test snap -delay_mon poolopreply rados rmpool test test --yes-i-really-really-mean-it - -# other mon ops -delay_mon getpoolstats rados df -delay_mon mon_command ceph df -delay_mon omap ceph osd dump -delay_mon omap ceph -s - -# osd ops -delay_osd osd_op_reply rados -p data put ls /bin/ls -delay_osd osd_op_reply rados -p data get ls - >/dev/null -delay_osd osd_op_reply rados -p data ls -delay_osd command_reply ceph tell osd.0 bench 1 1 - -# rbd commands, using more kinds of osd ops -rbd create -s 1 test -delay_osd osd_op_reply rbd watch test -delay_osd osd_op_reply rbd info test -delay_osd osd_op_reply rbd snap create test@snap -delay_osd osd_op_reply rbd import /bin/ls ls -rbd rm test - -echo OK diff --git a/src/ceph/qa/workunits/rados/test_rados_tool.sh b/src/ceph/qa/workunits/rados/test_rados_tool.sh deleted file mode 100755 index 87c86ee..0000000 --- a/src/ceph/qa/workunits/rados/test_rados_tool.sh +++ /dev/null @@ -1,575 +0,0 @@ -#!/bin/bash - -die() { - echo "$@" - exit 1 -} - -usage() { - cat <<EOF -test_rados_tool.sh: tests rados_tool --c: RADOS configuration file to use [optional] --k: keep temp files --h: this help message --p: set temporary pool to use [optional] -EOF -} - -do_run() { - if [ "$1" == "--tee" ]; then - shift - tee_out="$1" - shift - "$@" | tee $tee_out - else - "$@" - fi -} - -run_expect_fail() { - echo "RUN_EXPECT_FAIL: " "$@" - do_run "$@" - [ $? -eq 0 ] && die "expected failure, but got success! cmd: $@" -} - -run_expect_succ() { - echo "RUN_EXPECT_SUCC: " "$@" - do_run "$@" - [ $? -ne 0 ] && die "expected success, but got failure! cmd: $@" -} - -run_expect_nosignal() { - echo "RUN_EXPECT_NOSIGNAL: " "$@" - do_run "$@" - [ $? -ge 128 ] && die "expected succes or fail, but got signal! cmd: $@" -} - -run() { - echo "RUN: " $@ - do_run "$@" -} - -if [ -n "$CEPH_BIN" ] ; then - # CMake env - RADOS_TOOL="$CEPH_BIN/rados" - CEPH_TOOL="$CEPH_BIN/ceph" -else - # executables should be installed by the QA env - RADOS_TOOL=$(which rados) - CEPH_TOOL=$(which ceph) -fi - -KEEP_TEMP_FILES=0 -POOL=trs_pool -POOL_CP_TARGET=trs_pool.2 -POOL_EC=trs_pool_ec - -[ -x "$RADOS_TOOL" ] || die "couldn't find $RADOS_TOOL binary to test" -[ -x "$CEPH_TOOL" ] || die "couldn't find $CEPH_TOOL binary to test" - -while getopts "c:hkp:" flag; do - case $flag in - c) RADOS_TOOL="$RADOS_TOOL -c $OPTARG";; - k) KEEP_TEMP_FILES=1;; - h) usage; exit 0;; - p) POOL=$OPTARG;; - *) echo; usage; exit 1;; - esac -done - -TDIR=`mktemp -d -t test_rados_tool.XXXXXXXXXX` || die "mktemp failed" -[ $KEEP_TEMP_FILES -eq 0 ] && trap "rm -rf ${TDIR}; exit" INT TERM EXIT - -# ensure rados doesn't segfault without --pool -run_expect_nosignal "$RADOS_TOOL" --snap "asdf" ls -run_expect_nosignal "$RADOS_TOOL" --snapid "0" ls -run_expect_nosignal "$RADOS_TOOL" --object_locator "asdf" ls -run_expect_nosignal "$RADOS_TOOL" --namespace "asdf" ls - -run_expect_succ "$RADOS_TOOL" mkpool "$POOL" -run_expect_succ "$CEPH_TOOL" osd erasure-code-profile set myprofile k=2 m=1 stripe_unit=2K crush-failure-domain=osd --force -run_expect_succ "$CEPH_TOOL" osd pool create "$POOL_EC" 100 100 erasure myprofile - - -# expb happens to be the empty export for legacy reasons -run_expect_succ "$RADOS_TOOL" -p "$POOL" export "$TDIR/expb" - -# expa has objects foo, foo2 and bar -run_expect_succ "$RADOS_TOOL" -p "$POOL" put foo /etc/fstab -run_expect_succ "$RADOS_TOOL" -p "$POOL" put foo2 /etc/fstab -run_expect_succ "$RADOS_TOOL" -p "$POOL" put bar /etc/fstab -run_expect_succ "$RADOS_TOOL" -p "$POOL" export "$TDIR/expa" - -# expc has foo and foo2 with some attributes and omaps set -run_expect_succ "$RADOS_TOOL" -p "$POOL" rm bar -run_expect_succ "$RADOS_TOOL" -p "$POOL" setxattr foo "rados.toothbrush" "toothbrush" -run_expect_succ "$RADOS_TOOL" -p "$POOL" setxattr foo "rados.toothpaste" "crest" -run_expect_succ "$RADOS_TOOL" -p "$POOL" setomapval foo "rados.floss" "myfloss" -run_expect_succ "$RADOS_TOOL" -p "$POOL" setxattr foo2 "rados.toothbrush" "green" -run_expect_succ "$RADOS_TOOL" -p "$POOL" setomapheader foo2 "foo2.header" -run_expect_succ "$RADOS_TOOL" -p "$POOL" export "$TDIR/expc" - -# make sure that --create works -run "$RADOS_TOOL" rmpool "$POOL" "$POOL" --yes-i-really-really-mean-it -run_expect_succ "$RADOS_TOOL" -p "$POOL" --create import "$TDIR/expa" - -# make sure that lack of --create fails -run_expect_succ "$RADOS_TOOL" rmpool "$POOL" "$POOL" --yes-i-really-really-mean-it -run_expect_fail "$RADOS_TOOL" -p "$POOL" import "$TDIR/expa" - -run_expect_succ "$RADOS_TOOL" -p "$POOL" --create import "$TDIR/expa" - -# inaccessible import src should fail -run_expect_fail "$RADOS_TOOL" -p "$POOL" import "$TDIR/dir_nonexistent" - -# export an empty pool to test purge -run_expect_succ "$RADOS_TOOL" purge "$POOL" --yes-i-really-really-mean-it -run_expect_succ "$RADOS_TOOL" -p "$POOL" export "$TDIR/empty" -cmp -s "$TDIR/expb" "$TDIR/empty" \ - || die "failed to export the same stuff we imported!" -rm -f "$TDIR/empty" - -# import some stuff with extended attributes on it -run_expect_succ "$RADOS_TOOL" -p "$POOL" import "$TDIR/expc" -VAL=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"` -[ ${VAL} = "toothbrush" ] || die "Invalid attribute after import" - -# the second time, the xattrs should match, so there should be nothing to do. -run_expect_succ "$RADOS_TOOL" -p "$POOL" import "$TDIR/expc" -VAL=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"` -[ "${VAL}" = "toothbrush" ] || die "Invalid attribute after second import" - -# Now try with --no-overwrite option after changing an attribute -run_expect_succ "$RADOS_TOOL" -p "$POOL" setxattr foo "rados.toothbrush" "dentist" -run_expect_succ "$RADOS_TOOL" -p "$POOL" import --no-overwrite "$TDIR/expc" -VAL=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"` -[ "${VAL}" = "dentist" ] || die "Invalid attribute after second import" - -# now force it to copy everything -run_expect_succ "$RADOS_TOOL" -p "$POOL" import "$TDIR/expc" -VAL=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"` -[ "${VAL}" = "toothbrush" ] || die "Invalid attribute after second import" - -# test copy pool -run "$RADOS_TOOL" rmpool "$POOL" "$POOL" --yes-i-really-really-mean-it -run "$RADOS_TOOL" rmpool "$POOL_CP_TARGET" "$POOL_CP_TARGET" --yes-i-really-really-mean-it -run_expect_succ "$RADOS_TOOL" mkpool "$POOL" -run_expect_succ "$RADOS_TOOL" mkpool "$POOL_CP_TARGET" - -# create src files -mkdir -p "$TDIR/dir_cp_src" -for i in `seq 1 5`; do - fname="$TDIR/dir_cp_src/f.$i" - objname="f.$i" - dd if=/dev/urandom of="$fname" bs=$((1024*1024)) count=$i - run_expect_succ "$RADOS_TOOL" -p "$POOL" put $objname "$fname" - -# a few random attrs - for j in `seq 1 4`; do - rand_str=`dd if=/dev/urandom bs=4 count=1 | hexdump -x` - run_expect_succ "$RADOS_TOOL" -p "$POOL" setxattr $objname attr.$j "$rand_str" - run_expect_succ --tee "$fname.attr.$j" "$RADOS_TOOL" -p "$POOL" getxattr $objname attr.$j - done - - rand_str=`dd if=/dev/urandom bs=4 count=1 | hexdump -x` - run_expect_succ "$RADOS_TOOL" -p "$POOL" setomapheader $objname "$rand_str" - run_expect_succ --tee "$fname.omap.header" "$RADOS_TOOL" -p "$POOL" getomapheader $objname - -# a few random omap keys - for j in `seq 1 4`; do - rand_str=`dd if=/dev/urandom bs=4 count=1 | hexdump -x` - run_expect_succ "$RADOS_TOOL" -p "$POOL" setomapval $objname key.$j "$rand_str" - done - run_expect_succ --tee "$fname.omap.vals" "$RADOS_TOOL" -p "$POOL" listomapvals $objname -done - -run_expect_succ "$RADOS_TOOL" cppool "$POOL" "$POOL_CP_TARGET" - -mkdir -p "$TDIR/dir_cp_dst" -for i in `seq 1 5`; do - fname="$TDIR/dir_cp_dst/f.$i" - objname="f.$i" - run_expect_succ "$RADOS_TOOL" -p "$POOL_CP_TARGET" get $objname "$fname" - -# a few random attrs - for j in `seq 1 4`; do - run_expect_succ --tee "$fname.attr.$j" "$RADOS_TOOL" -p "$POOL_CP_TARGET" getxattr $objname attr.$j - done - - run_expect_succ --tee "$fname.omap.header" "$RADOS_TOOL" -p "$POOL_CP_TARGET" getomapheader $objname - run_expect_succ --tee "$fname.omap.vals" "$RADOS_TOOL" -p "$POOL_CP_TARGET" listomapvals $objname -done - -diff -q -r "$TDIR/dir_cp_src" "$TDIR/dir_cp_dst" \ - || die "copy pool validation failed!" - -for opt in \ - block-size \ - concurrent-ios \ - min-object-size \ - max-object-size \ - min-op-len \ - max-op-len \ - max-ops \ - max-backlog \ - target-throughput \ - read-percent \ - num-objects \ - run-length \ - ; do - run_expect_succ "$RADOS_TOOL" --$opt 4 df - run_expect_fail "$RADOS_TOOL" --$opt 4k df -done - -run_expect_succ "$RADOS_TOOL" lock list f.1 --lock-duration 4 --pool "$POOL" -echo # previous command doesn't output an end of line: issue #9735 -run_expect_fail "$RADOS_TOOL" lock list f.1 --lock-duration 4k --pool "$POOL" - -run_expect_succ "$RADOS_TOOL" mksnap snap1 --pool "$POOL" -snapid=$("$RADOS_TOOL" lssnap --pool "$POOL" | grep snap1 | cut -f1) -[ $? -ne 0 ] && die "expected success, but got failure! cmd: \"$RADOS_TOOL\" lssnap --pool \"$POOL\" | grep snap1 | cut -f1" -run_expect_succ "$RADOS_TOOL" ls --pool "$POOL" --snapid="$snapid" -run_expect_fail "$RADOS_TOOL" ls --pool "$POOL" --snapid="$snapid"k - -run_expect_succ "$RADOS_TOOL" chown 1 --pool "$POOL" -run_expect_fail "$RADOS_TOOL" chown 1k --pool "$POOL" - -run_expect_succ "$RADOS_TOOL" truncate f.1 0 --pool "$POOL" -run_expect_fail "$RADOS_TOOL" truncate f.1 0k --pool "$POOL" - -run "$RADOS_TOOL" rmpool delete_me_mkpool_test delete_me_mkpool_test --yes-i-really-really-mean-it -run_expect_succ "$RADOS_TOOL" mkpool delete_me_mkpool_test 0 0 -run_expect_fail "$RADOS_TOOL" mkpool delete_me_mkpool_test2 0k 0 -run_expect_fail "$RADOS_TOOL" mkpool delete_me_mkpool_test3 0 0k - -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 1 write -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 1k write -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 1 write --format json --output "$TDIR/bench.json" -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 1 write --output "$TDIR/bench.json" -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --format json --no-cleanup -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 1 rand --format json -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 1 seq --format json -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-omap -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-object -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-xattr -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-xattr --write-object -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-xattr --write-omap -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-omap --write-object -run_expect_succ "$RADOS_TOOL" --pool "$POOL" bench 5 write --write-xattr --write-omap --write-object -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-omap -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-object -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-xattr -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-xattr --write-object -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-xattr --write-omap -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-omap --write-object -run_expect_fail "$RADOS_TOOL" --pool "$POOL" bench 5 read --write-xattr --write-omap --write-object - -for i in $("$RADOS_TOOL" --pool "$POOL" ls | grep "benchmark_data"); do - "$RADOS_TOOL" --pool "$POOL" truncate $i 0 -done - -run_expect_nosignal "$RADOS_TOOL" --pool "$POOL" bench 1 rand -run_expect_nosignal "$RADOS_TOOL" --pool "$POOL" bench 1 seq - -set -e - -OBJ=test_rados_obj - -expect_false() -{ - if "$@"; then return 1; else return 0; fi -} - -cleanup() { - $RADOS_TOOL -p $POOL rm $OBJ > /dev/null 2>&1 || true - $RADOS_TOOL -p $POOL_EC rm $OBJ > /dev/null 2>&1 || true -} - -test_omap() { - cleanup - for i in $(seq 1 1 10) - do - if [ $(($i % 2)) -eq 0 ]; then - $RADOS_TOOL -p $POOL setomapval $OBJ $i $i - else - echo -n "$i" | $RADOS_TOOL -p $POOL setomapval $OBJ $i - fi - $RADOS_TOOL -p $POOL getomapval $OBJ $i | grep -q "|$i|\$" - done - $RADOS_TOOL -p $POOL listomapvals $OBJ | grep -c value | grep 10 - for i in $(seq 1 1 5) - do - $RADOS_TOOL -p $POOL rmomapkey $OBJ $i - done - $RADOS_TOOL -p $POOL listomapvals $OBJ | grep -c value | grep 5 - cleanup - - for i in $(seq 1 1 10) - do - dd if=/dev/urandom bs=128 count=1 > $TDIR/omap_key - if [ $(($i % 2)) -eq 0 ]; then - $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key setomapval $OBJ $i - else - echo -n "$i" | $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key setomapval $OBJ - fi - $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key getomapval $OBJ | grep -q "|$i|\$" - $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key rmomapkey $OBJ - $RADOS_TOOL -p $POOL listomapvals $OBJ | grep -c value | grep 0 - done - cleanup -} - -test_xattr() { - cleanup - $RADOS_TOOL -p $POOL put $OBJ /etc/passwd - V1=`mktemp fooattrXXXXXXX` - V2=`mktemp fooattrXXXXXXX` - echo -n fooval > $V1 - expect_false $RADOS_TOOL -p $POOL setxattr $OBJ 2>/dev/null - expect_false $RADOS_TOOL -p $POOL setxattr $OBJ foo fooval extraarg 2>/dev/null - $RADOS_TOOL -p $POOL setxattr $OBJ foo fooval - $RADOS_TOOL -p $POOL getxattr $OBJ foo > $V2 - cmp $V1 $V2 - cat $V1 | $RADOS_TOOL -p $POOL setxattr $OBJ bar - $RADOS_TOOL -p $POOL getxattr $OBJ bar > $V2 - cmp $V1 $V2 - $RADOS_TOOL -p $POOL listxattr $OBJ > $V1 - grep -q foo $V1 - grep -q bar $V1 - [ `cat $V1 | wc -l` -eq 2 ] - rm $V1 $V2 - cleanup -} -test_rmobj() { - p=`uuidgen` - $CEPH_TOOL osd pool create $p 1 - $CEPH_TOOL osd pool set-quota $p max_objects 1 - V1=`mktemp fooattrXXXXXXX` - $RADOS_TOOL put $OBJ $V1 -p $p - while ! $CEPH_TOOL osd dump | grep 'full_no_quota max_objects' - do - sleep 2 - done - $RADOS_TOOL -p $p rm $OBJ --force-full - $RADOS_TOOL rmpool $p $p --yes-i-really-really-mean-it - rm $V1 -} - -test_ls() { - echo "Testing rados ls command" - p=`uuidgen` - $CEPH_TOOL osd pool create $p 1 - NS=10 - OBJS=20 - # Include default namespace (0) in the total - TOTAL=$(expr $OBJS \* $(expr $NS + 1)) - - for nsnum in `seq 0 $NS` - do - for onum in `seq 1 $OBJS` - do - if [ "$nsnum" = "0" ]; - then - "$RADOS_TOOL" -p $p put obj${onum} /etc/fstab 2> /dev/null - else - "$RADOS_TOOL" -p $p -N "NS${nsnum}" put obj${onum} /etc/fstab 2> /dev/null - fi - done - done - CHECK=$("$RADOS_TOOL" -p $p ls 2> /dev/null | wc -l) - if [ "$OBJS" -ne "$CHECK" ]; - then - die "Created $OBJS objects in default namespace but saw $CHECK" - fi - TESTNS=NS${NS} - CHECK=$("$RADOS_TOOL" -p $p -N $TESTNS ls 2> /dev/null | wc -l) - if [ "$OBJS" -ne "$CHECK" ]; - then - die "Created $OBJS objects in $TESTNS namespace but saw $CHECK" - fi - CHECK=$("$RADOS_TOOL" -p $p --all ls 2> /dev/null | wc -l) - if [ "$TOTAL" -ne "$CHECK" ]; - then - die "Created $TOTAL objects but saw $CHECK" - fi - - $RADOS_TOOL rmpool $p $p --yes-i-really-really-mean-it -} - -test_cleanup() { - echo "Testing rados cleanup command" - p=`uuidgen` - $CEPH_TOOL osd pool create $p 1 - NS=5 - OBJS=4 - # Include default namespace (0) in the total - TOTAL=$(expr $OBJS \* $(expr $NS + 1)) - - for nsnum in `seq 0 $NS` - do - for onum in `seq 1 $OBJS` - do - if [ "$nsnum" = "0" ]; - then - "$RADOS_TOOL" -p $p put obj${onum} /etc/fstab 2> /dev/null - else - "$RADOS_TOOL" -p $p -N "NS${nsnum}" put obj${onum} /etc/fstab 2> /dev/null - fi - done - done - - $RADOS_TOOL -p $p --all ls > $TDIR/before.ls.out 2> /dev/null - - $RADOS_TOOL -p $p bench 3 write --no-cleanup 2> /dev/null - $RADOS_TOOL -p $p -N NS1 bench 3 write --no-cleanup 2> /dev/null - $RADOS_TOOL -p $p -N NS2 bench 3 write --no-cleanup 2> /dev/null - $RADOS_TOOL -p $p -N NS3 bench 3 write --no-cleanup 2> /dev/null - # Leave dangling objects without a benchmark_last_metadata in NS4 - expect_false timeout 3 $RADOS_TOOL -p $p -N NS4 bench 30 write --no-cleanup 2> /dev/null - $RADOS_TOOL -p $p -N NS5 bench 3 write --no-cleanup 2> /dev/null - - $RADOS_TOOL -p $p -N NS3 cleanup 2> /dev/null - #echo "Check NS3 after specific cleanup" - CHECK=$($RADOS_TOOL -p $p -N NS3 ls | wc -l) - if [ "$OBJS" -ne "$CHECK" ] ; - then - die "Expected $OBJS objects in NS3 but saw $CHECK" - fi - - #echo "Try to cleanup all" - $RADOS_TOOL -p $p --all cleanup - #echo "Check all namespaces" - $RADOS_TOOL -p $p --all ls > $TDIR/after.ls.out 2> /dev/null - CHECK=$(cat $TDIR/after.ls.out | wc -l) - if [ "$TOTAL" -ne "$CHECK" ]; - then - die "Expected $TOTAL objects but saw $CHECK" - fi - if ! diff $TDIR/before.ls.out $TDIR/after.ls.out - then - die "Different objects found after cleanup" - fi - - set +e - run_expect_fail $RADOS_TOOL -p $p cleanup --prefix illegal_prefix - run_expect_succ $RADOS_TOOL -p $p cleanup --prefix benchmark_data_otherhost - set -e - - $RADOS_TOOL rmpool $p $p --yes-i-really-really-mean-it -} - -function test_append() -{ - cleanup - - # create object - touch ./rados_append_null - $RADOS_TOOL -p $POOL append $OBJ ./rados_append_null - $RADOS_TOOL -p $POOL get $OBJ ./rados_append_0_out - cmp ./rados_append_null ./rados_append_0_out - - # append 4k, total size 4k - dd if=/dev/zero of=./rados_append_4k bs=4k count=1 - $RADOS_TOOL -p $POOL append $OBJ ./rados_append_4k - $RADOS_TOOL -p $POOL get $OBJ ./rados_append_4k_out - cmp ./rados_append_4k ./rados_append_4k_out - - # append 4k, total size 8k - $RADOS_TOOL -p $POOL append $OBJ ./rados_append_4k - $RADOS_TOOL -p $POOL get $OBJ ./rados_append_4k_out - read_size=`ls -l ./rados_append_4k_out | awk -F ' ' '{print $5}'` - if [ 8192 -ne $read_size ]; - then - die "Append failed expecting 8192 read $read_size" - fi - - # append 10M, total size 10493952 - dd if=/dev/zero of=./rados_append_10m bs=10M count=1 - $RADOS_TOOL -p $POOL append $OBJ ./rados_append_10m - $RADOS_TOOL -p $POOL get $OBJ ./rados_append_10m_out - read_size=`ls -l ./rados_append_10m_out | awk -F ' ' '{print $5}'` - if [ 10493952 -ne $read_size ]; - then - die "Append failed expecting 10493952 read $read_size" - fi - - # cleanup - cleanup - - # create object - $RADOS_TOOL -p $POOL_EC append $OBJ ./rados_append_null - $RADOS_TOOL -p $POOL_EC get $OBJ ./rados_append_0_out - cmp rados_append_null rados_append_0_out - - # append 4k, total size 4k - $RADOS_TOOL -p $POOL_EC append $OBJ ./rados_append_4k - $RADOS_TOOL -p $POOL_EC get $OBJ ./rados_append_4k_out - cmp rados_append_4k rados_append_4k_out - - # append 4k, total size 8k - $RADOS_TOOL -p $POOL_EC append $OBJ ./rados_append_4k - $RADOS_TOOL -p $POOL_EC get $OBJ ./rados_append_4k_out - read_size=`ls -l ./rados_append_4k_out | awk -F ' ' '{print $5}'` - if [ 8192 -ne $read_size ]; - then - die "Append failed expecting 8192 read $read_size" - fi - - # append 10M, total size 10493952 - $RADOS_TOOL -p $POOL_EC append $OBJ ./rados_append_10m - $RADOS_TOOL -p $POOL_EC get $OBJ ./rados_append_10m_out - read_size=`ls -l ./rados_append_10m_out | awk -F ' ' '{print $5}'` - if [ 10493952 -ne $read_size ]; - then - die "Append failed expecting 10493952 read $read_size" - fi - - cleanup - rm -rf ./rados_append_null ./rados_append_0_out - rm -rf ./rados_append_4k ./rados_append_4k_out ./rados_append_10m ./rados_append_10m_out -} - -function test_put() -{ - # rados put test: - cleanup - - # create file in local fs - dd if=/dev/urandom of=rados_object_10k bs=1K count=10 - - # test put command - $RADOS_TOOL -p $POOL put $OBJ ./rados_object_10k - $RADOS_TOOL -p $POOL get $OBJ ./rados_object_10k_out - cmp ./rados_object_10k ./rados_object_10k_out - cleanup - - # test put command with offset 0 - $RADOS_TOOL -p $POOL put $OBJ ./rados_object_10k --offset 0 - $RADOS_TOOL -p $POOL get $OBJ ./rados_object_offset_0_out - cmp ./rados_object_10k ./rados_object_offset_0_out - cleanup - - # test put command with offset 1000 - $RADOS_TOOL -p $POOL put $OBJ ./rados_object_10k --offset 1000 - $RADOS_TOOL -p $POOL get $OBJ ./rados_object_offset_1000_out - cmp ./rados_object_10k ./rados_object_offset_1000_out 0 1000 - cleanup - - rm -rf ./rados_object_10k ./rados_object_10k_out ./rados_object_offset_0_out ./rados_object_offset_1000_out -} - -test_xattr -test_omap -test_rmobj -test_ls -test_cleanup -test_append -test_put - -# clean up environment, delete pool -$CEPH_TOOL osd pool delete $POOL $POOL --yes-i-really-really-mean-it -$CEPH_TOOL osd pool delete $POOL_EC $POOL_EC --yes-i-really-really-mean-it -$CEPH_TOOL osd pool delete $POOL_CP_TARGET $POOL_CP_TARGET --yes-i-really-really-mean-it - -echo "SUCCESS!" -exit 0 diff --git a/src/ceph/qa/workunits/rados/test_tmap_to_omap.sh b/src/ceph/qa/workunits/rados/test_tmap_to_omap.sh deleted file mode 100755 index 76656ad..0000000 --- a/src/ceph/qa/workunits/rados/test_tmap_to_omap.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -ex - -expect_false() -{ - set -x - if "$@"; then return 1; else return 0; fi -} - -pool="pool-$$" -rados mkpool $pool - -rados -p $pool tmap set foo key1 value1 -rados -p $pool tmap set foo key2 value2 -rados -p $pool tmap set foo key2 value2 -rados -p $pool tmap dump foo | grep key1 -rados -p $pool tmap dump foo | grep key2 -rados -p $pool tmap-to-omap foo -expect_false rados -p $pool tmap dump foo -expect_false rados -p $pool tmap dump foo - -rados -p $pool listomapkeys foo | grep key1 -rados -p $pool listomapkeys foo | grep key2 -rados -p $pool getomapval foo key1 | grep value1 -rados -p $pool getomapval foo key2 | grep value2 - -rados rmpool $pool $pool --yes-i-really-really-mean-it - -echo OK |