# 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); } }