view release on metacpan or search on metacpan
* Two of the hash key names returned by the VLDB method "listaddrs" have
changed in version 2.4.1 (see POD doku AFS::VLDB)
* This release does not support any features and interfaces from
AFSPerl "version 1"
User-visible changes:
* compiles with OpenAFS system libraries version 1.4.12
* fixed method AFS::VLDB->listvldb: fixed segmentation error
* improved Makefile.PL script for Perl 5.10.0 and "threaded PIC" libraries
* updated example scripts for the modules AFS::VLDB and AFS::VOS
* improved test drivers for the modules AFS::VLDB and AFS::VOS;
Developer-visible changes:
* convertet all VERSION variables to "dotted decimal version" with leading "v"
* changed argument type from "int" to "string" for method AFS::VLDB->removeaddr
Version 2.6.1 (released 17 Nov 2008, revision 906)
http://www.mpa-garching.mpg.de/~nog/perl/AFS-2.6.1.tar.gz
changed in version 2.4.1 (see POD doku AFS::VLDB)
* This release does not support any features and interfaces from
AFSPerl "version 1"
User-visible changes:
* compiles now with Perl 5.10.0
* HTML documentation updated in order to include cross-references
Developer-visible changes:
* runs some tests only for module author
* recognizes "automated tests" from CPAN testers
Version 2.4.1 (released 23 Oct 2008, revision 836/863)
http://www.mpa-garching.mpg.de/~nog/perl/AFS-2.4.1.tar.gz
NOTICE:
* This release does not support AFS system libraries version 3.4 or
version 3.5
* Two of the hash key names returned by the VLDB method "listaddrs" have
changed (see POD doku AFS::VLDB)
User-visible changes:
* improved several test drivers;
* updated example scripts for the modules AFS:VOS, AFS::VLDB,
AFS::Cell, AFS::CM, AFS::FS, AFS::BOS, and AFS::KTC_EKEY
* improved POD documentation for AFS::FS and AFS
* POD documentation gets installed automatically
* fixed method AFS::VLDB->listaddrs: lists now all servers
* fixed method AFS::VOS->listvol: returns correct name and volid when
volume is busy
* fixed method AFS::VOS->listvldb: returns proper "release" strings
* improved error messages when OpenAFS configuration files are missing
* compiles now with OpenAFS system libraries newer than 1.4.4
Version 2.4.0 (released 20 Feb 2006, revision 777)
NOTICE:
* This release does not support AFS system libraries version 3.4 or
version 3.5
User-visible changes:
* implementation of most commands of the BOS command suite
* POD documentation for the module AFS::BOS
* compiles now with OpenAFS 1.4 system libraries
* improved several test drivers;
* fixed method AFS::VOS->listvolume: returns volume name when
volume id number is given
* patched function fs_getquota
* improved POD documentation for AFS::VOS
Developer-visible changes:
* all unit test drivers are now using Test::More
* modified the computing of the VERSION numbers
* added dummy function "GetUInt32"
* modified internal function set_code
Version 2.2.3 (released 17 Feb 2005, revision 679)
NOTICE:
* This release does not support AFS system libraries version 3.4 or
Version 2.2.2 (released 07 May 2004, revision 627)
NOTICE:
* This release does not support AFS system libraries version 3.4 or
version 3.5
* This release does ONLY work with Perl "unthreaded" versions (this
is true for all versions 2.2.X)
User-visible changes:
* improved most test drivers;
* included checks for Perl "unthreaded" version;
Developer-visible changes:
* modified AFS.xs function "isafs": patched error handling
Version 2.2.1 (released 09 March 2004, revision 594)
* implementation of the VOS command suite
* POD documentation for the modules AFS::VLDB and AFS::VOS
* changed VERSION numbering schema. Beginning with version 2.2.0,
the version number convention has been changed to a "dotted
integer" scheme that is more commonly found in open source
projects. Maintenance versions of v2.2.0 will be released as
v2.2.1, v2,2.2 etc. The next development series following v2.2.0
will be numbered v2.3.x, beginning with v2.3.0, and the next major
production release following v2.2.0 will be v2.4.0.
* improved Makefile.PL script
* improved several test drivers by generalizing test cases.
* extended POD documentation for AFS::CM; now enumerates the hash key
names for the C structure "VolumeStatus".
* support for the CM function 'getvolstats'
* fixed kas->getentry method because the returned values for the
packed variable were wrong
Developer-visible changes:
* rewrite of the DESTROY function for KAS and PTS
* changed memcpy and bcopy to Copy for most XS functions
Version 2.04 (never released, revision 297)
User-visible changes:
* fixed function "constant"
Developer-visible changes:
* switched test drivers to Test::More
* rewrite of several test drivers
ACL.t, CM.t, Cell.t, FS.t, Utils.t
* VERSION variable now under SVN control
* fixed function AUTOLOAD
Version 2.03 (released 15 October 2002, revision 230)
User-visible changes:
* Makefile.PL
Version 1.11 (released 6 December 2001, revision 80)
User-visible changes:
* major rewrite of the Make.PL script
* patched functions lsmount, rmmount (the values of an input argument
got corrupted)
* improved test driver for module AFS.pm
* updated README
Developer-visible changes:
* ACL->length, ACL->nlength, ACL->keys, ACL->nkeys:
keyword "keys" changed to CORE::keys
Version 1.10 (released 24 July 2001, revision 71)
User-visible changes:
This is the INSTALL file for the Perl extension module AFS (Version v2.6.3)
for the OpenAFS 32-bit version
README
Read the README file first.
AVAILABILITY
The latest version of the AFS module bundle is currently available at
http://www.MPA-Garching.MPG.de/~nog/perl/AFS-<version>.tar.gz
http://www.cpan.org/authors/id/N/NO/NOG/AFS-<version>.tar.gz
RECOMMENDATIONS
It is highly recommended to place the installation directory in
the AFS file system. Otherwise most of the test cases
('make test') are skipped.
REQUIREMENTS
Before you can build the AFS module bundle you need to have the
following installed on your system:
* Perl v5.10.0 or newer
* C compiler
* OpenAFS system libraries 32-bit version
Building the modules is straightforward. The AFS module bundle is
distributed as a single gzipped tar archive file:
AFS-<version>.tar.gz
Unpack the archive to create an AFS installation directory:
gunzip AFS-<version>.tar.gz
tar xvf AFS-<version>.tar
'cd' into that directory, make, test and install the modules.
You have to specify the location of the AFS system
libraries. While running the 'perl Makefile.PL' step you will be
prompted for the location of the AFS system libraries. If you
want to avoid that query, you should specify the environment
variable 'AFSPATH' before you start [1].
If your AFS system type is not yet known by the make file because
you can't run the "fs sysname" command, you can specify the
environment variable 'AFS_SYSNAME' before you start [2].
setenv AFSPATH 'path_to_the_AFS_system_libraries' # tcsh-shell
export AFSPATH='path_to_the_AFS_system_libraries' # sh-shell
[2] this step is optional
setenv AFS_SYSNAME 'AFS_system_type' # tcsh-shell
export AFS_SYSNAME 'AFS_system_type' # sh-shell
perl Makefile.PL
----> Which AFS system libraries should be used? [/usr/afsws]
make
make test
make install
make html ;#(if you want to get the HTML documentation, see also next section)
PLATFORMS
In the meantime I have only access to Linux machines. Therefore I
have tested this version of the AFS module bundle only on the Linux
platform with the following combinations
OS @sys compiler OpenAFS Perl (threaded/non-threaded)
---------------------------------------------------------------------------------
Linux 32-bit i386_linux26 gcc 1.4.10 5.10.0 non-threaded
i386_linux26 gcc 1.4.12 5.10.0 non-threaded
i386_linux26 gcc 1.4.14 5.10.0 non-threaded
i386_linux26 gcc 1.4.10 5.12.4 non-threaded
i386_linux26 gcc 1.4.12 5.12.4 non-threaded
This is the INSTALL file for the Perl extension module AFS (Version v2.6.3)
for the OpenAFS 64-bit version
README
Read the README file first.
AVAILABILITY
The latest version of the AFS module bundle is currently available at
http://www.MPA-Garching.MPG.de/~nog/perl/AFS-<version>.tar.gz
http://www.cpan.org/authors/id/N/NO/NOG/AFS-<version>.tar.gz
RECOMMENDATIONS
It is highly recommended to place the installation directory in
the AFS file system. Otherwise most of the test cases
('make test') are skipped.
REQUIREMENTS
Before you can build the AFS module bundle you need to have the
following installed on your system:
* Perl v5.10.0 or newer
* C compiler
* OpenAFS system libraries 64-bit version (PIC type or standard)
WHAT TYPE OF OpenAFS SYSTEM LIBRARIES ARE NEEDED
Depending on the installed Perl version you have to use the proper
type of OpenAFS system libraries. If you have a "threaded" version
of Perl, you have to link the AFS modules against the PIC type
system libraries, for a "non-threaded" Perl you have to use the
standard libraries.
To find out what type of Perl you are using, just run the command:
perl ./test_ptype
If it says
'Your Perl is 'Non-Threaded Perl'
then you need the standard system libraries and you can skip to
the next section (BUILDING & INSTALLING).
If it says
Your Perl is 'Threaded Perl'
then you need the PIC type system libraries. Unfortunately the
PIC type system libraries are not created for OpenAFS 1.4.X by
Building the modules is straightforward. The AFS module bundle is
distributed as a single gzipped tar archive file:
AFS-<version>.tar.gz
Unpack the archive to create an AFS installation directory:
gunzip AFS-<version>.tar.gz
tar xvf AFS-<version>.tar
'cd' into that directory, make, test and install the modules.
You have to specify the location of the AFS system
libraries. While running the 'perl Makefile.PL' step you will be
prompted for the location of the AFS system libraries. If you
want to avoid that query, you should specify the environment
variable 'AFSPATH' before you start [1].
If your AFS system type is not yet known by the make file because
you can't run the "fs sysname" command, you can specify the
environment variable 'AFS_SYSNAME' before you start [2].
setenv AFSPATH 'path_to_the_AFS_system_libraries' # tcsh-shell
export AFSPATH='path_to_the_AFS_system_libraries' # sh-shell
[2] this step is optional
setenv AFS_SYSNAME 'AFS_system_type' # tcsh-shell
export AFS_SYSNAME 'AFS_system_type' # sh-shell
perl Makefile.PL
----> Which AFS system libraries should be used? [/usr/afsws]
make
make test
make install
make html ;#(if you want to get the HTML documentation, see also next section)
PLATFORMS
In the meantime I have only access to Linux machines. Therefore I
have tested this version of the AFS module bundle only on the
Linux platform with the following combinations
OS @sys compiler OpenAFS Perl (threaded/non-threaded)
---------------------------------------------------------------------------------
Linux 64-bit amd64_linux26 gcc 1.4.11 5.10.0 non-threaded
amd64_linux26 gcc 1.4.12 5.10.0 non-threaded
amd64_linux26 gcc 1.4.12(*) 5.10.0 threaded
(*) => modified libraries libafsrpc.a
and libafsauthent.a
LICENCES/Artistic view on Meta::CPAN
fall under the restrictions of Paragraphs 3 and 4, provided that you do
not represent such an executable image as a Standard Version of this
Package.
7. C subroutines (or comparably compiled subroutines in other
languages) supplied by you and linked into this Package in order to
emulate subroutines and variables of the language defined by this
Package shall not be considered part of this Package, but are the
equivalent of input as in Paragraph 6, provided these subroutines do
not change the language in any way that would cause it to fail the
regression tests for the language.
8. Aggregation of this Package with a commercial distribution is always
permitted provided that the use of this Package is embedded; that is,
when no overt attempt is made to make this Package's interfaces visible
to the end user of the commercial distribution. Such use shall not be
construed as a distribution of this Package.
9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
LICENCES/COPYING view on Meta::CPAN
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
LICENCES/COPYING view on Meta::CPAN
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
LICENCES/COPYING view on Meta::CPAN
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
examples/v2/acl/apply
examples/v2/acl/ascii2rights
examples/v2/acl/cleanacl
examples/v2/acl/copyacl
examples/v2/acl/crights
examples/v2/acl/is_clean
examples/v2/acl/modifyacl
examples/v2/acl/retrieve
examples/v2/acl/rights2ascii
examples/v2/base/constant
examples/v2/base/error_test
examples/v2/bos/addhost
examples/v2/bos/addkey
examples/v2/bos/adduser
examples/v2/bos/blockscanner
examples/v2/bos/constructor
examples/v2/bos/create
examples/v2/bos/delete
examples/v2/bos/exec
examples/v2/bos/getlog
examples/v2/bos/getrestart
src/typemap
src/Utils/Makefile.PL
src/Utils/t/Utils.t
src/Utils/Utils.pm
src/VLDB/Makefile.PL
src/VLDB/t/VLDB.t
src/VLDB/VLDB.pm
src/VOS/Makefile.PL
src/VOS/t/VOS.t
src/VOS/VOS.pm
test_ptype
TODO
META.yml Module YAML meta-data (added by MakeMaker)
META.json Module JSON meta-data (added by MakeMaker)
any guaranteed future functionality of the AFS module. Please contact the
maintainer if you wish to help implement anything here. All help is welcome,
but do check first to make sure someone isn't already tackling the item
in question. Any other suggestions, ideas, patches gratefully received.
Written by Norbert E Gruener <nog@MPA-Garching.MPG.DE>
SHORT TERM
----------
* improve the test suites
MID TERM
--------
* remove the module AFS::KAS
* upgrade AFS::KTC_TOKEN
LONG TERM
---------
* verify whether all OpenAFS constants are included in the 'constant'
function
* develop sufficient test suites
examples/README view on Meta::CPAN
methods are stored in the directory "v2". All scripts in "v2"
conform with the interface version 2. For more details read the
appropriate POD documentations.
HOW TO USE THE EXAMPLES
All scripts in "v2" are designed that you can run them without
prior installation of the AFS module bundle. After you have
performed the steps "perl Makefile.pl", "make", and eventually
"make test" you can run these test scripts. Just step into the
different subdirectories and run the available examples, e.g:
cd AFS-2.6.4/examples/v2/base
./error_test
examples/v2/bos/addkey view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n" and die;
die "not yet tested ... \n";
print "bos->addkey()...\n";
my $ok = $bos->addkey(2); # kvno = 2
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
print "Something went wrong\n" unless $ok;
$ok = $bos->addkey(3, 'I will not tell you'); # kvno = 3
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
print "Something went wrong\n" unless $ok;
examples/v2/bos/constructor view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else { print "OK \n"; }
test_it($bos);
sub test_it {
my $self = shift;
$self->DESTROY;
}
examples/v2/bos/removekey view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n" and die;
die "not yet tested ... \n";
print "bos->removekey()...\n";
my $ok = $bos->removekey(15); # single key
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
$ok = $bos->removekey([12, 15]); # multiple keys as array-ref
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
$bos->DESTROY;
examples/v2/bos/salvage view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n" and die;
die "not yet tested ... \n";
print "bos->salvage()...\n";
# these are all possible non MR-AFS parameters:
my ($partition, $volume) = ('/vicepa', 'u.vanilla');
my $all = 0;
my $outName = ''; # salvage log output file
my $showlog = 0;
my ($parallel, $tmpDir) = ('', '');
my $orphans = 'ignore'; # ignore | remove | attach
examples/v2/bos/setauth view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n" and die;
die "not yet tested ... \n";
print "bos->setauth()...\n";
my $ok = $bos->setauth('on'); # or 'off'
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
print "Something went wrong\n" unless $ok;
$bos->DESTROY;
examples/v2/bos/setcellname view on Meta::CPAN
die "Usage: $0 server [cell]\n" if $#ARGV < 0;
$server = shift;
$cellname = shift;
if ($cellname) { $bos = AFS::BOS->new($server, 0, 0, $cellname); }
else { $bos = AFS::BOS->new($server); }
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n" and die;
die "not yet tested ... \n";
my $ok = $bos->setcellname('newcell.example.com');
print "Error Code: $AFS::CODE\n" if ($AFS::CODE);
$bos->DESTROY;
examples/v2/kas/constructor view on Meta::CPAN
use strict;
use AFS::KAS;
use AFS::KTC_TOKEN;
die "Usage: $0 \n" if $#ARGV != -1;
my $kas = AFS::KAS->AuthServerConn(AFS::KTC_TOKEN->nulltoken, &AFS::KA_MAINTENANCE_SERVICE);
if ($AFS::CODE) { print "Error Code: $AFS::CODE\n"; }
else { print "OK \n"; }
test_it($kas);
sub test_it {
my $self = shift;
$self->DESTROY;
}
examples/v2/pts/PR_NameToID view on Meta::CPAN
use blib;
use strict;
use warnings;
use AFS::PTS;
my $pts = AFS::PTS->new;
$AFS::CODE and print "AFS::CODE = $AFS::CODE\n";
my @names = ('nog','testafs','hans','foobar');
my @ids = $pts->PR_NameToID(\@names);
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else {
print "Names = @names \n";
foreach my $id (@ids) {
print "id = $id\n";
}
}
examples/v2/pts/constructor view on Meta::CPAN
$sec = 1 if $#ARGV == -1;
$cell = localcell if $#ARGV < 1;
$sec = shift unless $sec;
$cell = shift unless $cell;
$pts = AFS::PTS->new($sec, $cell);
if ($AFS::CODE) { print "Error Code: $AFS::CODE\n"; }
else { print "OK \n"; }
test_it($pts);
sub test_it {
my $self = shift;
$self->DESTROY;
}
examples/v2/pts/id view on Meta::CPAN
print "----- scaler\n";
my $name = 'foobar';
my $id = $pts->id($name, $anon);
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else { print "name = $name id = $id\n"; }
print "----- array\n";
my @names = ('nog','testafs','hans','foobar');
my @ids = $pts->id(\@names,$anon);
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else {
print "Names = @names \n";
foreach my $id (@ids) {
print "id = $id\n";
}
}
examples/v2/vldb/constructor view on Meta::CPAN
my ($verbose, $vldb);
die "Usage: $0 [verbose]\n" if $#ARGV > 0;
$verbose = shift // 0;
$vldb = AFS::VLDB->new($verbose);
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else { print "OK \n"; }
test_it($vldb);
sub test_it {
my $self = shift;
$self->DESTROY;
}
examples/v2/vos/constructor view on Meta::CPAN
my ($verbose, $vos);
die "Usage: $0 [verbose]\n" if $#ARGV > 0;
$verbose = shift // 0;
$vos = AFS::VOS->new($verbose);
if ($AFS::CODE) { print "AFS::CODE = $AFS::CODE\n"; }
else { print "OK \n"; }
test_it($vos);
sub test_it {
my $self = shift;
$self->DESTROY;
}
pod/v2/afsperl.pod view on Meta::CPAN
B<Nathan Neulinger> - for his improvements of the Makefile.PL
B<Bernard Antoine> - for his bug report on a memory leak in the method
"AFS::ACL->retrieve".
B<Peter Scott> - for his bug report on a memory leak in the function
"getvolstats"
B<Peter Scott> - for his bug report on the function AFS::constant
B<Venkata Phani Achanta> - for his improved test drivers for several modules
B<David R. Boldt> - for his bug report on an undefined "typemap" entry
B<Alf Wachsmann> and B<Venkata Phani Achanta> - for their implementation
of the BOS, VOS, and VLDB modules
B<Phil Moore> - for his bug report on Itanium ia64 platform
B<Frank Burkhardt> and B<David Miller> - for their problem reports on
Perl "unthreaded" version within the Debian "unstable" distribution
pod/v2/afsperl.pod view on Meta::CPAN
B<Yannick Bergeron> - for his corrections for the AFS::KTC_TOKEN documentation
B<Mike Polek> - for his patch for the AFS::FS::getquota function
B<Peter Scott> - for his problem report on AFS::VOS->listvolume and
for his improvements of the AFS::FS POD documentation
B<Wolfgang Friebel> - for his improvements of the AFS POD documentation
B<Joe Buehler> - for his problem report on the installation step and
his patch for the AFS::BOS test driver
B<Craig Huckabee> - for his problem report on the compile step with
OpenAFS 1.4.2 and for his patch for the internal BOS constructor
B<Wolfgang Friebel> - for his patch for the Makefile.PL
B<Alessio Rocchi> - for his bug reports on AFS::VOS->listvldb, on
AFS::VLDB->listaddr, and on AFS::VOS->listvol
B<Ken Dreyer> - for his problem report on the compile step with
pod/v2/afsperlbase.pod view on Meta::CPAN
$AFS::CODE is not equal to 0. Used mainly for debugging.
=item B<if (afsok) { ... }>
Convenience function that returns true if $AFS::CODE is equal to 0
=item B<$cur_raise_flg = raise_exception([NEW]);>
If NEW is set to 1, then a Perl exception will be raised whenever
an error is returned from an AFS function call. This is used mainly for
debugging and testing.
=item B<$msg = error_message(NUM_CODE);>
Converts numeric code NUM_CODE into an error string.
=item B<$val = constant(NAME);>
Converts a constant NAME (i.e, #define) into scaler. Returns undef for
unknown constants.
src/ACL/t/ACL.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 26; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok('AFS::ACL');
}
is(AFS::ACL->ascii2rights('write'), 63, 'ascii2rights');
my $acl = AFS::ACL->new({'foobar' => 'none'}, {'anyuser' => 'write'});
is(ref($acl), 'AFS::ACL', 'AFS::ACL->new()');
strcpy(sname.cell, info.name);
sname.instance[0] = 0;
strcpy(sname.name, "afs");
sc[0] = (struct rx_securityClass *) rxnull_NewClientSecurityObject();
sc[1] = 0;
sc[2] = (struct rx_securityClass *) NULL;
scIndex = 0;
if (!noauth) { /* not -noauth */
if (localauth) { /* -localauth */
*code = afsconf_GetLatestKey(cdir, 0, 0);
if (*code)
fprintf(stderr, "AFS::BOS %d (getting key from local KeyFile)", *code);
else {
if (aencrypt)
*code = afsconf_ClientAuthSecure(cdir, &sc[2], &scIndex);
else
*code = afsconf_ClientAuth(cdir, &sc[2], &scIndex);
if (*code)
fprintf(stderr, "AFS::BOS %d (calling ClientAuth)", *code);
else if (scIndex != 2) /* this shouldn't happen */
src/BOS/t/BOS.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 39; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok('AFS::BOS');
}
use AFS::VLDB;
use AFS::Cell 'localcell';
my $vldb = AFS::VLDB->new;
my $vldblist = $vldb->listvldbentry('root.afs');
my $server = $vldblist->{'root.afs'}->{'server'}->[0]->{'name'};
my $l_cell = localcell;
my $bos = AFS::BOS->new($server);
is(ref($bos), 'AFS::BOS', 'bos->new()');
undef $bos;
is(leak_test(), 1210, 'bos leak_test');
$bos = AFS::BOS->new($server);
my ($cell, $hostlist) = $bos->listhosts;
is($cell, $l_cell, 'bos-listhost: Cellname OK');
ok(defined $$hostlist[0], 'bos->listhost: Host list OK');
my @users = $bos->listusers;
ok(defined $users[0], 'bos->listusers: User list OK');
$bos->setrestart('14:00', 'a', 0);
src/BOS/t/BOS.t view on Meta::CPAN
can_ok('AFS::BOS', qw(getlog));
can_ok('AFS::BOS', qw(getrestricted));
can_ok('AFS::BOS', qw(listkeys));
can_ok('AFS::BOS', qw(prune));
$bos->removehost(\%h);
like($AFS::CODE, qr/HOST not an array reference/, 'bos->removehost(HASH)');
$host = 'z';
$bos->removehost($host);
SKIP: {
skip "You lack rights for this test", 1
if $AFS::CODE =~ /you are not authorized for this operation/;
like($AFS::CODE, qr/no such entity/, 'bos->removehost(unknown host)');
}
can_ok('AFS::BOS', qw(removekey));
$bos->removeuser(\%h);
like($AFS::CODE, qr/USER not an array reference/, 'bos->removeuser(HASH)');
my $user = 'z';
$bos->removeuser($user);
SKIP: {
skip "You lack rights for this test", 1
if $AFS::CODE =~ /you are not authorized for this operation/;
like($AFS::CODE, qr/no such user/, 'bos->removeuser(unknown user)');
}
can_ok('AFS::BOS', qw(restart_bos));
can_ok('AFS::BOS', qw(restart_all));
can_ok('AFS::BOS', qw(restart));
can_ok('AFS::BOS', qw(setauth));
can_ok('AFS::BOS', qw(setrestricted));
can_ok('AFS::BOS', qw(shutdown));
can_ok('AFS::BOS', qw(start));
can_ok('AFS::BOS', qw(startup));
can_ok('AFS::BOS', qw(stop));
$bos->DESTROY;
ok(! defined $bos, 'bos->DESTROY');
sub leak_test {
my $count = 0;
my $verb = 1;
while(1) {
$count++;
my $bos = AFS::BOS->new($verb);
$bos->DESTROY();
if ($count == 1210) { last; }
}
return $count;
}
src/CM/t/CM.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 15; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok('AFS::CM', qw (
checkvolumes
cm_access flush flushcb flushvolume
getcacheparms getcrypt
checkconn getcellstatus getvolstats
setcachesize setcellstatus setcrypt
)
src/Cell/t/Cell.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 8; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok('AFS::Cell', qw (configdir expandcell
getcellinfo localcell
whichcell wscell
)
);
}
my $conf_dir = configdir;
src/FS/t/FS.t view on Meta::CPAN
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
my ($quota, @hosts);
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 9; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok(
'AFS::FS', qw(
getquota setquota whereis
isafs lsmount mkmount rmmount
)
);
}
src/KAS/t/KAS.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 24; }
else { plan skip_all => 'Working directory is not in AFS file system ...'; }
use_ok('AFS::KAS');
}
use AFS::KTC_TOKEN;
my $kas = AFS::KAS->AuthServerConn(AFS::KTC_TOKEN->nulltoken, &AFS::KA_MAINTENANCE_SERVICE);
is(ref($kas), 'AFS::KAS', 'KAS->AuthServerConn(nulltoken)');
$kas->DESTROY;
src/KTC_EKEY/t/KTC_EKEY.t view on Meta::CPAN
# -*-cperl-*-
use strict;
use lib qw(../../inc ../inc);
use blib;
use Test::More;
BEGIN {
use AFS::FS;
if (AFS::FS::isafs('./')) { plan tests => 5; }
else { plan tests => 4; }
use_ok('AFS::KTC_EKEY');
}
my $dkey = AFS::KTC_EKEY->des_string_to_key('abc');
is(ref($dkey), 'AFS::KTC_EKEY', 'des_string_to_key(abc)');
can_ok('AFS::KTC_EKEY', qw(ReadPassword));
can_ok('AFS::KTC_EKEY', qw(UserReadPassword));