AFS

 view release on metacpan or  search on metacpan

pod/v2/afsperlvos.pod  view on Meta::CPAN

#------------------------------------------------------------------------------
# RCS-Id: "@(#)$RCS-Id: pod/v2/afsperlvos.pod 2e2ca60 Tue Apr 15 13:04:20 2014 +0200 Norbert E Gruener$"
#
# © 2005-2014 Norbert E. Gruener <nog@MPA-Garching.MPG.de>
# © 2003-2004 Alf Wachsmann <alfw@slac.stanford.edu>
#             Venkata Phani Kiran Achanta <neo_phani@hotmail.com>, and
#             Norbert E. Gruener <nog@MPA-Garching.MPG.de>
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#------------------------------------------------------------------------------

=head1 NAME

B<AFS::VOS> - Class to communicate with the B<AFS Volume Server>

=head1 SYNOPSIS

  use AFS::VOS;

  my $vos = AFS::VOS->new(1, 120, 1);

  my $ok = $vos->backup('volume');
  $vos->DESTROY;

  $vos = AFS::VOS->new;

  $ok = $vos->dump('volume', 0, 'dump.vol', '', '', 1, 1);
  $ok = $vos->dump('volume', 0, 'dump.vol');
  $ok = $vos->restore('serv1', '/vicepa', 'volume', 'dump.vol', 0, 1);

  my $volid = $vos->create('serv1', '/vicepa', 'volume');
  $volid = $vos->move('volume', 'serv1', 'vicepa', 'serv2', 'vicepb');
  $volid = $vos->remove('serv1', '/vicepa', 'volume');

  $ok = $vos->offline('serv1', '/vicepa', 'volume');
  $ok = $vos->online('serv1', '/vicepa', 'volume');

  $ok = $vos->release('volume');
  my $stat = $vos->status('serv1', '/vicepa');
  print "Status is: $stat\n";

  $ok = $vos->rename('oldvol', 'newvol');

  $ok = $vos->setquota('volume', 6500, 1);

  $volid = $vos->zap('serv1', '/vicepa', 'volume');

  my ($tBack, $tFail) = $vos->backupsys('home', 'serv', '/vicepc');
  ($tBack, $tFail) = $vos->backupsys(['home', 'data'], 'serv', '/vicepc');

  my @parts = $vos->listpart('serv1');

  my $vols = $vos->listvol('serv1', '/vicepa');

  my $partinfo = $vos->partinfo('volume');

=head1 DESCRIPTION

This class is used to communicate with the B<AFS Volume Server>, which
runs on every AFS server machine.  The Volume Server allows
administrative tasks and probes to be performed on the set of AFS
volumes residing on the machine on which it is running.  This class
provides methods to create, move, delete, replicate, back up and
examine AFS volumes.  It has also methods to provide information about
AFS partitions.

Before you can submit any tasks to a Volume Server you must establish
a connection to it.  This is done by the constructor method I<new>
which returns a VOS object.  A VOS object is essentially a handle to
talk to the Volume Server in a given cell.  Such a VOS object is
required before any of the other VOS instance methods can be called.

=head1 COMPATIBILITY

There was no version 1 implementation and hence there are no version
conflicts :-)

=head1 METHODS

=over 4

=item B<CONSTRUCTOR>

=item S< >

=item B<$vos = AFS::VOS-E<gt>new([VERBOSE [, TIMEOUT [, NOAUTH [, LOCALAUTH [, CELL [, ENCRYPT]]]]]);>

Creates a new object of the class AFS::VOS.  An AFS::VOS object is
essentially a handle to talk to the Volume Server.  Internally an
AFS::VOS object is a pointer to a ubik_client structure, although this
may change and the value returned from AFS::VOS::new should always be
treaded as an opaque handle.

Set VERBOSE (default 0) to 1 to produce on the standard output stream
a detailed trace of the method's execution.  TIMEOUT is the time of
inactivity in seconds before the connection to the VOS server is
declared dead (default 90 seconds).  Set LOCALAUTH (default 0) to 1
only when issuing a command on a server machine.  If NOAUTH is 1
(default 0) it establishes an unauthenticated connection to the
server, in which the servers treat the issuer as an unprivileged user.
CELL (default NULL) specifies the cell in which to run the
command. Set ENCRYPT to 1 (default 0) to encrypt the connection to the

pod/v2/afsperlvos.pod  view on Meta::CPAN

VOLUME specifies either the complete name or volume ID number of the
volume. The return value is a reference to a hash table containing the
values from the C structure C<volintinfo>.  For a list of the hash
keys see above.

It calls the AFS system library function I<UV_ListOneVolume>.

You can find an example how to print the entire content of the
returned hash reference in the C<examples/v2/vos> directory.

=item B<$volid = $vos-E<gt>move(VOLUME, FSERVER, FPARTITION, TSERVER, TPARTITION);>

Moves the indicated read/write volume from its current site FSERVER,
FPARTITION to the destination site TSERVER, TPARTITION.  VOLUME
specifies either the complete name or volume ID number of the volume.
It returns the volume id number of the moved volume.  It calls the AFS
system library function I<UV_MoveVolume>.

=item B<$ok = $vos-E<gt>offline(SERVER, PARTITION, VOLUME [, BUSY, SLEEP]);>

Takes the specified volume offline.  VOLUME specifies either the
complete name or volume ID number of the volume.  If you set BUSY
(default 0) to 1 the volume will be marked as I<busy> for the
specified SLEEP seconds.  It calls the AFS system library function
I<UV_SetVolume>.

=item B<$ok = $vos-E<gt>online(SERVER, PARTITION, VOLUME);>

Brings the specified volume online.  VOLUME specifies either the
complete name or volume ID number of the volume.  It calls the AFS
system library function I<UV_SetVolume>.

=item B<$partinfo = $vos-E<gt>partinfo( SERVER [, PARTITION]);>

Returns an hash reference containing the amount of space available and
total size on either all of the partitions on the indicated file
SERVER machine (if the PARTITION argument is omitted) or the specified
PARTITION on that file server machine.

It calls the AFS system library function I<UV_ListPartitions>.

You can find an example how to print the entire content of the
returned hash reference in the C<examples/v2/vos> directory.

=item B<$ok = $vos-E<gt>release(VOLUME [, FORCE]);>

Copies the contents of the indicated read/write source volume to each
read-only site.  VOLUME specifies either the complete name or volume
ID number of the volume.  If FORCE (default 0) is set to 1, a complete
release is enforced.  It calls the AFS system library function
I<UV_ReleaseVolume>.

=item B<$volid = $vos-E<gt>remove(VOLUME [, SERVER, PARTITION]);>

Removes the indicated volume.  VOLUME specifies either the complete
name or volume ID number of the volume.  To remove the read-only
volume from a particular site, specify the SERVER and PARTITION
arguments. It returns the volume id number of the removed volume.  It
calls the AFS system library function I<UV_DeleteVolume>.

=item B<$ok = $vos-E<gt>rename(ONAME, NNAME);>

Changes the name of the read/write volume from ONAME to NNAME.
It calls the AFS system library function I<UV_RenameVolume>.

=item B<$ok = $vos-E<gt>restore(SERVER, PARTITION, VOLUME [, DUMPFILE [, ID [, INTER [, OVERWRITE [, OFFLINE [, READONLY]]]]]] );>

Converts the ASCII file DUMPFILE or the standard input stream
(default) and restores it as a read/write VOLUME to the PARTITION on
the SERVER.  ID specifies the volume ID number to assign to the
restored volume.  OVERWRITE must be specified when overwriting an
existing volume.  The following values are possible:

=over 4

=item B<a> to abort the restore operation.

=item B<f> if restoring a full dump file.

=item B<i> if restoring an incremental dump file.

=back

Set OFFLINE (default 0) to 1 to leave restored volume offline.  Set
READONLY (default 0) to 1 to make the restored volume read-only.

If the VOLUME already exists, the OVERWRITE argument is omitted, and
the INTER argument (default 0) is set to 1 the method is interactively
prompting for the type of restore (exactly like the I<vos restore>
command).

It calls the AFS system library function I<UV_RestoreVolume>.

=item B<$ok = $vos-E<gt>setquota(VOLUME, QUOTA [, CLEAR]);>

Sets the QUOTA for the specified volume.  Specify the number of
one-kilobyte blocks as a positive integer (1024 is one megabyte).
VOLUME specifies either the complete name or volume ID number of the
volume.  Set CLEAR (default 0) to 1 to clear the access counter on the
VOLUME, shown on the B<examine> method.  It calls the AFS system
library function I<UV_SetVolumeInfo>.

=item B<$stat = $vos-E<gt>status(SERVER);>

Reports on what the Volume Server on a certain file SERVER machine is
doing at the moment the method is performed.
It calls the AFS system library function I<UV_VolserStatus>.

=item B<$volid = $vos-E<gt>zap(SERVER, PARTITION, ID [, FORCE [, BACKUP]]);>

Removes the specified volume ID number of the volume from the site
defined by the SERVER and PARTITION arguments, without attempting to
change the corresponding Volume Location Database (VLDB) entry.  Set
FORCE (default 0) to 1 to remove the volume even though it cannot be
attached (brought online). Use this flag only after the failure of
previous attempts to remove the volume. Set BACKUP (default 0) to 1 to
remove the backup version of the read/write volume.  It returns the
volume id number of the removed volume.
It calls the AFS system library function I<UV_VolumeZap>.

=back



( run in 0.875 second using v1.01-cache-2.11-cpan-5735350b133 )