Whamcloud - gitweb
LU-8203 tests: Wait for archive operation to be completed.
[fs/lustre-release.git] / lustre / tests / sanity-hsm.sh
index fd2f711..aba7228 100755 (executable)
@@ -681,66 +681,19 @@ check_enough_free_space() {
        return 0
 }
 
-make_large_for_striping() {
+make_custom_file_for_progress() {
        local file2=${1/$DIR/$DIR2}
-       local sz=$($LCTL get_param -n lov.*-clilov-*.stripesize | head -n1)
+       local fsize=${2:-"39"}
+       local blksz=$($LCTL get_param -n lov.*-clilov-*.stripesize | head -n1)
+       blksz=${3:-$blksz}
 
-       cleanup_large_files
-
-       check_enough_free_space 5 $sz
-       [ $? != 0 ] && return $?
-
-       dd if=/dev/urandom of=$file2 count=5 bs=$sz conv=fsync ||
-               file_creation_failure dd $file2 $?
-
-       path2fid $1 || error "cannot get fid on $1"
-}
-
-make_large_for_progress() {
-       local file2=${1/$DIR/$DIR2}
-
-       cleanup_large_files
-
-       check_enough_free_space 39 1000000
-       [ $? != 0 ] && return $?
-
-       # big file is large enough, so copy time is > 30s
-       # so copytool make 1 progress
-       # size is not a multiple of 1M to avoid stripe
-       # aligment
-       dd if=/dev/urandom of=$file2 count=39 bs=1000000 conv=fsync ||
-               file_creation_failure dd $file2 $?
-
-       path2fid $1 || error "cannot get fid on $1"
-}
-
-make_large_for_progress_aligned() {
-       local file2=${1/$DIR/$DIR2}
+       [[ $fsize -gt  0 ]] || error "Invalid file size"
+       [[ $blksz -gt 0 ]] || error "Invalid stripe size"
 
        cleanup_large_files
-
-       check_enough_free_space 33 1048576
+       check_enough_free_space $fsize $blksz
        [ $? != 0 ] && return $?
-
-       # big file is large enough, so copy time is > 30s
-       # so copytool make 1 progress
-       # size is a multiple of 1M to have stripe
-       # aligment
-       dd if=/dev/urandom of=$file2 count=33 bs=1M conv=fsync ||
-               file_creation_failure dd $file2 $?
-       path2fid $1 || error "cannot get fid on $1"
-}
-
-make_large_for_cancel() {
-       local file2=${1/$DIR/$DIR2}
-
-       cleanup_large_files
-
-       check_enough_free_space 103 1048576
-       [ $? != 0 ] && return $?
-
-       # Copy timeout is 100s. 105MB => 105s
-       dd if=/dev/urandom of=$file2 count=103 bs=1M conv=fsync ||
+       dd if=/dev/zero of=$file2 count=$fsize bs=$blksz conv=fsync ||
                file_creation_failure dd $file2 $?
        path2fid $1 || error "cannot get fid on $1"
 }
@@ -1305,7 +1258,7 @@ test_12c() {
        local f=$DIR/$tdir/$tfile
        $LFS setstripe -c 2 $f
        local fid
-       fid=$(make_large_for_striping $f)
+       fid=$(make_custom_file_for_progress $f 5)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local FILE_CRC=$(md5sum $f)
@@ -2320,7 +2273,7 @@ test_26() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2360,7 +2313,7 @@ test_27b() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2382,7 +2335,7 @@ test_28() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2639,7 +2592,7 @@ test_31b() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2663,7 +2616,7 @@ test_31c() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress_aligned $f)
+       fid=$(make_custom_file_for_progress $f 33 1048576)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2687,7 +2640,7 @@ test_33() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2754,7 +2707,7 @@ test_34() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2790,7 +2743,7 @@ test_35() {
        local f=$DIR/$tdir/$tfile
        local f1=$DIR/$tdir/$tfile-1
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local fid1=$(copy_file /etc/passwd $f1)
@@ -2829,7 +2782,7 @@ test_36() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -2993,7 +2946,7 @@ test_54() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid=$(make_custom_file_for_progress $f 39 1000000)
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
                error "could not archive file"
@@ -3021,7 +2974,7 @@ test_55() {
 
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
-       local fid=$(make_large_for_progress $f)
+       local fid=$(make_custom_file_for_progress $f 39 1000000)
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
                error "could not archive file"
@@ -3050,7 +3003,7 @@ test_56() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
@@ -3191,7 +3144,7 @@ test_60() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 10)
        [ $? != 0 ] && skip "not enough free space" && return
 
        local mdtidx=0
@@ -3246,6 +3199,10 @@ test_60() {
                error "Expected progress update after at least $interval seconds"
        fi
 
+       echo "Wait for on going archive hsm action to complete"
+       wait_update $agent "grep -o copied $copytool_log" "copied" 10 ||
+               echo "File archiving not completed even after 10 secs"
+
        cdt_clear_no_retry
        copytool_cleanup
 }
@@ -3310,7 +3267,7 @@ test_71() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f ||
@@ -3588,7 +3545,7 @@ test_104() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        # if cdt is on, it can serve too quickly the request
@@ -3856,7 +3813,7 @@ test_200() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_cancel $f)
+       fid=$(make_custom_file_for_progress $f 103 1048576)
        [ $? != 0 ] && skip "not enough free space" && return
 
        # test with cdt on is made in test_221
@@ -3904,7 +3861,7 @@ test_202() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        $LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $f
@@ -3954,7 +3911,7 @@ test_221() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_cancel $f)
+       fid=$(make_custom_file_for_progress $f 103 1048576)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -4063,7 +4020,7 @@ test_223b() {
 
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -4125,7 +4082,7 @@ test_225() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_progress $f)
+       fid=$(make_custom_file_for_progress $f 39 1000000)
        [ $? != 0 ] && skip "not enough free space" && return
 
        changelog_setup
@@ -4330,7 +4287,7 @@ test_251() {
        mkdir -p $DIR/$tdir
        local f=$DIR/$tdir/$tfile
        local fid
-       fid=$(make_large_for_cancel $f)
+       fid=$(make_custom_file_for_progress $f 103 1048576)
        [ $? != 0 ] && skip "not enough free space" && return
 
        cdt_disable