From f437598cfcabbd66c372bc8ed2cbfdf440633080 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Tue, 20 Mar 2018 01:14:41 +0800 Subject: [PATCH] stop.sh: specify the ceph.conf path to avoid using wrong ceph.conf. Also specify the ceph.conf path for ceph-conf command in vstart.sh. Signed-off-by: Jianpeng Ma --- src/stop.sh | 17 ++++++++++++----- src/vstart.sh | 6 +++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/stop.sh b/src/stop.sh index 7838c53144456..f83a43f2b7174 100755 --- a/src/stop.sh +++ b/src/stop.sh @@ -22,6 +22,13 @@ if [ -e CMakeCache.txt ]; then [ -z "$CEPH_BIN" ] && CEPH_BIN=bin fi +if [ -n "$VSTART_DEST" ]; then + CEPH_CONF_PATH=$VSTART_DEST +else + CEPH_CONF_PATH="$PWD" +fi +conf_fn="$CEPH_CONF_PATH/ceph.conf" + MYUID=$(id -u) MYNAME=$(id -nu) @@ -73,8 +80,8 @@ while [ $# -ge 1 ]; do done if [ $stop_all -eq 1 ]; then - if "${CEPH_BIN}"/rbd device list >/dev/null 2>&1; then - "${CEPH_BIN}"/rbd device list | tail -n +2 | + if "${CEPH_BIN}"/rbd device list -c $conf_fn >/dev/null 2>&1; then + "${CEPH_BIN}"/rbd device list -c $conf_fn | tail -n +2 | while read DEV; do # While it is currently possible to create an rbd image with # whitespace chars in its name, krbd will refuse mapping such @@ -82,10 +89,10 @@ if [ $stop_all -eq 1 ]; then # same goes for whitespace chars in names of the pools that # contain rbd images). DEV="$(echo "${DEV}" | tr -s '[:space:]' | awk '{ print $5 }')" - sudo "${CEPH_BIN}"/rbd device unmap "${DEV}" + sudo "${CEPH_BIN}"/rbd device unmap "${DEV}" -c $conf_fn done - if [ -n "$("${CEPH_BIN}"/rbd device list)" ]; then + if [ -n "$("${CEPH_BIN}"/rbd device list -c $conf_fn)" ]; then echo "WARNING: Some rbd images are still mapped!" >&2 fi fi @@ -102,7 +109,7 @@ if [ $stop_all -eq 1 ]; then pkill -u $MYUID -f valgrind.bin.\*ceph-mon $SUDO pkill -u $MYUID -f valgrind.bin.\*ceph-osd pkill -u $MYUID -f valgrind.bin.\*ceph-mds - asok_dir=`dirname $("${CEPH_BIN}"/ceph-conf --show-config-value admin_socket)` + asok_dir=`dirname $("${CEPH_BIN}"/ceph-conf -c ${conf_fn} --show-config-value admin_socket)` rm -rf "${asok_dir}" else [ $stop_mon -eq 1 ] && do_killall ceph-mon diff --git a/src/vstart.sh b/src/vstart.sh index 4760534ee95fb..5db0187071916 100755 --- a/src/vstart.sh +++ b/src/vstart.sh @@ -325,7 +325,7 @@ if [ $kill_all -eq 1 ]; then fi if [ "$overwrite_conf" -eq 0 ]; then - CEPH_ASOK_DIR=`dirname $($CEPH_BIN/ceph-conf --show-config-value admin_socket)` + CEPH_ASOK_DIR=`dirname $($CEPH_BIN/ceph-conf -c $conf_fn --show-config-value admin_socket)` mkdir -p $CEPH_ASOK_DIR MON=`$CEPH_BIN/ceph-conf -c $conf_fn --name $VSTART_SEC num_mon 2>/dev/null` && \ CEPH_NUM_MON="$MON" @@ -340,7 +340,7 @@ if [ "$overwrite_conf" -eq 0 ]; then else if [ "$new" -ne 0 ]; then # only delete if -n - asok_dir=`dirname $($CEPH_BIN/ceph-conf --show-config-value admin_socket)` + asok_dir=`dirname $($CEPH_BIN/ceph-conf -c $conf_fn --show-config-value admin_socket)` if [ $asok_dir != /var/run/ceph ]; then [ -d $asok_dir ] && rm -f $asok_dir/* && rmdir $asok_dir fi @@ -349,7 +349,7 @@ else fi [ -e "$conf_fn" ] && rm -- "$conf_fn" else - CEPH_ASOK_DIR=`dirname $($CEPH_BIN/ceph-conf --show-config-value admin_socket)` + CEPH_ASOK_DIR=`dirname $($CEPH_BIN/ceph-conf -c $conf_fn --show-config-value admin_socket)` # -k is implied... (doesn't make sense otherwise) overwrite_conf=0 fi