Add another test for failure domains
parent
4a2dcf7b6b
commit
16da663a66
@ -0,0 +1,35 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
if [ ! "$BASH_VERSION" ] ; then
|
||||
echo "Use bash to run this script ($0)" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
format_error()
|
||||
{
|
||||
echo $(echo -n -e "\033[1;31m")$1$(echo -n -e "\033[m")
|
||||
$ETCDCTL get --prefix /vitastor > ./testdata/etcd-dump.txt
|
||||
exit 1
|
||||
}
|
||||
format_green()
|
||||
{
|
||||
echo $(echo -n -e "\033[1;32m")$1$(echo -n -e "\033[m")
|
||||
}
|
||||
|
||||
cd `dirname $0`/..
|
||||
|
||||
trap 'kill -9 $(jobs -p)' EXIT
|
||||
|
||||
ETCD=${ETCD:-etcd}
|
||||
ETCD_PORT=${ETCD_PORT:-12379}
|
||||
|
||||
rm -rf ./testdata
|
||||
mkdir -p ./testdata
|
||||
|
||||
$ETCD -name etcd_test --data-dir ./testdata/etcd \
|
||||
--advertise-client-urls http://127.0.0.1:$ETCD_PORT --listen-client-urls http://127.0.0.1:$ETCD_PORT \
|
||||
--initial-advertise-peer-urls http://127.0.0.1:$((ETCD_PORT+1)) --listen-peer-urls http://127.0.0.1:$((ETCD_PORT+1)) \
|
||||
--max-txn-ops=100000 --auto-compaction-retention=10 --auto-compaction-mode=revision &>./testdata/etcd.log &
|
||||
ETCD_PID=$!
|
||||
ETCD_URL=127.0.0.1:$ETCD_PORT/v3
|
||||
ETCDCTL="${ETCD}ctl --endpoints=http://$ETCD_URL"
|
@ -0,0 +1,29 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
. `dirname $0`/common.sh
|
||||
|
||||
TIME=$(date '+%s')
|
||||
$ETCDCTL put /vitastor/config/global '{"placement_levels":{"rack":1,"host":2,"osd":3}}'
|
||||
$ETCDCTL put /vitastor/config/node_placement '{"rack1":{"level":"rack"},"rack2":{"level":"rack"},"host1":{"level":"host","parent":"rack1"},"host2":{"level":"host","parent":"rack1"},"host3":{"level":"host","parent":"rack2"},"host4":{"level":"host","parent":"rack2"}}'
|
||||
$ETCDCTL put /vitastor/osd/stats/1 '{"host":"host1","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/2 '{"host":"host1","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/3 '{"host":"host2","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/4 '{"host":"host2","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/5 '{"host":"host3","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/6 '{"host":"host3","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/7 '{"host":"host4","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/osd/stats/8 '{"host":"host4","size":1073741824,"time":"'$TIME'"}'
|
||||
$ETCDCTL put /vitastor/config/pools '{"1":{"name":"testpool","scheme":"replicated","pg_size":2,"pg_minsize":1,"pg_count":4,"failure_domain":"rack"}}'
|
||||
|
||||
cd mon
|
||||
npm install
|
||||
cd ..
|
||||
node mon/mon-main.js --etcd_url http://$ETCD_URL --etcd_prefix "/vitastor" &>./testdata/mon.log &
|
||||
MON_PID=$!
|
||||
|
||||
sleep 2
|
||||
|
||||
etcdctl --endpoints=http://localhost:12379 get --prefix /vitastor/config/pgs --print-value-only | \
|
||||
jq -s -e '([ .[0].items["1"] | .[].osd_set | map_values(. | tonumber) | select((.[0] <= 4) != (.[1] <= 4)) ] | length) == 4'
|
||||
|
||||
format_green OK
|
@ -1,42 +1,11 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -ex
|
||||
|
||||
if [ ! "$BASH_VERSION" ] ; then
|
||||
echo "Use bash to run this script ($0)" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
format_error()
|
||||
{
|
||||
echo $(echo -n -e "\033[1;31m")$1$(echo -n -e "\033[m")
|
||||
$ETCDCTL get --prefix /vitastor > ./testdata/etcd-dump.txt
|
||||
exit 1
|
||||
}
|
||||
format_green()
|
||||
{
|
||||
echo $(echo -n -e "\033[1;32m")$1$(echo -n -e "\033[m")
|
||||
}
|
||||
|
||||
set -e -x
|
||||
. `dirname $0`/common.sh
|
||||
|
||||
trap 'kill -9 $(jobs -p)' EXIT
|
||||
|
||||
ETCD=${ETCD:-etcd}
|
||||
ETCD_PORT=${ETCD_PORT:-12379}
|
||||
|
||||
rm -rf ./testdata
|
||||
mkdir -p ./testdata
|
||||
dd if=/dev/zero of=./testdata/test_osd1.bin bs=1024 count=1 seek=$((1024*1024-1))
|
||||
dd if=/dev/zero of=./testdata/test_osd2.bin bs=1024 count=1 seek=$((1024*1024-1))
|
||||
dd if=/dev/zero of=./testdata/test_osd3.bin bs=1024 count=1 seek=$((1024*1024-1))
|
||||
|
||||
$ETCD -name etcd_test --data-dir ./testdata/etcd \
|
||||
--advertise-client-urls http://127.0.0.1:$ETCD_PORT --listen-client-urls http://127.0.0.1:$ETCD_PORT \
|
||||
--initial-advertise-peer-urls http://127.0.0.1:$((ETCD_PORT+1)) --listen-peer-urls http://127.0.0.1:$((ETCD_PORT+1)) \
|
||||
--max-txn-ops=100000 --auto-compaction-retention=10 --auto-compaction-mode=revision &>./testdata/etcd.log &
|
||||
ETCD_PID=$!
|
||||
ETCD_URL=127.0.0.1:$ETCD_PORT/v3
|
||||
ETCDCTL="${ETCD}ctl --endpoints=http://$ETCD_URL"
|
||||
|
||||
./osd --osd_num 1 --bind_address 127.0.0.1 --etcd_address $ETCD_URL $(node mon/simple-offsets.js --format options --device ./testdata/test_osd1.bin 2>/dev/null) &>./testdata/osd1.log &
|
||||
OSD1_PID=$!
|
||||
./osd --osd_num 2 --bind_address 127.0.0.1 --etcd_address $ETCD_URL $(node mon/simple-offsets.js --format options --device ./testdata/test_osd2.bin 2>/dev/null) &>./testdata/osd2.log &
|
Loading…
Reference in New Issue