X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fqa%2Fstandalone%2Fmon%2Fmon-bind.sh;fp=src%2Fceph%2Fqa%2Fstandalone%2Fmon%2Fmon-bind.sh;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=a4d774d5566e12e3d5f09f6a2066478dd13c1388;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/qa/standalone/mon/mon-bind.sh b/src/ceph/qa/standalone/mon/mon-bind.sh deleted file mode 100755 index a4d774d..0000000 --- a/src/ceph/qa/standalone/mon/mon-bind.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2017 Quantum Corp. -# -# 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 - -SOCAT_PIDS=() - -function port_forward() { - local source_port=$1 - local target_port=$2 - - socat TCP-LISTEN:${source_port},fork,reuseaddr TCP:localhost:${target_port} & - SOCAT_PIDS+=( $! ) -} - -function cleanup() { - for p in "${SOCAT_PIDS[@]}"; do - kill $p - done - SOCAT_PIDS=() -} - -trap cleanup SIGTERM SIGKILL SIGQUIT SIGINT - -function run() { - local dir=$1 - shift - - export MON_IP=127.0.0.1 - export MONA_PUBLIC=7132 # git grep '\<7132\>' ; there must be only one - export MONB_PUBLIC=7133 # git grep '\<7133\>' ; there must be only one - export MONC_PUBLIC=7134 # git grep '\<7134\>' ; there must be only one - export MONA_BIND=7135 # git grep '\<7135\>' ; there must be only one - export MONB_BIND=7136 # git grep '\<7136\>' ; there must be only one - export MONC_BIND=7137 # git grep '\<7137\>' ; there must be only one - export CEPH_ARGS - CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " - - local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} - for func in $funcs ; do - setup $dir || return 1 - $func $dir && cleanup || { cleanup; return 1; } - teardown $dir - done -} - -function TEST_mon_client_connect_fails() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC} " - run_mon $dir a --mon-host=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - - # now attempt to ping it that should fail. - timeout 3 ceph ping mon.a || return 0 - return 1 -} - -function TEST_mon_client_connect() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC} " - run_mon $dir a --mon-host=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - - # attempt to connect. we expect that to work - ceph ping mon.a || return 1 -} - -function TEST_mon_quorum() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a,b,c " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC},${MON_IP}:${MONB_PUBLIC},${MON_IP}:${MONC_PUBLIC} " - run_mon $dir a --public-addr=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - run_mon $dir b --public-addr=${MON_IP}:${MONB_PUBLIC} --public-bind-addr=${MON_IP}:${MONB_BIND} || return 1 - run_mon $dir c --public-addr=${MON_IP}:${MONC_PUBLIC} --public-bind-addr=${MON_IP}:${MONC_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - port_forward ${MONB_PUBLIC} ${MONB_BIND} - port_forward ${MONC_PUBLIC} ${MONC_BIND} - - # expect monmap to contain 3 monitors (a, b, and c) - jqinput="$(ceph mon_status --format=json 2>/dev/null)" - jq_success "$jqinput" '.monmap.mons | length == 3' || return 1 - - # quorum should form - wait_for_quorum 300 3 || return 1 - # expect quorum to have all three monitors - jqfilter='.quorum | length == 3' - jq_success "$jqinput" "$jqfilter" || return 1 -} - -function TEST_put_get() { - local dir=$1 - - # start the mon with a public-bind-addr that is different - # from the public-addr. - CEPH_ARGS+="--mon-initial-members=a,b,c " - CEPH_ARGS+="--mon-host=${MON_IP}:${MONA_PUBLIC},${MON_IP}:${MONB_PUBLIC},${MON_IP}:${MONC_PUBLIC} " - run_mon $dir a --public-addr=${MON_IP}:${MONA_PUBLIC} --public-bind-addr=${MON_IP}:${MONA_BIND} || return 1 - run_mon $dir b --public-addr=${MON_IP}:${MONB_PUBLIC} --public-bind-addr=${MON_IP}:${MONB_BIND} || return 1 - run_mon $dir c --public-addr=${MON_IP}:${MONC_PUBLIC} --public-bind-addr=${MON_IP}:${MONC_BIND} || return 1 - - # now forward the public port to the bind port. - port_forward ${MONA_PUBLIC} ${MONA_BIND} - port_forward ${MONB_PUBLIC} ${MONB_BIND} - port_forward ${MONC_PUBLIC} ${MONC_BIND} - - # quorum should form - wait_for_quorum 300 3 || return 1 - - run_mgr $dir x || return 1 - run_osd $dir 0 || return 1 - run_osd $dir 1 || return 1 - run_osd $dir 2 || return 1 - - create_pool hello 8 || return 1 - - echo "hello world" > $dir/hello - rados --pool hello put foo $dir/hello || return 1 - rados --pool hello get foo $dir/hello2 || return 1 - diff $dir/hello $dir/hello2 || return 1 -} - -main mon-bind "$@"