test: listen on random port in tests which start ceph-mon

See-also: http://tracker.ceph.com/issues/36737
Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2019-01-27 14:27:57 +08:00
parent a8d6b2170d
commit 94a84b6f5a
3 changed files with 18 additions and 6 deletions

View File

@ -392,6 +392,17 @@ function test_kill_daemons() {
teardown $dir || return 1
}
#
# return a random TCP port which is not used yet
#
# please note, there could be racing if we use this function for
# a free port, and then try to bind on this port.
#
function get_unused_port() {
local ip=127.0.0.1
python3 -c "import socket; s=socket.socket(); s.bind(('$ip', 0)); print(s.getsockname()[1]); s.close()"
}
#######################################################################
##

View File

@ -8,7 +8,7 @@ function run() {
local dir=$1
shift
export CEPH_MON="127.0.0.1:7227" # git grep '\<7227\>' : there must be only one
export CEPH_MON="127.0.0.1:$(get_unused_port)"
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=$CEPH_MON "

View File

@ -2,11 +2,13 @@
source $CEPH_ROOT/qa/standalone/ceph-helpers.sh
mon_port=$(get_unused_port)
function run() {
local dir=$1
shift
export CEPH_MON="127.0.0.1:7224" # git grep '\<7224\>' : there must be only one
export CEPH_MON="127.0.0.1:$mon_port"
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=$CEPH_MON "
@ -34,10 +36,9 @@ function TEST_minimal() {
function TEST_multimon() {
local dir=$1
MONA="127.0.0.1:7224" # git grep '\<7224\>' : there must be only one
MONB="127.0.0.1:7225" # git grep '\<7225\>' : there must be only one
MONC="127.0.0.1:7226" # git grep '\<7226\>' : there must be only one
MONA="127.0.0.1:$((mon_port++))"
MONB="127.0.0.1:$((mon_port++))"
MONC="127.0.0.1:$((mon_port++))"
run_mon $dir a --public-addr $MONA
run_mon $dir b --public-addr $MONB