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/crush/crush-choose-args.sh | 161 ---------------- src/ceph/qa/standalone/crush/crush-classes.sh | 223 ---------------------- 2 files changed, 384 deletions(-) delete mode 100755 src/ceph/qa/standalone/crush/crush-choose-args.sh delete mode 100755 src/ceph/qa/standalone/crush/crush-classes.sh (limited to 'src/ceph/qa/standalone/crush') diff --git a/src/ceph/qa/standalone/crush/crush-choose-args.sh b/src/ceph/qa/standalone/crush/crush-choose-args.sh deleted file mode 100755 index 6e03a99..0000000 --- a/src/ceph/qa/standalone/crush/crush-choose-args.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2017 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:7131" # git grep '\<7131\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - CEPH_ARGS+="--crush-location=root=default,host=HOST " - CEPH_ARGS+="--osd-crush-initial-weight=3 " - # - # Disable device auto class feature for now. - # The device class is non-deterministic and will - # crash the crushmap comparison below. - # - CEPH_ARGS+="--osd-class-update-on-start=false " - - 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_choose_args_update() { - # - # adding a weighted OSD updates the weight up to the top - # - local dir=$1 - - run_mon $dir a || return 1 - run_osd $dir 0 || return 1 - - ceph osd set-require-min-compat-client luminous - ceph osd getcrushmap > $dir/map || return 1 - crushtool -d $dir/map -o $dir/map.txt || return 1 - sed -i -e '/end crush map/d' $dir/map.txt - cat >> $dir/map.txt < $dir/map-one-more || return 1 - crushtool -d $dir/map-one-more -o $dir/map-one-more.txt || return 1 - cat $dir/map-one-more.txt - diff -u $dir/map-one-more.txt $CEPH_ROOT/src/test/crush/crush-choose-args-expected-one-more-3.txt || return 1 - - destroy_osd $dir 1 || return 1 - ceph osd getcrushmap > $dir/map-one-less || return 1 - crushtool -d $dir/map-one-less -o $dir/map-one-less.txt || return 1 - diff -u $dir/map-one-less.txt $dir/map.txt || return 1 -} - -function TEST_no_update_weight_set() { - # - # adding a zero weight OSD does not update the weight set at all - # - local dir=$1 - - ORIG_CEPH_ARGS="$CEPH_ARGS" - CEPH_ARGS+="--osd-crush-update-weight-set=false " - - run_mon $dir a || return 1 - run_osd $dir 0 || return 1 - - ceph osd set-require-min-compat-client luminous - ceph osd crush tree - ceph osd getcrushmap > $dir/map || return 1 - crushtool -d $dir/map -o $dir/map.txt || return 1 - sed -i -e '/end crush map/d' $dir/map.txt - cat >> $dir/map.txt < $dir/map-one-more || return 1 - crushtool -d $dir/map-one-more -o $dir/map-one-more.txt || return 1 - cat $dir/map-one-more.txt - diff -u $dir/map-one-more.txt $CEPH_ROOT/src/test/crush/crush-choose-args-expected-one-more-0.txt || return 1 - - destroy_osd $dir 1 || return 1 - ceph osd crush tree - ceph osd getcrushmap > $dir/map-one-less || return 1 - crushtool -d $dir/map-one-less -o $dir/map-one-less.txt || return 1 - diff -u $dir/map-one-less.txt $dir/map.txt || return 1 - - CEPH_ARGS="$ORIG_CEPH_ARGS" -} - -main crush-choose-args "$@" - -# Local Variables: -# compile-command: "cd ../../../build ; ln -sf ../src/ceph-disk/ceph_disk/main.py bin/ceph-disk && make -j4 && ../src/test/crush/crush-choose-args.sh" -# End: diff --git a/src/ceph/qa/standalone/crush/crush-classes.sh b/src/ceph/qa/standalone/crush/crush-classes.sh deleted file mode 100755 index bcaab3f..0000000 --- a/src/ceph/qa/standalone/crush/crush-classes.sh +++ /dev/null @@ -1,223 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2017 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:7130" # git grep '\<7130\>' : there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - CEPH_ARGS+="--mon-host=$CEPH_MON " - # - # Disable auto-class, so we can inject device class manually below - # - CEPH_ARGS+="--osd-class-update-on-start=false " - - 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 add_something() { - local dir=$1 - local obj=${2:-SOMETHING} - - local payload=ABCDEF - echo $payload > $dir/ORIGINAL - rados --pool rbd put $obj $dir/ORIGINAL || return 1 -} - -function get_osds_up() { - local poolname=$1 - local objectname=$2 - - local osds=$(ceph --format xml osd map $poolname $objectname 2>/dev/null | \ - $XMLSTARLET sel -t -m "//up/osd" -v . -o ' ') - # get rid of the trailing space - echo $osds -} - -function TEST_classes() { - local dir=$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 - create_rbd_pool || return 1 - - test "$(get_osds_up rbd SOMETHING)" == "1 2 0" || return 1 - add_something $dir SOMETHING || return 1 - - # - # osd.0 has class ssd and the rule is modified - # to only take ssd devices. - # - ceph osd getcrushmap > $dir/map || return 1 - crushtool -d $dir/map -o $dir/map.txt || return 1 - ${SED} -i \ - -e '/device 0 osd.0/s/$/ class ssd/' \ - -e '/step take default/s/$/ class ssd/' \ - $dir/map.txt || return 1 - crushtool -c $dir/map.txt -o $dir/map-new || return 1 - ceph osd setcrushmap -i $dir/map-new || return 1 - - # - # There can only be one mapping since there only is - # one device with ssd class. - # - ok=false - for delay in 2 4 8 16 32 64 128 256 ; do - if test "$(get_osds_up rbd SOMETHING_ELSE)" == "0" ; then - ok=true - break - fi - sleep $delay - ceph osd dump # for debugging purposes - ceph pg dump # for debugging purposes - done - $ok || return 1 - # - # Writing keeps working because the pool is min_size 1 by - # default. - # - add_something $dir SOMETHING_ELSE || return 1 - - # - # Sanity check that the rule indeed has ssd - # generated bucket with a name including ~ssd. - # - ceph osd crush dump | grep -q '~ssd' || return 1 -} - -function TEST_set_device_class() { - local dir=$1 - - TEST_classes $dir || return 1 - - ceph osd crush set-device-class ssd osd.0 || return 1 - ceph osd crush class ls-osd ssd | grep 0 || return 1 - ceph osd crush set-device-class ssd osd.1 || return 1 - ceph osd crush class ls-osd ssd | grep 1 || return 1 - ceph osd crush set-device-class ssd 0 1 || return 1 # should be idempotent - - ok=false - for delay in 2 4 8 16 32 64 128 256 ; do - if test "$(get_osds_up rbd SOMETHING_ELSE)" == "0 1" ; then - ok=true - break - fi - sleep $delay - ceph osd crush dump - ceph osd dump # for debugging purposes - ceph pg dump # for debugging purposes - done - $ok || return 1 -} - -function TEST_mon_classes() { - local dir=$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 - create_rbd_pool || return 1 - - test "$(get_osds_up rbd SOMETHING)" == "1 2 0" || return 1 - add_something $dir SOMETHING || return 1 - - # test rm-device-class - ceph osd crush set-device-class aaa osd.0 || return 1 - ceph osd tree | grep -q 'aaa' || return 1 - ceph osd crush dump | grep -q '~aaa' || return 1 - ceph osd crush tree --show-shadow | grep -q '~aaa' || return 1 - ceph osd crush set-device-class bbb osd.1 || return 1 - ceph osd tree | grep -q 'bbb' || return 1 - ceph osd crush dump | grep -q '~bbb' || return 1 - ceph osd crush tree --show-shadow | grep -q '~bbb' || return 1 - ceph osd crush set-device-class ccc osd.2 || return 1 - ceph osd tree | grep -q 'ccc' || return 1 - ceph osd crush dump | grep -q '~ccc' || return 1 - ceph osd crush tree --show-shadow | grep -q '~ccc' || return 1 - ceph osd crush rm-device-class 0 || return 1 - ceph osd tree | grep -q 'aaa' && return 1 - ceph osd crush class ls | grep -q 'aaa' && return 1 # class 'aaa' should gone - ceph osd crush rm-device-class 1 || return 1 - ceph osd tree | grep -q 'bbb' && return 1 - ceph osd crush class ls | grep -q 'bbb' && return 1 # class 'bbb' should gone - ceph osd crush rm-device-class 2 || return 1 - ceph osd tree | grep -q 'ccc' && return 1 - ceph osd crush class ls | grep -q 'ccc' && return 1 # class 'ccc' should gone - ceph osd crush set-device-class asdf all || return 1 - ceph osd tree | grep -q 'asdf' || return 1 - ceph osd crush dump | grep -q '~asdf' || return 1 - ceph osd crush tree --show-shadow | grep -q '~asdf' || return 1 - ceph osd crush rule create-replicated asdf-rule default host asdf || return 1 - ceph osd crush rm-device-class all || return 1 - ceph osd tree | grep -q 'asdf' && return 1 - ceph osd crush class ls | grep -q 'asdf' || return 1 # still referenced by asdf-rule - - ceph osd crush set-device-class abc osd.2 || return 1 - ceph osd crush move osd.2 root=foo rack=foo-rack host=foo-host || return 1 - out=`ceph osd tree |awk '$1 == 2 && $2 == "abc" {print $0}'` - if [ "$out" == "" ]; then - return 1 - fi - - # verify 'crush move' too - ceph osd crush dump | grep -q 'foo~abc' || return 1 - ceph osd crush tree --show-shadow | grep -q 'foo~abc' || return 1 - ceph osd crush dump | grep -q 'foo-rack~abc' || return 1 - ceph osd crush tree --show-shadow | grep -q 'foo-rack~abc' || return 1 - ceph osd crush dump | grep -q 'foo-host~abc' || return 1 - ceph osd crush tree --show-shadow | grep -q 'foo-host~abc' || return 1 - ceph osd crush rm-device-class osd.2 || return 1 - # restore class, so we can continue to test create-replicated - ceph osd crush set-device-class abc osd.2 || return 1 - - ceph osd crush rule create-replicated foo-rule foo host abc || return 1 - - # test set-device-class implicitly change class - ceph osd crush set-device-class hdd osd.0 || return 1 - expect_failure $dir EBUSY ceph osd crush set-device-class nvme osd.0 || return 1 - - # test class rename - ceph osd crush rm-device-class all || return 1 - ceph osd crush set-device-class class_1 all || return 1 - ceph osd crush class ls | grep 'class_1' || return 1 - ceph osd crush tree --show-shadow | grep 'class_1' || return 1 - ceph osd crush rule create-replicated class_1_rule default host class_1 || return 1 - ceph osd crush class rename class_1 class_2 - ceph osd crush class rename class_1 class_2 # idempotent - ceph osd crush class ls | grep 'class_1' && return 1 - ceph osd crush tree --show-shadow | grep 'class_1' && return 1 - ceph osd crush class ls | grep 'class_2' || return 1 - ceph osd crush tree --show-shadow | grep 'class_2' || return 1 -} - -main crush-classes "$@" - -# Local Variables: -# compile-command: "cd ../../../build ; ln -sf ../src/ceph-disk/ceph_disk/main.py bin/ceph-disk && make -j4 && ../src/test/crush/crush-classes.sh" -# End: -- cgit 1.2.3-korg