mirror of
https://github.com/ceph/ceph
synced 2025-04-01 00:26:47 +00:00
src/script: add run-cbt.sh
this script will be used by jenkins to drive the CBT based test also, this test can be used by developer for testing crimson or classic OSD. Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
parent
03b34e2eab
commit
1f88eb0298
105
src/script/run-cbt.sh
Executable file
105
src/script/run-cbt.sh
Executable file
@ -0,0 +1,105 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
local prog_name=$1
|
||||||
|
shift
|
||||||
|
cat <<EOF
|
||||||
|
usage:
|
||||||
|
$prog_name [options] <config-file>...
|
||||||
|
|
||||||
|
options:
|
||||||
|
-a,--archive-dir directory in which the test result is stored, default to $PWD/cbt-archive
|
||||||
|
--build-dir directory where CMakeCache.txt is located, default to $PWD
|
||||||
|
--cbt-dir directory of cbt if you have already a copy of it. ceph/cbt:master will be cloned from github if not specified
|
||||||
|
-h,--help print this help message
|
||||||
|
--source-dir the path to the top level of Ceph source tree, default to $PWD/..
|
||||||
|
--use-existing do not setup/teardown a vstart cluster for testing
|
||||||
|
|
||||||
|
example:
|
||||||
|
$prog_name --cbt ~/dev/cbt -a /tmp ../src/test/crimson/cbt/radosbench_4K_read.yaml
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
prog_name=$(basename $0)
|
||||||
|
archive_dir=$PWD/cbt-archive
|
||||||
|
build_dir=$PWD
|
||||||
|
source_dir=$(dirname $PWD)
|
||||||
|
use_existing=false
|
||||||
|
opts=$(getopt --options "a:h" --longoptions "archive-dir:,build-dir:,source-dir:,cbt:,help,use-existing" --name $prog_name -- "$@")
|
||||||
|
eval set -- "$opts"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-a|--archive-dir)
|
||||||
|
archive_dir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--build-dir)
|
||||||
|
build_dir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--source_dir)
|
||||||
|
source_dir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--cbt)
|
||||||
|
cbt_dir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--use-existing)
|
||||||
|
use_existing=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
usage $prog_name
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unexpected argument $1" 1>&2
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $# -gt 0; then
|
||||||
|
config_files="$@"
|
||||||
|
else
|
||||||
|
echo "$prog_name: please specify one or more .yaml files" 1>&2
|
||||||
|
usage $prog_name
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$cbt_dir"; then
|
||||||
|
cbt_dir=$PWD/cbt
|
||||||
|
git clone --depth 1 -b master https://github.com/ceph/cbt.git $cbt_dir
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $use_existing; then
|
||||||
|
MDS=0 MGR=1 OSD=3 MON=1 $source_dir/src/vstart.sh -n -X \
|
||||||
|
--without-dashboard --memstore \
|
||||||
|
-o "memstore_device_bytes=34359738368" \
|
||||||
|
--crimson --nodaemon --redirect-output \
|
||||||
|
--osd-args "--memory 4G"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for config_file in $config_files; do
|
||||||
|
echo "testing $config_file"
|
||||||
|
cbt_config=$(mktemp $config_file.XXXX.yaml)
|
||||||
|
$source_dir/src/test/crimson/cbt//t2c.py \
|
||||||
|
--build-dir $build_dir \
|
||||||
|
--input $config_file \
|
||||||
|
--output $cbt_config
|
||||||
|
$cbt_dir/cbt.py \
|
||||||
|
--archive $archive_dir \
|
||||||
|
--conf $build_dir/ceph.conf \
|
||||||
|
$cbt_config
|
||||||
|
rm -f $cbt_config
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! $use_existing; then
|
||||||
|
$source_dir/src/stop.sh --crimson
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user