Whamcloud - gitweb
LU-2950 lnet: Add a mechanism to configure routes from a file
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 9ebe087..655329f 100644 (file)
@@ -49,6 +49,7 @@ PTLDEBUG=${PTLDEBUG:--1}
 SAVE_PWD=$PWD
 LUSTRE=${LUSTRE:-`dirname $0`/..}
 RLUSTRE=${RLUSTRE:-$LUSTRE}
+LUSTRE_TESTS_API_DIR=${LUSTRE_TESTS_API_DIR:-${LUSTRE}/tests/clientapi}
 export MULTIOP=${MULTIOP:-multiop}
 
 . $LUSTRE/tests/test-framework.sh
@@ -788,16 +789,12 @@ test_21d() {
 run_test 21d "start mgs then ost and then mds"
 
 test_22() {
-       local num
-
        start_mds
 
        echo Client mount with ost in logs, but none running
        start_ost
        # wait until mds connected to ost and open client connection
-       for num in $(seq 1 $MDSCOUNT); do
-               wait_osc_import_state mds${num} ost FULL
-       done
+       wait_osc_import_state mds ost FULL
        stop_ost
        mount_client $MOUNT
        # check_mount will block trying to contact ost
@@ -817,9 +814,7 @@ test_22() {
                sleep $((TIMEOUT + TIMEOUT + TIMEOUT))
        fi
        mount_client $MOUNT
-       for num in $(seq 1 $MDSCOUNT); do
-               wait_osc_import_state mds${num} ost FULL
-       done
+       wait_osc_import_state mds ost FULL
        wait_osc_import_state client ost FULL
        check_mount || return 41
        pass
@@ -1822,6 +1817,7 @@ t32_test() {
                        return 1
                }
                shall_cleanup_mdt=false
+
                $r umount -d $tmp/mnt/ost || {
                        error_noexit "Unmounting the OST"
                        return 1
@@ -3664,7 +3660,7 @@ test_66() {
        stop_mds || error "stopping mds failed"
 
        if combined_mgs_mds; then
-               start_mds "-o nosvc" ||
+               start_mdt 1 "-o nosvc" ||
                        error "starting mds with nosvc option failed"
        fi
 
@@ -3709,6 +3705,64 @@ test_66() {
 }
 run_test 66 "replace nids"
 
+test_67() { #LU-2950
+       local legacy="$TMP/legacy_lnet_config"
+       local new="$TMP/new_routes_test"
+       local out="$TMP/config_out_file"
+       local verify="$TMP/conv_verify"
+       local verify_conf="$TMP/conf_verify"
+
+       # Create the legacy file that will be run through the
+       # lustre_routes_conversion script
+       cat <<- LEGACY_LNET_CONFIG > $legacy
+               tcp1 23 192.168.213.1@tcp:1; tcp5 34 193.30.4.3@tcp:4;
+               tcp2 54 10.1.3.2@tcp;
+               tcp3 10.3.4.3@tcp:3;
+               tcp4 10.3.3.4@tcp;
+       LEGACY_LNET_CONFIG
+
+       # Create the verification file to verify the output of
+       # lustre_routes_conversion script against.
+       cat <<- VERIFY_LNET_CONFIG > $verify
+               tcp1: { gateway: 192.168.213.1@tcp, hop: 23, priority: 1 }
+               tcp5: { gateway: 193.30.4.3@tcp, hop: 34, priority: 4 }
+               tcp2: { gateway: 10.1.3.2@tcp, hop: 54 }
+               tcp3: { gateway: 10.3.4.3@tcp, priority: 3 }
+               tcp4: { gateway: 10.3.3.4@tcp }
+       VERIFY_LNET_CONFIG
+
+       # Create the verification file to verify the output of
+       # lustre_routes_config script against
+       cat <<- VERIFY_LNET_CONFIG > $verify_conf
+               lctl --net tcp1 add_route 192.168.213.1@tcp 23 1
+               lctl --net tcp5 add_route 193.30.4.3@tcp 34 4
+               lctl --net tcp2 add_route 10.1.3.2@tcp 54 4
+               lctl --net tcp3 add_route 10.3.4.3@tcp 1 3
+               lctl --net tcp4 add_route 10.3.3.4@tcp 1 3
+       VERIFY_LNET_CONFIG
+
+       lustre_routes_conversion $legacy $new > /dev/null
+       if [ -f $new ]; then
+               # verify the conversion output
+               cmp -s $new $verify > /dev/null
+               if [ $? -eq 1 ]; then
+                       error "routes conversion failed"
+               fi
+
+               lustre_routes_config --dry-run --verbose $new > $out
+               # check that the script succeeded
+               cmp -s $out $verify_conf > /dev/null
+               if [ $? -eq 1 ]; then
+                       error "routes config failed"
+               fi
+       else
+               error "routes conversion test failed"
+       fi
+       # remove generated files
+       rm -f $new $legacy $verify $verify_conf $out
+}
+run_test 67 "test routes conversion and configuration"
+
 test_70a() {
        [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
        local MDTIDX=1
@@ -3963,10 +4017,14 @@ test_72() { #LU-2634
                skip "ldiskfs only test" && return
 
        #tune MDT with "-O extents"
-       add $SINGLEMDS \
-               $(mkfs_opts $SINGLEMDS ${mdsdev}) --reformat $mdsdev ||
-                       error "add $SINGLEMDS failed"
-       $TUNE2FS -O extents $mdsdev
+
+       for num in $(seq $MDSCOUNT); do
+               add mds${num} $(mkfs_opts mds$num $(mdsdevname $num)) \
+               --reformat $(mdsdevname $num) $(mdsvdevname $num) ||
+               error "add mds $num failed"
+               $TUNE2FS -O extents $(mdsdevname $num)
+       done
+
        add ost1 $(mkfs_opts ost1 $ostdev) --reformat $ostdev ||
                error "add $ostdev failed"
        start_mgsmds || error "start mds failed"
@@ -3992,6 +4050,32 @@ test_72() { #LU-2634
 }
 run_test 72 "test fast symlink with extents flag enabled"
 
+test_73() { #LU-3006
+       load_modules
+       do_facet ost1 "$TUNEFS --failnode=1.2.3.4@tcp $(ostdevname 1)" ||
+               error "1st tunefs failed"
+       start_mgsmds || error "start mds failed"
+       start_ost || error "start ost failed"
+       mount_client $MOUNT || error "mount client failed"
+       lctl get_param -n osc.*OST0000-osc-[^M]*.import | grep failover_nids |
+               grep 1.2.3.4@tcp || error "failover nids haven't changed"
+       umount_client $MOUNT || error "umount client failed"
+       stopall
+       reformat
+}
+run_test 73 "failnode to update from mountdata properly"
+
+test_74() { # LU-1606
+       for TESTPROG in $LUSTRE_TESTS_API_DIR/*.c; do
+               gcc -Wall -Werror $LUSTRE_TESTS_API_DIR/simple_test.c \
+                       -I$LUSTRE/include \
+                       -L$LUSTRE/utils -llustreapi ||
+                               error "client api broken"
+       done
+       cleanup || return $?
+}
+run_test 74 "Lustre client api program can compile and link"
+
 if ! combined_mgs_mds ; then
        stop mgs
 fi