X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fsanity.sh;h=f1235f13b857d9acbdf67922928a55d7d622bb24;hb=51ed079112c9a9eeac37eaf680637a4d04dd3cc9;hp=57175e25ec822afea24757dff1ee4edf61689c1a;hpb=ca3587c56cead648c831d7ec041a512917a3a0ae;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index 57175e2..f1235f1 100644 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -466,6 +466,7 @@ test_17g() { run_test 17g "symlinks: really long symlink name ===============================" test_17h() { #bug 17378 + remote_mds_nodsh && skip "remote MDS with nodsh" && return mkdir -p $DIR/$tdir $SETSTRIPE $DIR/$tdir -c -1 #define OBD_FAIL_MDS_LOV_PREP_CREATE 0x141 @@ -475,6 +476,7 @@ test_17h() { #bug 17378 run_test 17h "create objects: lov_free_memmd() doesn't lbug" test_17i() { #bug 20018 + remote_mds_nodsh && skip "remote MDS with nodsh" && return mkdir -p $DIR/$tdir local foo=$DIR/$tdir/$tfile ln -s $foo $foo || error "create symlink failed" @@ -1043,8 +1045,7 @@ exhaust_precreations() { local MDSIDX=$(get_mds_dir "$DIR/$tdir") echo OSTIDX=$OSTIDX MDSIDX=$MDSIDX - local OST=$(lfs osts | grep ${OSTIDX}": " | \ - awk '{print $2}' | sed -e 's/_UUID$//') + local OST=$(ostname_from_index $OSTIDX) local MDT_INDEX=$(lfs df | grep "\[MDT:$((MDSIDX - 1))\]" | awk '{print $1}' | \ sed -e 's/_UUID$//;s/^.*-//') @@ -1138,6 +1139,7 @@ test_27q() { reset_enospc rm -f $DIR/$tdir/$tfile + mkdir -p $DIR/$tdir $MCREATE $DIR/$tdir/$tfile || error "mcreate $DIR/$tdir/$tfile failed" $TRUNCATE $DIR/$tdir/$tfile 80000000 ||error "truncate $DIR/$tdir/$tfile failed" $CHECKSTAT -s 80000000 $DIR/$tdir/$tfile || error "checkstat failed" @@ -1220,7 +1222,7 @@ test_27v() { # bug 4900 touch $DIR/$tdir/$tfile #define OBD_FAIL_TGT_DELAY_PRECREATE 0x705 # all except ost1 - for (( i=0; i < OSTCOUNT; i++ )) ; do + for (( i=1; i < OSTCOUNT; i++ )); do do_facet ost$i lctl set_param fail_loc=0x705 done local START=`date +%s` @@ -1257,10 +1259,11 @@ test_27w() { # bug 10997 run_test 27w "check lfs setstripe -c -s -i options =============" test_27x() { + remote_ost_nodsh && skip "remote OST with nodsh" && return [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2 OSTs" && return OFFSET=$(($OSTCOUNT - 1)) OSTIDX=0 - local OST=$(lfs osts | awk '/'${OSTIDX}': / { print $2 }' | sed -e 's/_UUID$//') + local OST=$(ostname_from_index $OSTIDX) mkdir -p $DIR/$tdir $SETSTRIPE $DIR/$tdir -c 1 # 1 stripe per file @@ -1278,6 +1281,7 @@ run_test 27x "create files while OST0 is degraded" test_27y() { [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2 OSTs -- skipping" && return remote_mds_nodsh && skip "remote MDS with nodsh" && return + remote_ost_nodsh && skip "remote OST with nodsh" && return local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0000) local last_id=$(do_facet $SINGLEMDS lctl get_param -n \ @@ -1300,14 +1304,14 @@ test_27y() { } fi done - OSTIDX=$(lfs osts | grep ${OST} | awk '{print $1}' | sed -e 's/://') + OSTIDX=$(index_from_ostuuid $OST) mkdir -p $DIR/$tdir $SETSTRIPE $DIR/$tdir -c 1 # 1 stripe / file - do_facet ost$OSTIDX lctl set_param -n obdfilter.$OST.degraded 1 + do_facet ost$((OSTIDX+1)) lctl set_param -n obdfilter.$OST.degraded 1 sleep_maxage createmany -o $DIR/$tdir/$tfile $fcount - do_facet ost$OSTIDX lctl set_param -n obdfilter.$OST.degraded 0 + do_facet ost$((OSTIDX+1)) lctl set_param -n obdfilter.$OST.degraded 0 for i in `seq 0 $OFFSET`; do [ `$GETSTRIPE $DIR/$tdir/$tfile$i | grep -A 10 obdidx | awk '{print $1}'| grep -w "$OSTIDX"` ] || \ @@ -1349,8 +1353,7 @@ check_seq_oid() local objid=${lmm[$((j+1))]} local group=${lmm[$((j+3))]} local dev=$(ostdevname $devnum) - local dir=${MOUNT%/*}/ost$devnum - local mntpt=$(facet_mntpt ost$devnum) + local dir=$(facet_mntpt ost$devnum) stop ost$devnum do_facet ost$devnum mount -t $FSTYPE $dev $dir $OST_MOUNT_OPTS || @@ -1370,12 +1373,13 @@ check_seq_oid() [ $stripe -eq $i ] || { error "stripe mismatch"; return 6; } echo -e "\t\tost $obdidx, objid $objid, group $group" - do_facet ost$devnum umount -d $mntpt + do_facet ost$devnum umount -d $dir start ost$devnum $dev $OST_MOUNT_OPTS done } test_27z() { + remote_ost_nodsh && skip "remote OST with nodsh" && return mkdir -p $DIR/$tdir $SETSTRIPE $DIR/$tdir/$tfile-1 -c 1 -o 0 -s 1m || { error "setstripe -c -1 failed"; return 1; } @@ -1877,6 +1881,7 @@ test_33c() { local write_bytes local all_zeros + remote_ost_nodsh && skip "remote OST with nodsh" && return all_zeros=: rm -fr $DIR/d33 mkdir -p $DIR/d33 @@ -2412,6 +2417,7 @@ run_test 39k "write, utime, close, stat ========================" TEST_39_ATIME=`date -d "1 year" +%s` test_39l() { + remote_mds_nodsh && skip "remote MDS with nodsh" && return local atime_diff=$(do_facet $SINGLEMDS lctl get_param -n mdd.*.atime_diff) mkdir -p $DIR/$tdir @@ -3259,7 +3265,7 @@ test_56a() { # was test_56 [ "$OSTCOUNT" -lt 2 ] && \ skip_env "skipping other lfs getstripe --obd test" && return OSTIDX=1 - OBDUUID=$(lfs osts | grep ${OSTIDX}": " | awk '{print $2}') + OBDUUID=$(ostuuid_from_index $OSTIDX) FILENUM=`$GETSTRIPE -ir $DIR/d56 | grep -x $OSTIDX | wc -l` FOUND=`$GETSTRIPE -r --obd $OBDUUID $DIR/d56 | grep obdidx | wc -l` [ $FOUND -eq $FILENUM ] || \ @@ -3402,19 +3408,27 @@ test_56n() { run_test 56n "check lfs find -type l =============================" test_56o() { - setup_56 $NUMFILES $NUMDIRS TDIR=$DIR/${tdir}g + rm -rf $TDIR + setup_56 $NUMFILES $NUMDIRS utime $TDIR/file1 > /dev/null || error "utime (1)" utime $TDIR/file2 > /dev/null || error "utime (2)" utime $TDIR/dir1 > /dev/null || error "utime (3)" utime $TDIR/dir2 > /dev/null || error "utime (4)" utime $TDIR/dir1/file1 > /dev/null || error "utime (5)" + dd if=/dev/zero count=1 >> $TDIR/dir1/file1 && sync + + EXPECTED=4 + NUMS=`$LFIND -mtime +0 $TDIR | wc -l` + [ $NUMS -eq $EXPECTED ] || \ + error "lfs find -mtime +0 $TDIR wrong: found $NUMS, expected $EXPECTED" - EXPECTED=5 - NUMS=`$LFIND -mtime +1 $TDIR | wc -l` + EXPECTED=12 + NUMS=`$LFIND -mtime 0 $TDIR | wc -l` [ $NUMS -eq $EXPECTED ] || \ - error "lfs find -mtime $TDIR wrong: found $NUMS, expected $EXPECTED" + error "lfs find -mtime 0 $TDIR wrong: found $NUMS, expected $EXPECTED" + } run_test 56o "check lfs find -mtime for old files ==========================" @@ -3477,6 +3491,7 @@ test_56r() { [ $NUMS -eq $EXPECTED ] || \ error "lfs find $TDIR ! -size 0 wrong: found $NUMS, expected $EXPECTED" echo "test" > $TDIR/56r && sync + echo "test2" > $TDIR/56r2 && sync EXPECTED=1 NUMS=`$LFIND -size 5 -t f $TDIR | wc -l` [ $NUMS -eq $EXPECTED ] || \ @@ -3485,14 +3500,18 @@ test_56r() { NUMS=`$LFIND -size +5 -t f $TDIR | wc -l` [ $NUMS -eq $EXPECTED ] || \ error "lfs find $TDIR -size +5 wrong: found $NUMS, expected $EXPECTED" - EXPECTED=13 + EXPECTED=2 NUMS=`$LFIND -size +0 -t f $TDIR | wc -l` [ $NUMS -eq $EXPECTED ] || \ error "lfs find $TDIR -size +0 wrong: found $NUMS, expected $EXPECTED" - EXPECTED=0 + EXPECTED=2 NUMS=`$LFIND ! -size -5 -t f $TDIR | wc -l` [ $NUMS -eq $EXPECTED ] || \ error "lfs find $TDIR ! -size -5 wrong: found $NUMS, expected $EXPECTED" + EXPECTED=12 + NUMS=`$LFIND -size -5 -t f $TDIR | wc -l` + [ $NUMS -eq $EXPECTED ] || \ + error "lfs find $TDIR -size -5 wrong: found $NUMS, expected $EXPECTED" } run_test 56r "check lfs find -size works ==========================" @@ -3513,6 +3532,7 @@ test_57a() { run_test 57a "verify MDS filesystem created with large inodes ==" test_57b() { + remote_mds_nodsh && skip "remote MDS with nodsh" && return local dir=$DIR/d57b local FILECOUNT=100 @@ -3584,6 +3604,7 @@ run_test 59 "verify cancellation of llog records async =========" TEST60_HEAD="test_60 run $RANDOM" test_60a() { + remote_mgs_nodsh && skip "remote MGS with nodsh" && return [ ! -f run-llog.sh ] && skip_env "missing subtest run-llog.sh" && return log "$TEST60_HEAD - from kernel mode" do_facet mgs sh run-llog.sh @@ -4171,7 +4192,7 @@ set_checksums() return 0 } -export ORIG_CSUM_TYPE="`lctl get_param -n osc/*osc-[^mM]*/checksum_type | +export ORIG_CSUM_TYPE="`lctl get_param -n osc.*osc-[^mM]*.checksum_type | sed 's/.*\[\(.*\)\].*/\1/g' | head -n1`" CKSUM_TYPES=${CKSUM_TYPES:-"crc32 adler"} [ "$ORIG_CSUM_TYPE" = "crc32c" ] && CKSUM_TYPES="$CKSUM_TYPES crc32c" @@ -4427,6 +4448,7 @@ test_80() { # bug 10718 run_test 80 "Page eviction is equally fast at high offsets too ====" test_81a() { # LU-456 + remote_ost_nodsh && skip "remote OST with nodsh" && return # define OBD_FAIL_OST_MAPBLK_ENOSPC 0x228 # MUST OR with the OBD_FAIL_ONCE (0x80000000) do_facet ost0 lctl set_param fail_loc=0x80000228 @@ -4442,6 +4464,7 @@ test_81a() { # LU-456 run_test 81a "OST should retry write when get -ENOSPC ===============" test_81b() { # LU-456 + remote_ost_nodsh && skip "remote OST with nodsh" && return # define OBD_FAIL_OST_MAPBLK_ENOSPC 0x228 # Don't OR with the OBD_FAIL_ONCE (0x80000000) do_facet ost0 lctl set_param fail_loc=0x228 @@ -5086,10 +5109,13 @@ test_104a() { lfs df $DIR/$tfile || error "lfs df $DIR/$tfile failed" lfs df -ih $DIR/$tfile || error "lfs df -ih $DIR/$tfile failed" - OSC=`lctl get_param -n devices | awk '/-osc-/ {print $4}' | head -n 1` + OSC=`lctl dl |grep OST0000-osc-[^M] |awk '{print $4}'` lctl --device %$OSC deactivate lfs df || error "lfs df with deactivated OSC failed" lctl --device %$OSC activate + # wait the osc back to normal + wait_osc_import_state client ost FULL + lfs df || error "lfs df with reactivated OSC failed" rm -f $DIR/$tfile } @@ -6150,7 +6176,7 @@ test_124a() { done echo "" lctl set_param -n $NSDIR.pool.lock_volume_factor $OLD_LVF - local LRU_SIZE_A=`lctl get_param -n $NSDIR/lru_size` + local LRU_SIZE_A=`lctl get_param -n $NSDIR.lru_size` [ $LRU_SIZE_B -gt $LRU_SIZE_A ] || { error "No locks dropped in ${SLEEP}s. LRU size: $LRU_SIZE_A" @@ -6736,6 +6762,7 @@ som_mode_switch() { } test_132() { #1028, SOM + remote_mds_nodsh && skip "remote MDS with nodsh" && return local num=$(get_mds_dir $DIR) local mymds=mds${num} local MOUNTOPT_SAVE=$MOUNTOPT @@ -6780,7 +6807,7 @@ check_stats() { case $1 in $SINGLEMDS) res=`do_facet $SINGLEMDS $LCTL get_param mdt.$FSNAME-MDT0000.md_stats | grep "$2"` ;; - ost) res=`do_facet ost $LCTL get_param obdfilter.$FSNAME-OST0000.stats | grep "$2"` + ost) res=`do_facet ost1 $LCTL get_param obdfilter.$FSNAME-OST0000.stats | grep "$2"` ;; *) error "Wrong argument $1" ;; esac @@ -6794,12 +6821,14 @@ check_stats() { } test_133a() { + remote_ost_nodsh && skip "remote OST with nodsh" && return + remote_mds_nodsh && skip "remote MDS with nodsh" && return local testdir=$DIR/${tdir}/stats_testdir mkdir -p $DIR/${tdir} # clear stats. do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear - do_facet ost $LCTL set_param obdfilter.*.stats=clear + do_facet ost1 $LCTL set_param obdfilter.*.stats=clear # verify mdt stats first. mkdir ${testdir} || error "mkdir failed" @@ -6823,6 +6852,8 @@ test_133a() { run_test 133a "Verifying MDT stats ========================================" test_133b() { + remote_ost_nodsh && skip "remote OST with nodsh" && return + remote_mds_nodsh && skip "remote MDS with nodsh" && return local testdir=$DIR/${tdir}/stats_testdir mkdir -p ${testdir} || error "mkdir failed" touch ${testdir}/${tfile} || "touch failed" @@ -6830,7 +6861,7 @@ test_133b() { # clear stats. do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear - do_facet ost $LCTL set_param obdfilter.*.stats=clear + do_facet ost1 $LCTL set_param obdfilter.*.stats=clear # extra mdt stats verification. chmod 444 ${testdir}/${tfile} || error "chmod failed" @@ -6843,6 +6874,8 @@ test_133b() { run_test 133b "Verifying extra MDT stats ==================================" test_133c() { + remote_ost_nodsh && skip "remote OST with nodsh" && return + remote_mds_nodsh && skip "remote MDS with nodsh" && return local testdir=$DIR/${tdir}/stats_testdir mkdir -p ${testdir} || error "mkdir failed" @@ -6853,7 +6886,7 @@ test_133c() { # clear stats. do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear - do_facet ost $LCTL set_param obdfilter.*.stats=clear + do_facet ost1 $LCTL set_param obdfilter.*.stats=clear dd if=/dev/zero of=${testdir}/${tfile} conv=notrunc bs=1024k count=1 || error "dd failed" sync @@ -7072,6 +7105,7 @@ test_155_small_load() { } test_155_big_load() { + remote_ost_nodsh && skip "remote OST with nodsh" && return local temp=$TMP/$tfile local file=$DIR/$tfile @@ -7302,10 +7336,24 @@ err17935 () { error $* fi } + +changelog_chmask() +{ + MASK=$(do_facet $SINGLEMDS $LCTL get_param mdd.$MDT0.changelog_mask |\ + grep -c $1) + + if [ $MASK -eq 1 ]; then + do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_mask="-$1" + else + do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_mask="+$1" + fi +} + test_160() { - USER=$(do_facet $SINGLEMDS lctl --device $MDT0 changelog_register -n) + remote_mds_nodsh && skip "remote MDS with nodsh" && return + USER=$(do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_register -n) echo "Registered as changelog user $USER" - do_facet $SINGLEMDS lctl get_param -n mdd.$MDT0.changelog_users | \ + do_facet $SINGLEMDS $LCTL get_param -n mdd.$MDT0.changelog_users | \ grep -q $USER || error "User $USER not found in changelog_users" # change something @@ -7320,12 +7368,23 @@ test_160() { $LFS changelog $MDT0 | tail -5 echo "verifying changelog mask" - do_facet $SINGLEMDS lctl set_param mdd.$MDT0.changelog_mask="-mkdir" - mkdir -p $DIR/$tdir/pics/2009/sofia - do_facet $SINGLEMDS lctl set_param mdd.$MDT0.changelog_mask="+mkdir" - mkdir $DIR/$tdir/pics/2009/zachary - DIRS=$($LFS changelog $MDT0 | tail -5 | grep -c MKDIR) - [ $DIRS -eq 1 ] || err17935 "changelog mask count $DIRS != 1" + changelog_chmask "MKDIR" + changelog_chmask "CLOSE" + + mkdir -p $DIR/$tdir/pics/zach/sofia + echo "zzzzzz" > $DIR/$tdir/pics/zach/file + + changelog_chmask "MKDIR" + changelog_chmask "CLOSE" + + mkdir -p $DIR/$tdir/pics/2008/sofia + echo "zzzzzz" > $DIR/$tdir/pics/zach/file + + $LFS changelog $MDT0 + MKDIRS=$($LFS changelog $MDT0 | tail -5 | grep -c "MKDIR") + CLOSES=$($LFS changelog $MDT0 | tail -5 | grep -c "CLOSE") + [ $MKDIRS -eq 1 ] || err17935 "MKDIR changelog mask count $DIRS != 1" + [ $CLOSES -eq 1 ] || err17935 "CLOSE changelog mask count $DIRS != 1" # verify contents echo "verifying target fid" @@ -7341,16 +7400,16 @@ test_160() { [ "$fidc" == "p=$fidf" ] || \ err17935 "pfid in changelog $fidc != dir fid $fidf" - USER_REC1=$(do_facet $SINGLEMDS lctl get_param -n \ + USER_REC1=$(do_facet $SINGLEMDS $LCTL get_param -n \ mdd.$MDT0.changelog_users | grep $USER | awk '{print $2}') $LFS changelog_clear $MDT0 $USER $(($USER_REC1 + 5)) - USER_REC2=$(do_facet $SINGLEMDS lctl get_param -n \ + USER_REC2=$(do_facet $SINGLEMDS $LCTL get_param -n \ mdd.$MDT0.changelog_users | grep $USER | awk '{print $2}') echo "verifying user clear: $(( $USER_REC1 + 5 )) == $USER_REC2" [ $USER_REC2 == $(($USER_REC1 + 5)) ] || \ err17935 "user index should be $(($USER_REC1 + 5)); is $USER_REC2" - MIN_REC=$(do_facet $SINGLEMDS lctl get_param mdd.$MDT0.changelog_users | \ + MIN_REC=$(do_facet $SINGLEMDS $LCTL get_param mdd.$MDT0.changelog_users | \ awk 'min == "" || $2 < min {min = $2}; END {print min}') FIRST_REC=$($LFS changelog $MDT0 | head -1 | awk '{print $1}') echo "verifying min purge: $(( $MIN_REC + 1 )) == $FIRST_REC" @@ -7358,17 +7417,17 @@ test_160() { err17935 "first index should be $(($MIN_REC + 1)); is $FIRST_REC" echo "verifying user deregister" - do_facet $SINGLEMDS lctl --device $MDT0 changelog_deregister $USER - do_facet $SINGLEMDS lctl get_param -n mdd.$MDT0.changelog_users | \ + do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_deregister $USER + do_facet $SINGLEMDS $LCTL get_param -n mdd.$MDT0.changelog_users | \ grep -q $USER && error "User $USER still found in changelog_users" - USERS=$(( $(do_facet $SINGLEMDS lctl get_param -n \ + USERS=$(( $(do_facet $SINGLEMDS $LCTL get_param -n \ mdd.$MDT0.changelog_users | wc -l) - 2 )) if [ $USERS -eq 0 ]; then - LAST_REC1=$(do_facet $SINGLEMDS lctl get_param -n \ + LAST_REC1=$(do_facet $SINGLEMDS $LCTL get_param -n \ mdd.$MDT0.changelog_users | head -1 | awk '{print $3}') touch $DIR/$tdir/chloe - LAST_REC2=$(do_facet $SINGLEMDS lctl get_param -n \ + LAST_REC2=$(do_facet $SINGLEMDS $LCTL get_param -n \ mdd.$MDT0.changelog_users | head -1 | awk '{print $3}') echo "verify changelogs are off if we were the only user: $LAST_REC1 == $LAST_REC2" [ $LAST_REC1 == $LAST_REC2 ] || error "changelogs not off" @@ -7628,6 +7687,7 @@ obdecho_create_test() { } test_180a() { + remote_ost_nodsh && skip "remote OST with nodsh" && return local rc=0 local rmmod_local=0 @@ -7652,15 +7712,16 @@ test_180a() { run_test 180a "test obdecho on osc" test_180b() { + remote_ost_nodsh && skip "remote OST with nodsh" && return local rc=0 local rmmod_remote=0 - do_facet ost "lsmod | grep -q obdecho || " \ - "{ insmod ${LUSTRE}/obdecho/obdecho.ko || " \ - "modprobe obdecho; }" && rmmod_remote=1 - target=$(do_facet ost $LCTL dl | awk '/obdfilter/ {print $4;exit}') - [[ -n $target ]] && { obdecho_create_test $target ost || rc=1; } - [ $rmmod_remote -eq 1 ] && do_facet ost "rmmod obdecho" + do_facet ost1 "lsmod | grep -q obdecho || " \ + "{ insmod ${LUSTRE}/obdecho/obdecho.ko || " \ + "modprobe obdecho; }" && rmmod_remote=1 + target=$(do_facet ost1 $LCTL dl | awk '/obdfilter/ {print $4;exit}') + [[ -n $target ]] && { obdecho_create_test $target ost1 || rc=1; } + [ $rmmod_remote -eq 1 ] && do_facet ost1 "rmmod obdecho" return $rc } run_test 180b "test obdecho directly on obdfilter" @@ -8162,6 +8223,7 @@ test_215() { # for bugs 18102, 21079, 21517 run_test 215 "/proc/sys/lnet exists and has proper content - bugs 18102, 21079, 21517" test_216() { # bug 20317 + remote_ost_nodsh && skip "remote OST with nodsh" && return local node local p="$TMP/sanityN-$TESTNAME.parameters" save_lustre_params $HOSTNAME "osc.*.contention_seconds" > $p @@ -8199,12 +8261,15 @@ run_test 216 "check lockless direct write works and updates file size and kms co test_217() { # bug 22430 local node + local nid + for node in $(nodes_list); do - if [[ $node = *-* ]] ; then - echo "lctl ping $node@$NETTYPE" - lctl ping $node@$NETTYPE + nid=$(host_nids_address $node $NETTYPE) + if [[ $nid = *-* ]] ; then + echo "lctl ping $nid@$NETTYPE" + lctl ping $nid@$NETTYPE else - echo "skipping $node (no hiphen detected)" + echo "skipping $node (no hyphen detected)" fi done }