# NWListPoolSnapshots.pl
#
# by Dean Giles
# Version 1.0
# April 16, 2007
#
# This Perl script lists the pool snapshots on a Pool.
# This script has been designed to be run on NetWare.
# The API set can be downloaded from http://developer.novell.com/wiki/index.php/Virtual_File_Services_for_NetWare.
#
# It requires that NSS be installed and an NSS pool be present.
#
{
# User help function
#if (@ARGV < 1 || $ARGV[0] eq "/?" || $ARGV[0] eq "-?")
#{
# print "USAGE: perl NWListPoolSnapshots.pl SNAP_NAME\n";
# print "where SNAP_NAME is the name of the snapshot Pool to be deleted. \n\n";
# print "Example: perl NWRemovePoolSnapshot.pl NSSPOOL_SNAP \n";
# exit;
#}
# Global Variables
#$snapName = $ARGV[0]; #Name of the new pool snapshot.
$file = "+<_ADMIN:Manage_NSS/manage.cmd"; # This is the MSS management file we are accessing.
$reply; # Variable used to read from file.
$command; # This is the NSS xml command that will be the NSS request to the file.
$error; # Variable used to manage errors.
# Open the file and check that it exists.
open(NSSFILE, $file)
or die "Error opening NSS management file ($!) on server";
print "file is now open \n";
$command = "".
"".
"";
# This is the command for initializing the virtual file for sending a command.
print "File Name: $file \n";
print "Request Sent: $command \n";
if (!syswrite(NSSFILE, $command, length($command))) #Initialize the nss management file and write a command.
{
seek NSSFILE, 0, 0; # Make sure to start at the beginning of the file.
sysread (NSSFILE, $error, 10000); #Read the error message.
print "Error writing initialization to management file. \n";
print "$error \n\n"; #Print the error message to the screen.
close (NSSFILE);
}
else
{
seek NSSFILE, 0, 0; # Make sure to start at the beginning of the file.
sysread (NSSFILE, $reply, 10000); #Read the reply.
print "$reply \n\n"; #Print the reply to the screen.
close (NSSFILE);
}
}