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()"
+}
+
#######################################################################
##
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 "
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 "
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