Amanda::Disklist - interface to the Amanda disklist
use Amanda::Config qw( :init :getconf ); use Amanda::Disklist;
# .. call config_init() my $cfgerr_level = Amanda::Disklist::read_disklist( filename => $ARGV[0], disk_class => "MyScript::Disk", ); die("Config errors") if ($cfgerr_level >= $CFGERR_WARNINGS); my $dle = Amanda::Disklist::get_disk($ARGV[1], $ARGV[2]); die "No such DLE" unless defined($dle);
print "Diskname for this DLE: ", $dle->{name}, "\n"; print "Auth for this DLE's host: ", $dle->{host}->{auth}, "\n"; print "'record':", dumptype_getconf($dle->{config}, $DUMPTYPE_RECORD), "\n";
The Amanda disklist is a part of its configuration, so this module is
similar in function to Amanda::Config. In particular,
read_disklist
loads the disklist into process-global variables, and
returns an error status similar to that of Amanda::Config. Those
global variables are then used by the acces functions described below.
Amanda parses all DLE's as a simple tuple (host, diskname, device,
dumptype, interface, spindle), linked to a dumptype. DLE's which
specify additional dumptype parameters within the disklist
file
result in the creation of a "hidden" dumptype with those parameters.
Consequently, most configuration data about a particular disk is
available in an Amanda::Config::dumptype_t
object, and that data is
not reproduced by this package.
This package differs from the underlying C code in that it separates disk configuration from host configuration. Furthermore, the package does not provide storage for runtime parameters you might want to associate with hosts or disks. However, the objects this packages creates are simple hashrefs that can be blessed with arbitrary class names, so you can add whatever data and behaviors you like to these objects.
After calling Amanda::Config::config_init()
, call read_disklist
.
The following parameters are available:
Filename from which to read the disklist; defaults to the diskfile
configuration parameter.
Class with which to bless disk objects; defaults to
Amanda::Disklist::Disk
.
Class with which to bless host objects; defaults to
Amanda::Disklist::Host
.
Class with which to bless interface objects; defaults to
Amanda::Disklist::Interface
.
read_disklist
returns a config error level just like
config_init
. Once the disklist is loaded, call one of the following
functions to access the disklist.
get_host($host) get the corresponding host object all_hosts() get a list of all host objects get_disk($host, $disk) get a specific disk object all_disks() get a list of all disk objects get_interface($name) get a specific interface object all_interfaces() get a list of all interface objects
A disk object has the following keys:
Host object for this DLE
The disk name
The device, if one was specified separately from the disk name
The spindle specified in the disklist
An Amanda::Config::dumptype_t
object giving the configuration for
the disk; use dumptype_getconf
and other functions from
Amanda::Config to examine it.
Note that, because host configuration parameters are specified in
dumptypes, there is no config
key for a host object. Instead, the
relevant parameters are available as attributes of the object.
hostname of this host
configuration parameters
an array containing the names of all of the disks on this host.
As a convenience, the Amanda::Disklist::Host
class also provides
methods get_disk($disk)
, to get a disk object on the host, and
all_disks()
, to get a list of all disk objects on this host.
Interface objects have only one key, config
, containing a
Amanda::Config::interface_t
object; use interface_getconf
and
other functions from Amanda::Config to examine it.
This page was automatically generated Tue Nov 19 20:05:35 2013 from the Amanda source tree, and documents the most recent development version of Amanda. For documentation specific to the version of Amanda on your system, use the 'perldoc' command.