From: Pan Liu Date: Sun, 18 Jun 2017 08:13:11 +0000 (+0800) Subject: qa/workunits: update rbd-nbd.sh for the changes of rbd-nbd list-mapped. X-Git-Tag: v12.1.0~8^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a899bee57ea1001b59145ed8ac0db49cdb46a7af;p=ceph.git qa/workunits: update rbd-nbd.sh for the changes of rbd-nbd list-mapped. Signed-off-by: Pan Liu --- diff --git a/qa/workunits/rbd/rbd-nbd.sh b/qa/workunits/rbd/rbd-nbd.sh index 348d9c177f95d..333e3d77c8bb0 100755 --- a/qa/workunits/rbd/rbd-nbd.sh +++ b/qa/workunits/rbd/rbd-nbd.sh @@ -91,18 +91,24 @@ expect_false _sudo rbd-nbd --device INVALIDDEV map ${IMAGE} # map test using the first unused device DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` -_sudo rbd-nbd list-mapped | grep "^${DEV}$" - +PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ + '$2 == pool && $3 == img && $5 == dev {print $1}') +test -n "${PID}" +ps -p ${PID} -o cmd | grep rbd-nbd # map test specifying the device expect_false _sudo rbd-nbd --device ${DEV} map ${POOL}/${IMAGE} dev1=${DEV} _sudo rbd-nbd unmap ${DEV} -_sudo rbd-nbd list-mapped | expect_false grep "^${DEV}$" +rbd-nbd list-mapped | expect_false grep "${DEV} $" DEV= # XXX: race possible when the device is reused by other process DEV=`_sudo rbd-nbd --device ${dev1} map ${POOL}/${IMAGE}` [ "${DEV}" = "${dev1}" ] -_sudo rbd-nbd list-mapped | grep "^${DEV}$" +rbd-nbd list-mapped | grep "${IMAGE}" +PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ + '$2 == pool && $3 == img && $5 == dev {print $1}') +test -n "${PID}" +ps -p ${PID} -o cmd | grep rbd-nbd # read test [ "`dd if=${DATA} bs=1M | md5sum`" = "`_sudo dd if=${DEV} bs=1M | md5sum`" ] @@ -143,18 +149,40 @@ test ${blocks2} -eq ${blocks} # read-only option test _sudo rbd-nbd unmap ${DEV} DEV=`_sudo rbd-nbd map --read-only ${POOL}/${IMAGE}` -_sudo rbd-nbd list-mapped | grep "^${DEV}$" +PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ + '$2 == pool && $3 == img && $5 == dev {print $1}') +test -n "${PID}" +ps -p ${PID} -o cmd | grep rbd-nbd + _sudo dd if=${DEV} of=/dev/null bs=1M expect_false _sudo dd if=${DATA} of=${DEV} bs=1M oflag=direct _sudo rbd-nbd unmap ${DEV} # exclusive option test DEV=`_sudo rbd-nbd map --exclusive ${POOL}/${IMAGE}` -_sudo rbd-nbd list-mapped | grep "^${DEV}$" +PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ + '$2 == pool && $3 == img && $5 == dev {print $1}') +test -n "${PID}" +ps -p ${PID} -o cmd | grep rbd-nbd + _sudo dd if=${DATA} of=${DEV} bs=1M oflag=direct expect_false timeout 10 \ rbd bench ${IMAGE} --io-type write --io-size=1024 --io-total=1024 _sudo rbd-nbd unmap ${DEV} + +# auto unmap test +DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` +PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ + '$2 == pool && $3 == img && $5 == dev {print $1}') +test -n "${PID}" +ps -p ${PID} -o cmd | grep rbd-nbd +_sudo kill ${PID} +for i in `seq 10`; do + rbd-nbd list-mapped | expect_false grep "^${PID} *${POOL} *${IMAGE}" && break + sleep 1 +done +rbd-nbd list-mapped | expect_false grep "^${PID} *${POOL} *${IMAGE}" + DEV= rbd bench ${IMAGE} --io-type write --io-size=1024 --io-total=1024