#
# Bacula interface to virtual autoloader using disk storage
#
+# Written by Kern Sibbald
+#
+# Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
+#
+# The main author of Bacula is Kern Sibbald, with contributions from
+# many others, a complete list can be found in the file AUTHORS.
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of version two of the GNU General Public
+# License as published by the Free Software Foundation, which is
+# listed in the file LICENSE.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Bacula® is a registered trademark of John Walker.
+# The licensor of Bacula is the Free Software Foundation Europe
+# (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+# Switzerland, email:ftf@fsfeurope.org.
+#
+#
# $Id$
#
# If you set in your Device resource
#
dbgfile="$wd/disk-changer.log"
debug() {
- if test -e $dbgfile; then
+ if test -f $dbgfile; then
echo "`date +\"%Y%m%d-%H:%M:%S\"` $*" >> $dbgfile
fi
}
unload)
debug "Doing disk -f $ctl unload $slot $device $drive"
get_dir
- echo "0" >$dir/loaded${drive}
- unlink $device 2>/dev/null >/dev/null
- rm -f $device
+ if [ -f $dir/loaded${drive} ]; then
+ ld=`cat $dir/loaded${drive}`
+ else
+ echo "Storage Element $slot is Already Full"
+ exit 1
+ fi
+ if [ $slot -eq $ld ]; then
+ echo "0" >$dir/loaded${drive}
+ unlink $device 2>/dev/null >/dev/null
+ rm -f $device
+ else
+ echo "Storage Element $slot is Already Full"
+ exit 1
+ fi
;;
load)
debug "Doing disk $ctl load $slot $device $drive"
get_dir
+ i=0
+ while [ $i -le $maxdrive ]; do
+ if [ -f $dir/loaded${i} ]; then
+ ld=`cat $dir/loaded${i}`
+ else
+ ld=0
+ fi
+ if [ $ld -eq $slot ]; then
+ echo "Drive ${i} Full (Storage element ${ld} loaded)"
+ exit 1
+ fi
+ i=`expr $i + 1`
+ done
+ if [ -f $dir/loaded${drive} ]; then
+ ld=`cat $dir/loaded${drive}`
+ else
+ ld=0
+ fi
+ if [ $ld -ne 0 ]; then
+ echo "Drive ${drive} Full (Storage element ${ld} loaded)"
+ exit 1
+ fi
echo "0" >$dir/loaded${drive}
unlink $device 2>/dev/null >/dev/null
rm -f $device