admin-mount-volumes.sh [plain text]
#! /bin/bash
SCRIPTBASE=${SCRIPTBASE:-$(cd $(dirname $0)/.. && pwd )}
. $SCRIPTBASE/common.sh || exit 2
. $SCRIPTBASE/disk-images.sh || exit 2
failed=0
USERNAME=${USERNAME:-local}
PASSWORD=${PASSWORD:-local}
DEBUGLEVEL=${DEBUGLEVEL:-4}
DISKIMAGESIZE=${DISKIMAGESIZE:-10485760}
DISKIMAGE=${DISKIMAGE:-admin-volume.dmg}
SHAREPT=${SHAREPT:-admin-volume}
MOUNTPT=${MOUNTPT:-/tmp/mp}
MOUNTPTGUEST=${MOUNTPTGUEST:-/tmp/mp-guest}
SERVER=${SERVER:-localhost}
SMBURL=${SMBURL:-//$USERNAME:$PASSWORD@$SERVER/$SHAREPT}
SMBURLGUEST=${SMBURLGUEST:-//guest:@$SERVER/$SHAREPT}
failtest()
{
echo "*** TEST FAILED $1***"
failed=`expr $failed + 1`
}
remove_state()
{
/sbin/umount -f $MOUNTPT 2>/dev/null ||
echo "Cleanup failed to unmount volume $MOUNTPT"
rmdir $MOUNTPT 2>/dev/null || \
echo "Cleanup failed to remove mount point $MOUNTPT"
if [ -d $MOUNTPTGUEST ]; then
/sbin/umount -f $MOUNTPTGUEST 2>/dev/null
rmdir $MOUNTPTGUEST 2>/dev/null || \
echo "Cleanup failed to remove mount point $MOUNTPTGUEST"
fi
unmount_disk_image $DISKIMAGE 1>/dev/null 2>/dev/null || \
echo "Cleanup failed to unmount disk image $DISKIMAGE"
true
}
setup_failed()
{
remove_state
testerr $0 "$1"
}
setup_state()
{
make_disk_image $DISKIMAGESIZE $DISKIMAGE 1>/dev/null 2>/dev/null || \
setup_failed "Setup failed to create disk image $DISKIMAGE"
mount_disk_image $DISKIMAGE 1>/dev/null 2>/dev/null || \
setup_failed "Setup failed to mount disk image $DISKIMAGE"
mkdir $MOUNTPT 2>/dev/null || \
setup_failed "Setup failed to make directory $MOUNTPT"
mkdir $MOUNTPTGUEST 2>/dev/null || \
setup_failed "Setup failed to make directory $MOUNTPTGUEST"
true
}
do_admin_test()
{
mount -t smbfs $SMBURL $MOUNTPT 2>/dev/null || \
failtest "admin couldn't mount the volume"
true
}
do_guest_test()
{
guestmnt=0
mount -t smbfs $SMBURLGUEST $MOUNTPTGUEST 2>/dev/null || \
guestmnt=1
if [ $guestmnt -eq 0 ]; then
failtest "guest could mount the volume"
fi
true
}
setup_state
register_cleanup_handler remove_state
do_admin_test || failtest
do_guest_test || failtest
testok $0 $failed