]> git.sur5r.net Git - bacula/bacula/blobdiff - regress/scripts/prepare-two-tapes.in
Check for file count mismatch
[bacula/bacula] / regress / scripts / prepare-two-tapes.in
index f31c0abe557df188a65562742d5e86879350714d..611fb906f7d05e973adff78018a2d3af5452bb3c 100755 (executable)
@@ -2,12 +2,40 @@
 #
 # Create two blank tapes
 #
+OS=`uname`
+case ${OS} in
+  SunOS)
+    ready="No Additional Sense"
+    ;;
+  FreeBSD)
+    ready="Current Driver State: at rest."
+    ;;
+  *)
+    ready="ONLINE"
+  ;;
+esac
+wait_for_drive() {
+  i=0 
+  while [ $i -le 300 ]; do  # Wait max 300 seconds
+    if mt -f $1 status | grep ${ready} >/dev/null 2>&1; then
+      break
+    fi
+#   debug "Device $1 - not ready, retrying..."
+    sleep 1
+    i=`expr $i + 1`
+  done
+}
+
+#
+# mt -f @tape_drive@ offline
 @changer_path@ -f @autochanger@ unload
 @changer_path@ -f @autochanger@ load 1
+wait_for_drive @tape_drive@
 mt -f @tape_drive@ rewind
 mt -f @tape_drive@ weof
 @changer_path@ -f @autochanger@ unload
 @changer_path@ -f @autochanger@ load 2
+wait_for_drive @tape_drive@
 mt -f @tape_drive@ rewind
 mt -f @tape_drive@ weof
 #@changer_path@ -f @autochanger@ unload