]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa: rbd: don't modprobe, chown sysfs files or udevadm settle
authorIlya Dryomov <idryomov@gmail.com>
Thu, 12 May 2016 13:07:12 +0000 (15:07 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 13 May 2016 15:51:45 +0000 (17:51 +0200)
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 <idryomov@gmail.com>
qa/workunits/rbd/concurrent.sh
qa/workunits/rbd/image_read.sh
qa/workunits/rbd/kernel.sh
qa/workunits/rbd/simple_big.sh

index 2f3ce9c3664dd6c63ebc0794e2caffdae657997b..f3373b5fff2425fdd380c2efd4508be4bea45697 100755 (executable)
@@ -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() {
index 24fcea2a327f39ae16260fc6a1a01b84e500ebf5..907ce869bc44a863a55f46e940a434c190b4bc27 100755 (executable)
@@ -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
 }
 
index 447e9bea0ecbac416f0b6a3e3cb9f43e9f72950d..5fb6b9358a01951543ce11e2b046ea527a832d1e 100755 (executable)
@@ -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
index 6a8e62cb56462860d15eef3038325e39aa67a963..0a357fb7bfcbca862b63f94ffcdd1bbafcabc84a 100755 (executable)
@@ -1,7 +1,5 @@
 #!/bin/sh -ex
 
-[ -d /sys/bus/rbd ] || sudo modprobe rbd
-
 mb=100000
 
 rbd create foo --size $mb