]> git.sur5r.net Git - bacula/bacula/blobdiff - regress/scripts/prepare-fake-autochanger.in
Make out of freespace non-fatal for removable devices -- i.e. behaves like tape
[bacula/bacula] / regress / scripts / prepare-fake-autochanger.in
index db9b40240ccf2e48843fe954d931eef5ef0f7e56..75e18095ee64fd26f0ff64923abdd338a68040c9 100644 (file)
@@ -1,37 +1,63 @@
 #!/bin/sh
 #
+# Copyright (C) 2000-2017 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
 # This script will prepare a big dummy autochanger 
 #
 
 . scripts/functions
 
 adir=@working_dir@/ach
+rm -rf $adir
 
 mkdir $adir 2> /dev/null
-rm -f $adir/log $adir/barcodes $adir/load* $adir/slot* $adir/drive* 2> /dev/null
+
+# work with $1 slots by default
+nb_slot=${1:-80}
 
 # create the autochanger configuration file
 cat > $adir/conf <<EOF
 maxdrive=8
-maxslot=80
+maxslot=$nb_slot
 dbgfile=$adir/log
+
+#case $2 in
+#list|slots)
+#   sleep 2
+#   ;;
+#*)
+#   sleep 5
+#   ;;
+#esac
 EOF
 
 # turn on ach debug
 touch $adir/log
 
-# create 75 volumes
-for i in `seq 1 75`; do
-    echo $i:vol$i >> $adir/barcodes
-    cp /dev/null $adir/slot$i
+# the standard script is looking for a real sg device
+sed -i 's/test -c /test -f/g' $bin/storage-ctl 2> /dev/null
+sed -i 's/test -c /test -f/g' $bin/storage2-ctl 2> /dev/null
+
+# create generic device for bsg_persist
+for i in `seq 0 8`; do
+    touch $adir/sg$i c
+done
+
+nb_vol=`expr $nb_slot - 5`
+# create $nb_vol volumes
+for i in `seq 1 $nb_vol`; do
+   echo $i:vol$i >> $adir/barcodes
+   cp /dev/null $adir/slot$i
 done
 
 # make a cleaning tape
-echo 76:CLN01 >> $adir/barcodes
-cp /dev/null $adir/slot76
+cln_slot=`expr $nb_vol + 1`
+echo $cln_slot:CLN01 >> $adir/barcodes
+cp /dev/null $adir/slot$cnl_slot
 
 # keep other empty
-for i in `seq 77 79`; do
-    echo $i:  >> $adir/barcodes
+next_empty=`expr $cnl_slot + 1`
+for i in `seq $next_empty $nb_slot`; do
+   echo $i:  >> $adir/barcodes
 done
-