Whamcloud - gitweb
LU-4839 tests: wait for copytool start sanity-hsm/60
[fs/lustre-release.git] / lustre / tests / sanity-hsm.sh
index 64f5376..c2c84ef 100755 (executable)
@@ -517,12 +517,13 @@ path2fid() {
 get_hsm_flags() {
        local f=$1
        local u=$2
+       local st
 
        if [[ $u == "user" ]]; then
-               local st=$($RUNAS $LFS hsm_state $f)
+               st=$($RUNAS $LFS hsm_state $f)
        else
-               local st=$($LFS hsm_state $f)
                u=root
+               st=$($LFS hsm_state $f)
        fi
 
        [[ $? == 0 ]] || error "$LFS hsm_state $f failed (run as $u)"
@@ -533,7 +534,8 @@ get_hsm_flags() {
 
 get_hsm_archive_id() {
        local f=$1
-       local st=$($LFS hsm_state $f)
+       local st
+       st=$($LFS hsm_state $f)
        [[ $? == 0 ]] || error "$LFS hsm_state $f failed"
 
        local ar=$(echo $st | grep "archive_id" | cut -f5 -d" " |
@@ -694,7 +696,7 @@ wait_request_state() {
        local cmd="$LCTL get_param -n ${MDT_PREFIX}${mdtidx}.hsm.actions"
        cmd+=" | awk '/'$fid'.*action='$request'/ {print \\\$13}' | cut -f2 -d="
 
-       wait_result $mds "$cmd" $state 100 ||
+       wait_result $mds "$cmd" $state 200 ||
                error "request on $fid is not $state on $mds"
 }
 
@@ -1153,7 +1155,8 @@ test_12c() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        $LFS setstripe -c 2 $f
-       local fid=$(make_large_for_striping $f)
+       local fid
+       fid=$(make_large_for_striping $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local FILE_CRC=$(md5sum $f)
@@ -2030,7 +2033,8 @@ test_26() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2069,7 +2073,8 @@ test_27b() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2090,7 +2095,8 @@ test_28() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2270,7 +2276,8 @@ test_31b() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2293,7 +2300,8 @@ test_31c() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress_aligned $f)
+       local fid
+       fid=$(make_large_for_progress_aligned $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2316,7 +2324,8 @@ test_33() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2382,7 +2391,8 @@ test_34() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2417,7 +2427,8 @@ test_35() {
 
        local f=$DIR/$tdir/$tfile
        local f1=$DIR/$tdir/$tfile-1
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local fid1=$(copy_file /etc/passwd $f1)
@@ -2455,7 +2466,8 @@ test_36() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2650,7 +2662,8 @@ test_56() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
@@ -2773,7 +2786,8 @@ test_60() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local mdtidx=0
@@ -2789,6 +2803,16 @@ test_60() {
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
                error "could not archive file"
 
+       local agent=$(facet_active_host $SINGLEAGT)
+       local prefix=$TESTLOG_PREFIX
+       [[ -z "$TESTNAME" ]] || prefix=$prefix.$TESTNAME
+       local copytool_log=$prefix.copytool_log.$agent.log
+
+
+       wait_update $agent \
+           "grep -o start.copy $copytool_log" "start copy" 100 ||
+               error "copytool failed to start"
+
        local cmd="$LCTL get_param -n ${mdt}.hsm.active_requests"
        cmd+=" | awk '/'$fid'.*action=ARCHIVE/ {print \\\$12}' | cut -f2 -d="
 
@@ -2881,7 +2905,8 @@ test_71() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
@@ -3158,7 +3183,8 @@ test_104() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        # if cdt is on, it can serve too quickly the request
@@ -3471,7 +3497,8 @@ test_200() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_cancel $f)
+       local fid
+       fid=$(make_large_for_cancel $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        # test with cdt on is made in test_221
@@ -3514,7 +3541,8 @@ test_202() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -3561,7 +3589,8 @@ test_221() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_cancel $f)
+       local fid
+       fid=$(make_large_for_cancel $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -3669,7 +3698,8 @@ test_223b() {
        mkdir -p $DIR/$tdir
 
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -3730,7 +3760,8 @@ test_225() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid
+       fid=$(make_large_for_progress $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -3934,7 +3965,8 @@ test_251() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_cancel $f)
+       local fid
+       fid=$(make_large_for_cancel $f)
        [ $? != 0 ] && skip "not enough free space" && return
 
        cdt_disable
@@ -4239,6 +4271,19 @@ test_405() {
 }
 run_test 405 "archive and release under striped directory"
 
+test_500()
+{
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.6.92) ] &&
+               skip "HSM migrate is not supported" && return
+
+       # Stop the existing copytool
+       copytool_cleanup
+
+       test_mkdir -p $DIR/$tdir
+       llapi_hsm_test -d $DIR/$tdir || error "One llapi HSM test failed"
+}
+run_test 500 "various LLAPI HSM tests"
+
 copytool_cleanup
 
 complete $SECONDS