From 7da45d65be36d36b880cc55c5036e96c24b53f00 Mon Sep 17 00:00:00 2001 From: Qiaowei Ren Date: Thu, 1 Mar 2018 14:38:11 +0800 Subject: remove ceph code This patch removes initial ceph code, due to license issue. Change-Id: I092d44f601cdf34aed92300fe13214925563081c Signed-off-by: Qiaowei Ren --- src/ceph/qa/standalone/mon/misc.sh | 238 --------------------- src/ceph/qa/standalone/mon/mkfs.sh | 198 ----------------- src/ceph/qa/standalone/mon/mon-bind.sh | 147 ------------- src/ceph/qa/standalone/mon/mon-created-time.sh | 54 ----- src/ceph/qa/standalone/mon/mon-handle-forward.sh | 64 ------ src/ceph/qa/standalone/mon/mon-ping.sh | 46 ---- src/ceph/qa/standalone/mon/mon-scrub.sh | 49 ----- src/ceph/qa/standalone/mon/osd-crush.sh | 229 -------------------- .../qa/standalone/mon/osd-erasure-code-profile.sh | 229 -------------------- src/ceph/qa/standalone/mon/osd-pool-create.sh | 215 ------------------- src/ceph/qa/standalone/mon/osd-pool-df.sh | 75 ------- src/ceph/qa/standalone/mon/test_pool_quota.sh | 63 ------ 12 files changed, 1607 deletions(-) delete mode 100755 src/ceph/qa/standalone/mon/misc.sh delete mode 100755 src/ceph/qa/standalone/mon/mkfs.sh delete mode 100755 src/ceph/qa/standalone/mon/mon-bind.sh delete mode 100755 src/ceph/qa/standalone/mon/mon-created-time.sh delete mode 100755 src/ceph/qa/standalone/mon/mon-handle-forward.sh delete mode 100755 src/ceph/qa/standalone/mon/mon-ping.sh delete mode 100755 src/ceph/qa/standalone/mon/mon-scrub.sh delete mode 100755 src/ceph/qa/standalone/mon/osd-crush.sh delete mode 100755 src/ceph/qa/standalone/mon/osd-erasure-code-profile.sh delete mode 100755 src/ceph/qa/standalone/mon/osd-pool-create.sh delete mode 100755 src/ceph/qa/standalone/mon/osd-pool-df.sh delete mode 100755 src/ceph/qa/standalone/mon/test_pool_quota.sh (limited to 'src/ceph/qa/standalone/mon') diff --git a/src/ceph/qa/standalone/mon/misc.sh b/src/ceph/qa/standalone/mon/misc.sh deleted file mode 100755 index e025e07..0000000 --- a/src/ceph/qa/standalone/mon/misc.sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2014 Cloudwatt -# Copyright (C) 2014, 2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7102" # git grep '\<7102\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - $func $dir || return 1 - done -} - -TEST_POOL=rbd - -function TEST_osd_pool_get_set() { - local dir=$1 - - setup $dir || return 1 - run_mon $dir a || return 1 - create_rbd_pool || return 1 - create_pool $TEST_POOL 8 - - local flag - for flag in nodelete nopgchange nosizechange write_fadvise_dontneed noscrub nodeep-scrub; do - ceph osd pool set $TEST_POOL $flag 0 || return 1 - ! ceph osd dump | grep 'pool ' | grep $flag || return 1 - ceph osd pool set $TEST_POOL $flag 1 || return 1 - ceph osd dump | grep 'pool ' | grep $flag || return 1 - ceph osd pool set $TEST_POOL $flag false || return 1 - ! ceph osd dump | grep 'pool ' | grep $flag || return 1 - ceph osd pool set $TEST_POOL $flag false || return 1 - # check that setting false twice does not toggle to true (bug) - ! ceph osd dump | grep 'pool ' | grep $flag || return 1 - ceph osd pool set $TEST_POOL $flag true || return 1 - ceph osd dump | grep 'pool ' | grep $flag || return 1 - # cleanup - ceph osd pool set $TEST_POOL $flag 0 || return 1 - done - - local size=$(ceph osd pool get $TEST_POOL size|awk '{print $2}') - local min_size=$(ceph osd pool get $TEST_POOL min_size|awk '{print $2}') - - ceph osd pool set $TEST_POOL scrub_min_interval 123456 || return 1 - ceph osd dump | grep 'pool ' | grep 'scrub_min_interval 123456' || return 1 - ceph osd pool set $TEST_POOL scrub_min_interval 0 || return 1 - ceph osd dump | grep 'pool ' | grep 'scrub_min_interval' && return 1 - ceph osd pool set $TEST_POOL scrub_max_interval 123456 || return 1 - ceph osd dump | grep 'pool ' | grep 'scrub_max_interval 123456' || return 1 - ceph osd pool set $TEST_POOL scrub_max_interval 0 || return 1 - ceph osd dump | grep 'pool ' | grep 'scrub_max_interval' && return 1 - ceph osd pool set $TEST_POOL deep_scrub_interval 123456 || return 1 - ceph osd dump | grep 'pool ' | grep 'deep_scrub_interval 123456' || return 1 - ceph osd pool set $TEST_POOL deep_scrub_interval 0 || return 1 - ceph osd dump | grep 'pool ' | grep 'deep_scrub_interval' && return 1 - - #replicated pool size restrict in 1 and 10 - ! ceph osd pool set $TEST_POOL 11 || return 1 - #replicated pool min_size must be between in 1 and size - ! ceph osd pool set $TEST_POOL min_size $(expr $size + 1) || return 1 - ! ceph osd pool set $TEST_POOL min_size 0 || return 1 - - local ecpool=erasepool - create_pool $ecpool 12 12 erasure default || return 1 - #erasue pool size=k+m, min_size=k - local size=$(ceph osd pool get $ecpool size|awk '{print $2}') - local min_size=$(ceph osd pool get $ecpool min_size|awk '{print $2}') - local k=$(expr $min_size - 1) # default min_size=k+1 - #erasure pool size can't change - ! ceph osd pool set $ecpool size $(expr $size + 1) || return 1 - #erasure pool min_size must be between in k and size - ceph osd pool set $ecpool min_size $(expr $k + 1) || return 1 - ! ceph osd pool set $ecpool min_size $(expr $k - 1) || return 1 - ! ceph osd pool set $ecpool min_size $(expr $size + 1) || return 1 - - teardown $dir || return 1 -} - -function TEST_mon_add_to_single_mon() { - local dir=$1 - - fsid=$(uuidgen) - MONA=127.0.0.1:7117 # git grep '\<7117\>' : there must be only one - MONB=127.0.0.1:7118 # git grep '\<7118\>' : there must be only one - CEPH_ARGS_orig=$CEPH_ARGS - CEPH_ARGS="--fsid=$fsid --auth-supported=none " - CEPH_ARGS+="--mon-initial-members=a " - CEPH_ARGS+="--mon-host=$MONA " - - setup $dir || return 1 - run_mon $dir a --public-addr $MONA || return 1 - # wait for the quorum - timeout 120 ceph -s > /dev/null || return 1 - run_mon $dir b --public-addr $MONB || return 1 - teardown $dir || return 1 - - setup $dir || return 1 - run_mon $dir a --public-addr $MONA || return 1 - # without the fix of #5454, mon.a will assert failure at seeing the MMonJoin - # from mon.b - run_mon $dir b --public-addr $MONB || return 1 - # wait for the quorum - timeout 120 ceph -s > /dev/null || return 1 - local num_mons - num_mons=$(ceph mon dump --format=json 2>/dev/null | jq ".mons | length") || return 1 - [ $num_mons == 2 ] || return 1 - # no reason to take more than 120 secs to get this submitted - timeout 120 ceph mon add b $MONB || return 1 - teardown $dir || return 1 -} - -function TEST_no_segfault_for_bad_keyring() { - local dir=$1 - setup $dir || return 1 - # create a client.admin key and add it to ceph.mon.keyring - ceph-authtool --create-keyring $dir/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' - ceph-authtool --create-keyring $dir/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' - ceph-authtool $dir/ceph.mon.keyring --import-keyring $dir/ceph.client.admin.keyring - CEPH_ARGS_TMP="--fsid=$(uuidgen) --mon-host=127.0.0.1:7102 --auth-supported=cephx " - CEPH_ARGS_orig=$CEPH_ARGS - CEPH_ARGS="$CEPH_ARGS_TMP --keyring=$dir/ceph.mon.keyring " - run_mon $dir a - # create a bad keyring and make sure no segfault occurs when using the bad keyring - echo -e "[client.admin]\nkey = BQAUlgtWoFePIxAAQ9YLzJSVgJX5V1lh5gyctg==" > $dir/bad.keyring - CEPH_ARGS="$CEPH_ARGS_TMP --keyring=$dir/bad.keyring" - ceph osd dump 2> /dev/null - # 139(11|128) means segfault and core dumped - [ $? -eq 139 ] && return 1 - CEPH_ARGS=$CEPH_ARGS_orig - teardown $dir || return 1 -} - -function TEST_mon_features() { - local dir=$1 - setup $dir || return 1 - - fsid=$(uuidgen) - MONA=127.0.0.1:7127 # git grep '\<7127\>' ; there must be only one - MONB=127.0.0.1:7128 # git grep '\<7128\>' ; there must be only one - MONC=127.0.0.1:7129 # git grep '\<7129\>' ; there must be only one - CEPH_ARGS_orig=$CEPH_ARGS - CEPH_ARGS="--fsid=$fsid --auth-supported=none " - CEPH_ARGS+="--mon-initial-members=a,b,c " - CEPH_ARGS+="--mon-host=$MONA,$MONB,$MONC " - CEPH_ARGS+="--mon-debug-no-initial-persistent-features " - CEPH_ARGS+="--mon-debug-no-require-luminous " - - run_mon $dir a --public-addr $MONA || return 1 - run_mon $dir b --public-addr $MONB || return 1 - timeout 120 ceph -s > /dev/null || return 1 - - # expect monmap to contain 3 monitors (a, b, and c) - jqinput="$(ceph mon_status --format=json 2>/dev/null)" - jq_success "$jqinput" '.monmap.mons | length == 3' || return 1 - # quorum contains two monitors - jq_success "$jqinput" '.quorum | length == 2' || return 1 - # quorum's monitor features contain kraken and luminous - jqfilter='.features.quorum_mon[]|select(. == "kraken")' - jq_success "$jqinput" "$jqfilter" "kraken" || return 1 - jqfilter='.features.quorum_mon[]|select(. == "luminous")' - jq_success "$jqinput" "$jqfilter" "luminous" || return 1 - - # monmap must have no persistent features set, because we - # don't currently have a quorum made out of all the monitors - # in the monmap. - jqfilter='.monmap.features.persistent | length == 0' - jq_success "$jqinput" "$jqfilter" || return 1 - - # nor do we have any optional features, for that matter. - jqfilter='.monmap.features.optional | length == 0' - jq_success "$jqinput" "$jqfilter" || return 1 - - # validate 'mon feature ls' - - jqinput="$(ceph mon feature ls --format=json 2>/dev/null)" - # 'kraken' and 'luminous' are supported - jqfilter='.all.supported[] | select(. == "kraken")' - jq_success "$jqinput" "$jqfilter" "kraken" || return 1 - jqfilter='.all.supported[] | select(. == "luminous")' - jq_success "$jqinput" "$jqfilter" "luminous" || return 1 - - # start third monitor - run_mon $dir c --public-addr $MONC || return 1 - - wait_for_quorum 300 3 || return 1 - - timeout 300 ceph -s > /dev/null || return 1 - - jqinput="$(ceph mon_status --format=json 2>/dev/null)" - # expect quorum to have all three monitors - jqfilter='.quorum | length == 3' - jq_success "$jqinput" "$jqfilter" || return 1 - # quorum's monitor features contain kraken and luminous - jqfilter='.features.quorum_mon[]|select(. == "kraken")' - jq_success "$jqinput" "$jqfilter" "kraken" || return 1 - jqfilter='.features.quorum_mon[]|select(. == "luminous")' - jq_success "$jqinput" "$jqfilter" "luminous" || return 1 - - # monmap must have no both 'kraken' and 'luminous' persistent - # features set. - jqfilter='.monmap.features.persistent | length == 2' - jq_success "$jqinput" "$jqfilter" || return 1 - jqfilter='.monmap.features.persistent[]|select(. == "kraken")' - jq_success "$jqinput" "$jqfilter" "kraken" || return 1 - jqfilter='.monmap.features.persistent[]|select(. == "luminous")' - jq_success "$jqinput" "$jqfilter" "luminous" || return 1 - - CEPH_ARGS=$CEPH_ARGS_orig - # that's all folks. thank you for tuning in. - teardown $dir || return 1 -} - -main misc "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/misc.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/mkfs.sh b/src/ceph/qa/standalone/mon/mkfs.sh deleted file mode 100755 index 6b8e58d..0000000 --- a/src/ceph/qa/standalone/mon/mkfs.sh +++ /dev/null @@ -1,198 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2013 Cloudwatt -# Copyright (C) 2014 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -set -xe -PS4='${BASH_SOURCE[0]}:$LINENO: ${FUNCNAME[0]}: ' - - -DIR=mkfs -export CEPH_CONF=/dev/null -unset CEPH_ARGS -MON_ID=a -MON_DIR=$DIR/$MON_ID -CEPH_MON=127.0.0.1:7110 # git grep '\<7110\>' : there must be only one -TIMEOUT=360 - -EXTRAOPTS="" -if [ -n "$CEPH_LIB" ]; then - EXTRAOPTS+=" --erasure-code-dir $CEPH_LIB" - EXTRAOPTS+=" --plugin-dir $CEPH_LIB" - EXTRAOPTS+=" --osd-class-dir $CEPH_LIB" -fi - -function setup() { - teardown - mkdir $DIR -} - -function teardown() { - kill_daemons - rm -fr $DIR -} - -function mon_mkfs() { - local fsid=$(uuidgen) - - ceph-mon \ - --id $MON_ID \ - --fsid $fsid \ - $EXTRAOPTS \ - --mkfs \ - --mon-data=$MON_DIR \ - --mon-initial-members=$MON_ID \ - --mon-host=$CEPH_MON \ - "$@" -} - -function mon_run() { - ceph-mon \ - --id $MON_ID \ - --chdir= \ - --mon-osd-full-ratio=.99 \ - --mon-data-avail-crit=1 \ - $EXTRAOPTS \ - --mon-data=$MON_DIR \ - --log-file=$MON_DIR/log \ - --mon-cluster-log-file=$MON_DIR/log \ - --run-dir=$MON_DIR \ - --pid-file=$MON_DIR/pidfile \ - --public-addr $CEPH_MON \ - "$@" -} - -function kill_daemons() { - for pidfile in $(find $DIR -name pidfile) ; do - pid=$(cat $pidfile) - for try in 0 1 1 1 2 3 ; do - kill $pid || break - sleep $try - done - done -} - -function auth_none() { - mon_mkfs --auth-supported=none - - ceph-mon \ - --id $MON_ID \ - --mon-osd-full-ratio=.99 \ - --mon-data-avail-crit=1 \ - $EXTRAOPTS \ - --mon-data=$MON_DIR \ - --extract-monmap $MON_DIR/monmap - - [ -f $MON_DIR/monmap ] || return 1 - - [ ! -f $MON_DIR/keyring ] || return 1 - - mon_run --auth-supported=none - - timeout $TIMEOUT ceph --mon-host $CEPH_MON mon stat || return 1 -} - -function auth_cephx_keyring() { - cat > $DIR/keyring <&1 | tee $DIR/makedir.log - grep 'toodeep.*No such file' $DIR/makedir.log > /dev/null - rm $DIR/makedir.log - - # an empty directory does not mean the mon exists - mkdir $MON_DIR - mon_mkfs --auth-supported=none 2>&1 | tee $DIR/makedir.log - ! grep "$MON_DIR already exists" $DIR/makedir.log || return 1 -} - -function idempotent() { - mon_mkfs --auth-supported=none - mon_mkfs --auth-supported=none 2>&1 | tee $DIR/makedir.log - grep "'$MON_DIR' already exists" $DIR/makedir.log > /dev/null || return 1 -} - -function run() { - local actions - actions+="makedir " - actions+="idempotent " - actions+="auth_cephx_key " - actions+="auth_cephx_keyring " - actions+="auth_none " - for action in $actions ; do - setup - $action || return 1 - teardown - done -} - -run - -# Local Variables: -# compile-command: "cd ../.. ; make TESTS=test/mon/mkfs.sh check" -# End: diff --git a/src/ceph/qa/standalone/mon/mon-bind.sh b/src/ceph/qa/standalone/mon/mon-bind.sh deleted file mode 100755 index a4d774d..0000000 --- a/src/ceph/qa/standalone/mon/mon-bind.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2017 Quantum Corp. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -SOCAT_PIDS=() - -function port_forward() { - local source_port=$1 - local target_port=$2 - - socat TCP-LISTEN:${source_port},fork,reuseaddr TCP:localhost:${target_port} & - SOCAT_PIDS+=( $! ) -} - -function cleanup() { - for p in "${SOCAT_PIDS[@]}"; do - kill $p - done - SOCAT_PIDS=() -} - -trap cleanup SIGTERM SIGKILL SIGQUIT SIGINT - -function run() { - local dir=$1 - shift - - export MON_IP=127.0.0.1 - export MONA_PUBLIC=7132 # git grep '\<7132\>' ; there must be only one - export MONB_PUBLIC=7133 # git grep '\<7133\>' ; there must be only one - export MONC_PUBLIC=7134 # git grep '\<7134\>' ; there must be only one - export MONA_BIND=7135 # git grep '\<7135\>' ; there must be only one - export MONB_BIND=7136 # git grep '\<7136\>' ; there must be only one - export MONC_BIND=7137 # git grep '\<7137\>' ; there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir && cleanup || { cleanup; return 1; } - teardown $dir - done -} - -function TEST_mon_client_connect_fails() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC} " - run_mon $dir a --mon-host=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - - # now attempt to ping it that should fail. - timeout 3 ceph ping mon.a || return 0 - return 1 -} - -function TEST_mon_client_connect() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC} " - run_mon $dir a --mon-host=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - - # attempt to connect. we expect that to work - ceph ping mon.a || return 1 -} - -function TEST_mon_quorum() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a,b,c " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC},${MON_IP}:${MONB_PUBLIC},${MON_IP}:${MONC_PUBLIC} " - run_mon $dir a --public-addr=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - run_mon $dir b --public-addr=${MON_IP}:${MONB_PUBLIC} --public-bind-addr=${MON_IP}:${MONB_BIND} || return 1 - run_mon $dir c --public-addr=${MON_IP}:${MONC_PUBLIC} --public-bind-addr=${MON_IP}:${MONC_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - port_forward ${MONB_PUBLIC} ${MONB_BIND} - port_forward ${MONC_PUBLIC} ${MONC_BIND} - - # expect monmap to contain 3 monitors (a, b, and c) - jqinput="$(ceph mon_status --format=json 2>/dev/null)" - jq_success "$jqinput" '.monmap.mons | length == 3' || return 1 - - # quorum should form - wait_for_quorum 300 3 || return 1 - # expect quorum to have all three monitors - jqfilter='.quorum | length == 3' - jq_success "$jqinput" "$jqfilter" || return 1 -} - -function TEST_put_get() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a,b,c " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC},${MON_IP}:${MONB_PUBLIC},${MON_IP}:${MONC_PUBLIC} " - run_mon $dir a --public-addr=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - run_mon $dir b --public-addr=${MON_IP}:${MONB_PUBLIC} --public-bind-addr=${MON_IP}:${MONB_BIND} || return 1 - run_mon $dir c --public-addr=${MON_IP}:${MONC_PUBLIC} --public-bind-addr=${MON_IP}:${MONC_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - port_forward ${MONB_PUBLIC} ${MONB_BIND} - port_forward ${MONC_PUBLIC} ${MONC_BIND} - - # quorum should form - wait_for_quorum 300 3 || return 1 - - run_mgr $dir x || return 1 - run_osd $dir 0 || return 1 - run_osd $dir 1 || return 1 - run_osd $dir 2 || return 1 - - create_pool hello 8 || return 1 - - echo "hello world" > $dir/hello - rados --pool hello put foo $dir/hello || return 1 - rados --pool hello get foo $dir/hello2 || return 1 - diff $dir/hello $dir/hello2 || return 1 -} - -main mon-bind "$@" diff --git a/src/ceph/qa/standalone/mon/mon-created-time.sh b/src/ceph/qa/standalone/mon/mon-created-time.sh deleted file mode 100755 index 0955803..0000000 --- a/src/ceph/qa/standalone/mon/mon-created-time.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2015 SUSE LINUX GmbH -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7125" # git grep '\<7125\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_mon_created_time() { - local dir=$1 - - run_mon $dir a || 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 - return 1 - fi - - if test "$(ceph mon dump 2>/dev/null | sed -n '/created/p' | awk '{print $NF}')"x = "0.000000"x ; then - return 1 - fi -} - -main mon-created-time "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/mon-created-time.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/mon-handle-forward.sh b/src/ceph/qa/standalone/mon/mon-handle-forward.sh deleted file mode 100755 index e3b539b..0000000 --- a/src/ceph/qa/standalone/mon/mon-handle-forward.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2013 Cloudwatt -# Copyright (C) 2014,2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - - setup $dir || return 1 - - MONA=127.0.0.1:7300 - MONB=127.0.0.1:7301 - ( - FSID=$(uuidgen) - export CEPH_ARGS - CEPH_ARGS+="--fsid=$FSID --auth-supported=none " - CEPH_ARGS+="--mon-initial-members=a,b --mon-host=$MONA,$MONB " - run_mon $dir a --public-addr $MONA || return 1 - run_mon $dir b --public-addr $MONB || return 1 - ) - - timeout 360 ceph --mon-host $MONA mon stat || return 1 - # check that MONB is indeed a peon - ceph --admin-daemon $(get_asok_path mon.b) 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 $(get_asok_path mon.a) log flush || return 1 - grep 'mon_command(.*"POOL1"' $dir/a/mon.a.log - CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) 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 $(get_asok_path mon.b) log flush || return 1 - grep 'forward_request.*mon_command(.*"POOL2"' $dir/mon.b.log - CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) 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' < \ - $dir/mon.b.log) - grep ' forward(mon_command(.*"POOL2".*con_features '$features $dir/mon.a.log - - teardown $dir || return 1 -} - -main mon-handle-forward "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 TESTS=test/mon/mon-handle-forward.sh check" -# End: diff --git a/src/ceph/qa/standalone/mon/mon-ping.sh b/src/ceph/qa/standalone/mon/mon-ping.sh deleted file mode 100755 index 9574f5f..0000000 --- a/src/ceph/qa/standalone/mon/mon-ping.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2015 SUSE LINUX GmbH -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7119" # git grep '\<7119\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_mon_ping() { - local dir=$1 - - run_mon $dir a || return 1 - - ceph ping mon.a || return 1 -} - -main mon-ping "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/mon-ping.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/mon-scrub.sh b/src/ceph/qa/standalone/mon/mon-scrub.sh deleted file mode 100755 index b40a6bc..0000000 --- a/src/ceph/qa/standalone/mon/mon-scrub.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2014 Cloudwatt -# Copyright (C) 2014, 2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7120" # git grep '\<7120\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_mon_scrub() { - local dir=$1 - - run_mon $dir a || return 1 - - ceph mon scrub || return 1 -} - -main mon-scrub "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/mon-scrub.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/osd-crush.sh b/src/ceph/qa/standalone/mon/osd-crush.sh deleted file mode 100755 index 747e30d..0000000 --- a/src/ceph/qa/standalone/mon/osd-crush.sh +++ /dev/null @@ -1,229 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2014 Cloudwatt -# Copyright (C) 2014, 2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7104" # git grep '\<7104\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | ${SED} -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_crush_rule_create_simple() { - local dir=$1 - - run_mon $dir a || return 1 - - ceph --format xml osd crush rule dump replicated_rule | \ - egrep 'take[^<]+default' | \ - grep 'choose_firstn0osd' || return 1 - local ruleset=ruleset0 - local root=host1 - 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 | \ - grep "$ruleset already exists" || return 1 - 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 -} - -function TEST_crush_rule_dump() { - local dir=$1 - - run_mon $dir a || return 1 - - local ruleset=ruleset1 - ceph osd crush rule create-erasure $ruleset || return 1 - test $(ceph --format json osd crush rule dump $ruleset | \ - jq ".rule_name == \"$ruleset\"") == true || return 1 - test $(ceph --format json osd crush rule dump | \ - jq "map(select(.rule_name == \"$ruleset\")) | length == 1") == true || 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() { - local ruleset=erasure2 - - 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 -} - -function TEST_crush_rule_create_erasure() { - local dir=$1 - - run_mon $dir a || return 1 - # should have at least one OSD - run_osd $dir 0 || return 1 - - local ruleset=ruleset3 - # - # 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 | \ - grep "$ruleset already exists" || return 1 - ceph --format xml osd crush rule dump $ruleset | \ - egrep 'take[^<]+default' | \ - grep 'chooseleaf_indep0host' || return 1 - ceph osd crush rule rm $ruleset || return 1 - ! ceph osd crush rule ls | grep $ruleset || return 1 - # - # 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 - # - # 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 $(get_asok_path mon.a) 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 -} - -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)}'` - 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 - #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 - - ceph osd crush rule dump -} - -function TEST_crush_ruleset_match_rule_when_creating() { - local dir=$1 - - run_mon $dir a || return 1 - - local root=host1 - - generate_manipulated_rules $dir - - ceph osd crush rule create-simple special_rule_simple $root osd firstn || return 1 - - 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 -} - -function TEST_add_ruleset_failed() { - local dir=$1 - - run_mon $dir a || return 1 - - 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 - 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 - -} - -function TEST_crush_rename_bucket() { - local dir=$1 - - run_mon $dir a || return 1 - - ceph osd crush add-bucket host1 host - ceph osd tree - ! ceph osd tree | grep host2 || return 1 - ceph osd crush rename-bucket host1 host2 || return 1 - ceph osd tree - 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() { - local dir=$1 - run_mon $dir a || return 1 - # should have at least one OSD - run_osd $dir 0 || return 1 - create_rbd_pool || return 1 - - local empty_map=$dir/empty_map - :> $empty_map.txt - 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 -} - -main osd-crush "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/osd-crush.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/osd-erasure-code-profile.sh b/src/ceph/qa/standalone/mon/osd-erasure-code-profile.sh deleted file mode 100755 index 5480612..0000000 --- a/src/ceph/qa/standalone/mon/osd-erasure-code-profile.sh +++ /dev/null @@ -1,229 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2014 Cloudwatt -# Copyright (C) 2014, 2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7220" # git grep '\<7220\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_set() { - local dir=$1 - local id=$2 - - run_mon $dir a || return 1 - - local profile=myprofile - # - # 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 | \ - grep plugin=jerasure || return 1 - ceph osd erasure-code-profile rm $profile - # - # key=value pairs override the default - # - ceph osd erasure-code-profile set $profile \ - key=value plugin=isa || return 1 - ceph osd erasure-code-profile get $profile | \ - grep -e key=value -e plugin=isa || return 1 - # - # --force is required to override an existing profile - # - ! 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 | \ - grep key=other || return 1 - - ceph osd erasure-code-profile rm $profile # cleanup -} - -function TEST_ls() { - local dir=$1 - local id=$2 - - 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 | \ - grep "$profile" || return 1 - - ceph osd erasure-code-profile rm $profile # cleanup -} - -function TEST_rm() { - local dir=$1 - local id=$2 - - 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 | \ - grep "WRONG does not exist" || return 1 - - ceph osd erasure-code-profile set $profile || return 1 - create_pool 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 erasure-code-profile rm $profile # cleanup -} - -function TEST_get() { - local dir=$1 - local id=$2 - - run_mon $dir a || return 1 - - local default_profile=default - ceph osd erasure-code-profile get $default_profile | \ - grep plugin=jerasure || return 1 - 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 - grep -q "unknown erasure code profile 'WRONG'" $dir/out || return 1 -} - -function TEST_set_idempotent() { - local dir=$1 - local id=$2 - - run_mon $dir a || return 1 - # - # The default profile is set using a code path different from - # 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 - local profile - # - # Because plugin=jerasure is the default, it uses a slightly - # different code path where defaults (m=1 for instance) are added - # implicitly. - # - profile=profileidempotent1 - ! ceph osd erasure-code-profile ls | grep $profile || return 1 - ceph osd erasure-code-profile set $profile k=2 crush-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 crush-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 crush-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 crush-failure-domain=osd 2>&1 || return 1 - ceph osd erasure-code-profile rm $profile # cleanup -} - -function TEST_format_invalid() { - local dir=$1 - - local profile=profile - # osd_pool_default_erasure-code-profile is - # 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 - cat $dir/out - grep 'must be a JSON object' $dir/out || return 1 -} - -function TEST_format_json() { - local dir=$1 - - # osd_pool_default_erasure-code-profile is JSON - expected='"plugin":"isa"' - run_mon $dir a \ - --osd_pool_default_erasure-code-profile "{$expected}" || return 1 - ceph --format json osd erasure-code-profile get default | \ - grep "$expected" || return 1 -} - -function TEST_format_plain() { - local dir=$1 - - # osd_pool_default_erasure-code-profile is plain text - expected='"plugin":"isa"' - run_mon $dir a \ - --osd_pool_default_erasure-code-profile "plugin=isa" || return 1 - ceph --format json osd erasure-code-profile get default | \ - grep "$expected" || return 1 -} - -function TEST_profile_k_sanity() { - local dir=$1 - local profile=profile-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 \ - plugin=lrc \ - l=1 \ - k=1 \ - m=1 || return 1 - - if erasure_code_plugin_exists isa ; then - expect_failure $dir 'k=1 must be >= 2' \ - ceph osd erasure-code-profile set $profile \ - plugin=isa \ - k=1 \ - m=1 || return 1 - else - echo "SKIP because plugin isa has not been built" - fi - - expect_failure $dir 'k=1 must be >= 2' \ - ceph osd erasure-code-profile set $profile \ - plugin=jerasure \ - k=1 \ - m=1 || return 1 -} - -main osd-erasure-code-profile "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/osd-erasure-code-profile.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/osd-pool-create.sh b/src/ceph/qa/standalone/mon/osd-pool-create.sh deleted file mode 100755 index 693165d..0000000 --- a/src/ceph/qa/standalone/mon/osd-pool-create.sh +++ /dev/null @@ -1,215 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2013, 2014 Cloudwatt -# Copyright (C) 2014, 2015 Red Hat -# -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7105" # git grep '\<7105\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -# Before http://tracker.ceph.com/issues/8307 the invalid profile was created -function TEST_erasure_invalid_profile() { - local dir=$1 - 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 -} - -function TEST_erasure_crush_rule() { - local dir=$1 - run_mon $dir a || return 1 - # - # 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 - local poolname - poolname=pool_erasure1 - ! ceph --format json osd dump | grep '"crush_rule":1' || return 1 - ceph osd pool create $poolname 12 12 erasure default $crush_ruleset - ceph --format json osd dump | grep '"crush_rule":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 - # - # 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 -} - -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 -} - -function TEST_erasure_crush_stripe_unit() { - local dir=$1 - # the default stripe unit is used to initialize the pool - run_mon $dir a --public-addr $CEPH_MON - stripe_unit=$(ceph-conf --show-config-value osd_pool_erasure_code_stripe_unit) - eval local $(ceph osd erasure-code-profile get myprofile | grep k=) - stripe_width = $((stripe_unit * k)) - 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 -} - -function TEST_erasure_crush_stripe_unit_padded() { - local dir=$1 - # setting osd_pool_erasure_code_stripe_unit modifies the stripe_width - # and it is padded as required by the default plugin - profile+=" plugin=jerasure" - profile+=" technique=reed_sol_van" - k=4 - profile+=" k=$k" - profile+=" m=2" - actual_stripe_unit=2048 - desired_stripe_unit=$((actual_stripe_unit - 1)) - actual_stripe_width=$((actual_stripe_unit * k)) - run_mon $dir a \ - --osd_pool_erasure_code_stripe_unit $desired_stripe_unit \ - --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 - 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 - 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 - grep "$expected" $dir/osd.json > /dev/null || return 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 | \ - grep 'cannot change to type replicated' || return 1 -} - -function TEST_replicated_pool_with_ruleset() { - local dir=$1 - run_mon $dir a - local ruleset=ruleset0 - local root=host1 - 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 || return 1 - rule_id=`ceph osd crush rule dump $ruleset | grep "rule_id" | awk -F[' ':,] '{print $4}'` - ceph osd pool get $poolname crush_rule 2>&1 | \ - grep "crush_rule: $rule_id" || return 1 - #non-existent crush ruleset - ceph osd pool create newpool 12 12 replicated non-existent 2>&1 | \ - grep "doesn't exist" || return 1 -} - -function TEST_erasure_code_pool_lrc() { - local dir=$1 - run_mon $dir a || return 1 - - ceph osd erasure-code-profile set LRCprofile \ - plugin=lrc \ - mapping=DD_ \ - layers='[ [ "DDc", "" ] ]' || return 1 - - 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 - grep "$expected" $dir/osd.json > /dev/null || 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_rule || return 1 - ceph osd pool create replicated 12 12 replicated replicated_rule 2>&1 | \ - grep 'already exists' || return 1 - # default is replicated - ceph osd pool create replicated1 12 12 || return 1 - # default is replicated, pgp_num = pg_num - ceph osd pool create replicated2 12 || return 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 -} - -function TEST_utf8_cli() { - local dir=$1 - run_mon $dir a || return 1 - # Hopefully it's safe to include literal UTF-8 characters to test - # 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 黄 16 || return 1 - ceph osd lspools 2>&1 | \ - grep "黄" || return 1 - 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 -} - -main osd-pool-create "$@" - -# Local Variables: -# compile-command: "cd ../.. ; make -j4 && test/mon/osd-pool-create.sh" -# End: diff --git a/src/ceph/qa/standalone/mon/osd-pool-df.sh b/src/ceph/qa/standalone/mon/osd-pool-df.sh deleted file mode 100755 index 3ed169d..0000000 --- a/src/ceph/qa/standalone/mon/osd-pool-df.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (C) 2017 Tencent -# -# Author: Chang Liu -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:7113" # git grep '\<7113\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir || return 1 - teardown $dir || return 1 - done -} - -function TEST_ceph_df() { - local dir=$1 - setup $dir || return 1 - - run_mon $dir a || return 1 - run_osd $dir 0 || return 1 - run_osd $dir 1 || return 1 - run_osd $dir 2 || return 1 - run_osd $dir 3 || return 1 - run_osd $dir 4 || return 1 - run_osd $dir 5 || return 1 - run_mgr $dir x || return 1 - - profile+=" plugin=jerasure" - profile+=" technique=reed_sol_van" - profile+=" k=4" - profile+=" m=2" - profile+=" crush-failure-domain=osd" - - ceph osd erasure-code-profile set ec42profile ${profile} - - local rep_poolname=testcephdf_replicate - local ec_poolname=testcephdf_erasurecode - create_pool $rep_poolname 6 6 replicated - create_pool $ec_poolname 6 6 erasure ec42profile - - local global_avail=`ceph df -f json | jq '.stats.total_avail_bytes'` - local rep_avail=`ceph df -f json | jq '.pools | map(select(.name == "$rep_poolname"))[0].stats.max_avail'` - local ec_avail=`ceph df -f json | jq '.pools | map(select(.name == "$ec_poolname"))[0].stats.max_avail'` - - echo "${global_avail} >= ${rep_avail}*3" | bc || return 1 - echo "${global_avail} >= ${ec_avail}*1.5" | bc || return 1 - - ceph osd pool delete $rep_poolname $rep_poolname --yes-i-really-really-mean-it - ceph osd pool delete $ec_poolname $ec_poolname --yes-i-really-really-mean-it - ceph osd erasure-code-profile rm ec42profile - teardown $dir || return 1 -} - -main osd-pool-df "$@" diff --git a/src/ceph/qa/standalone/mon/test_pool_quota.sh b/src/ceph/qa/standalone/mon/test_pool_quota.sh deleted file mode 100755 index 7ea6ae0..0000000 --- a/src/ceph/qa/standalone/mon/test_pool_quota.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -# -# Generic pool quota test -# - -# Includes - - -source $CEPH_ROOT/qa/standalone/ceph-helpers.sh - -function run() { - local dir=$1 - shift - - export CEPH_MON="127.0.0.1:17108" # git grep '\<17108\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - $func $dir || return 1 - done -} - -function TEST_pool_quota() { - local dir=$1 - setup $dir || return 1 - - run_mon $dir a || return 1 - run_osd $dir 0 || return 1 - run_osd $dir 1 || return 1 - run_osd $dir 2 || return 1 - - local poolname=testquota - create_pool $poolname 20 - local objects=`ceph df detail | grep -w $poolname|awk '{print $3}'` - local bytes=`ceph df detail | grep -w $poolname|awk '{print $4}'` - - echo $objects - echo $bytes - if [ $objects != 'N/A' ] || [ $bytes != 'N/A' ] ; - then - return 1 - fi - - ceph osd pool set-quota $poolname max_objects 1000 - ceph osd pool set-quota $poolname max_bytes 1024 - - objects=`ceph df detail | grep -w $poolname|awk '{print $3}'` - bytes=`ceph df detail | grep -w $poolname|awk '{print $4}'` - - if [ $objects != '1000' ] || [ $bytes != '1024' ] ; - then - return 1 - fi - - ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it - teardown $dir || return 1 -} - -main testpoolquota -- cgit 1.2.3-korg