From 6bddef8ecff97f732bf707d9ba6d2386bc147f5a Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Thu, 12 May 2016 15:07:12 +0200 Subject: [PATCH] qa: rbd: don't modprobe, chown sysfs files or udevadm settle This is a followup to 38a572011dbb ("qa: rbd/map-snapshot-io.sh: don't chown sysfs files") for the rest of the workunits: - /sys/bus/rbd/add_single_major is used if present, so chown'ing /sys/bus/rbd/add doesn't help. Use sudo on rbd map instead. - Don't modprobe or udevadm settle - rbd CLI tool takes care of that. Signed-off-by: Ilya Dryomov --- qa/workunits/rbd/concurrent.sh | 15 ++++----------- qa/workunits/rbd/image_read.sh | 27 ++------------------------- qa/workunits/rbd/kernel.sh | 20 ++++---------------- qa/workunits/rbd/simple_big.sh | 2 -- 4 files changed, 10 insertions(+), 54 deletions(-) diff --git a/qa/workunits/rbd/concurrent.sh b/qa/workunits/rbd/concurrent.sh index 2f3ce9c3664..f3373b5fff2 100755 --- a/qa/workunits/rbd/concurrent.sh +++ b/qa/workunits/rbd/concurrent.sh @@ -47,8 +47,8 @@ ################################################################ -# set -x -# +set -x + # Default flag values; RBD_CONCURRENT_ITER names are intended # to be used in yaml scripts to pass in alternate values, e.g.: # env: @@ -74,8 +74,6 @@ function setup() { NAMES_DIR=$(mktemp -d /tmp/image_names.XXXXXX) SOURCE_DATA=$(mktemp /tmp/source_data.XXXXXX) - [ -d /sys/bus/rbd ] || sudo modprobe rbd - # Use urandom to generate SOURCE_DATA dd if=/dev/urandom of=${SOURCE_DATA} bs=2048 count=66 \ >/dev/null 2>&1 @@ -83,8 +81,6 @@ function setup() { # List of rbd id's *not* created by this script export INITIAL_RBD_IDS=$(ls /sys/bus/rbd/devices) - sudo chown ubuntu /sys/bus/rbd/add /sys/bus/rbd/remove - # Set up some environment for normal teuthology test setup. # This really should not be necessary but I found it was. @@ -110,7 +106,6 @@ function cleanup() { sync rm -f "${SOURCE_DATA}" [ -d "${NAMES_DIR}" ] && rmdir "${NAMES_DIR}" - sudo chown root /sys/bus/rbd/add /sys/bus/rbd/remove echo "Max concurrent rbd image count was $(get_max "${ID_COUNT_DIR}")" rm -rf "${ID_COUNT_DIR}" echo "Max rbd image id was $(get_max "${ID_MAX_DIR}")" @@ -262,9 +257,8 @@ function rbd_map_image() { local image="$1" local id - rbd map "${image}" --user "${CEPH_ID}" ${SECRET_ARGS} + sudo rbd map "${image}" --user "${CEPH_ID}" ${SECRET_ARGS} - udevadm settle id=$(rbd_image_id "${image}") echo "${id}" } @@ -323,8 +317,7 @@ function rbd_unmap_image() { [ $# -eq 1 ] || exit 99 local id="$1" - rbd unmap "/dev/rbd${id}" > /dev/null 2>&1 - udevadm settle + sudo rbd unmap "/dev/rbd${id}" > /dev/null 2>&1 } function rbd_destroy_image() { diff --git a/qa/workunits/rbd/image_read.sh b/qa/workunits/rbd/image_read.sh index 24fcea2a327..907ce869bc4 100755 --- a/qa/workunits/rbd/image_read.sh +++ b/qa/workunits/rbd/image_read.sh @@ -55,8 +55,6 @@ MAX_OBJECT_ORDER=32 PROGNAME=$(basename $0) -[ $(id -u) -eq 0 ] && SUSER=true - ORIGINAL=original-$$ SNAP1=snap1-$$ CLONE1=clone1-$$ @@ -260,15 +258,6 @@ function setup() { TEMP=$(mktemp -d /tmp/rbd_image_read.XXXXX) mkdir -p $(out_data_dir) - if [ "${LOCAL_FILES}" != true -a "${SUSER}" != true ]; then - [ -d /sys/bus/rbd ] || sudo modprobe rbd - while [ ! -f /sys/bus/rbd/add ]; do - sleep 1 - done - # allow ubuntu user to map/unmap rbd devices - sudo chown ubuntu /sys/bus/rbd/add - sudo chown ubuntu /sys/bus/rbd/remove - fi # create and fill the original image with some data create_image "${ORIGINAL}" map_image "${ORIGINAL}" @@ -311,10 +300,6 @@ function teardown() { destroy_image_snap "${ORIGINAL}" "${SNAP1}" || true unmap_image "${ORIGINAL}" || true destroy_image "${ORIGINAL}" || true - if [ "${LOCAL_FILES}" != true -a "${SUSER}" != true ]; then - sudo chown root /sys/bus/rbd/add - sudo chown root /sys/bus/rbd/remove - fi rm -rf $(out_data_dir) rmdir "${TEMP}" @@ -363,12 +348,7 @@ function map_image() { return fi - rbd map "${image_name}" - udevadm settle - # allow ubuntu user to write to the device - [ "${SUSER}" = true ] || - sudo chown ubuntu $(image_dev_path "${image_name}") - true # Don't let the suser test spoil our return value + sudo rbd map "${image_name}" } function unmap_image() { @@ -382,10 +362,7 @@ function unmap_image() { image_path=$(image_dev_path "${image_name}") if [ -e "${image_path}" ]; then - [ "${SUSER}" = true ] || sudo chown root "${image_path}" - udevadm settle - rbd unmap "${image_path}" - udevadm settle + sudo rbd unmap "${image_path}" fi } diff --git a/qa/workunits/rbd/kernel.sh b/qa/workunits/rbd/kernel.sh index 447e9bea0ec..5fb6b9358a0 100755 --- a/qa/workunits/rbd/kernel.sh +++ b/qa/workunits/rbd/kernel.sh @@ -17,28 +17,20 @@ function get_device_dir { } function clean_up { - udevadm settle [ -e /dev/rbd/rbd/testimg1@snap1 ] && - rbd unmap /dev/rbd/rbd/testimg1@snap1 || true + sudo rbd unmap /dev/rbd/rbd/testimg1@snap1 if [ -e /dev/rbd/rbd/testimg1 ]; then - rbd unmap /dev/rbd/rbd/testimg1 || true + sudo rbd unmap /dev/rbd/rbd/testimg1 rbd snap purge testimg1 || true fi - udevadm settle - sudo chown root /sys/bus/rbd/add /sys/bus/rbd/remove rbd ls | grep testimg1 > /dev/null && rbd rm testimg1 || true sudo rm -f $TMP_FILES } -[ -d /sys/bus/rbd ] || sudo modprobe rbd - clean_up trap clean_up INT TERM EXIT -# allow ubuntu user to map/unmap rbd devices -sudo chown ubuntu /sys/bus/rbd/add /sys/bus/rbd/remove - # create an image dd if=/bin/sh of=/tmp/img1 bs=1k count=1 seek=10 dd if=/bin/dd of=/tmp/img1 bs=1k count=10 seek=100 @@ -49,9 +41,7 @@ dd if=/dev/zero of=/tmp/img1 count=0 seek=150000 # import rbd import /tmp/img1 testimg1 -rbd map testimg1 --user $CEPH_ID $SECRET_ARGS -# wait for udev to catch up -udevadm settle +sudo rbd map testimg1 --user $CEPH_ID $SECRET_ARGS DEV_ID1=$(get_device_dir rbd testimg1 -) echo "dev_id1 = $DEV_ID1" @@ -63,9 +53,7 @@ cmp /tmp/img1 /tmp/img1.export # snapshot rbd snap create testimg1 --snap=snap1 -rbd map --snap=snap1 testimg1 --user $CEPH_ID $SECRET_ARGS -# wait for udev to catch up -udevadm settle +sudo rbd map --snap=snap1 testimg1 --user $CEPH_ID $SECRET_ARGS DEV_ID2=$(get_device_dir rbd testimg1 snap1) cat /sys/bus/rbd/devices/$DEV_ID2/size | grep 76800000 diff --git a/qa/workunits/rbd/simple_big.sh b/qa/workunits/rbd/simple_big.sh index 6a8e62cb564..0a357fb7bfc 100755 --- a/qa/workunits/rbd/simple_big.sh +++ b/qa/workunits/rbd/simple_big.sh @@ -1,7 +1,5 @@ #!/bin/sh -ex -[ -d /sys/bus/rbd ] || sudo modprobe rbd - mb=100000 rbd create foo --size $mb -- 2.39.5