# This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.33
+# Version 1.3.35
#
# Don't modify this file, modify the SWIG interface instead.
*getconf_seen = *Amanda::Configc::getconf_seen;
*getconf_byname = *Amanda::Configc::getconf_byname;
*getconf_list = *Amanda::Configc::getconf_list;
+*getconf_byname_strs = *Amanda::Configc::getconf_byname_strs;
*lookup_tapetype = *Amanda::Configc::lookup_tapetype;
*tapetype_getconf = *Amanda::Configc::tapetype_getconf;
*tapetype_name = *Amanda::Configc::tapetype_name;
*holdingdisk_getconf = *Amanda::Configc::holdingdisk_getconf;
*holdingdisk_name = *Amanda::Configc::holdingdisk_name;
*holdingdisk_seen = *Amanda::Configc::holdingdisk_seen;
+*lookup_application = *Amanda::Configc::lookup_application;
+*application_getconf = *Amanda::Configc::application_getconf;
+*application_name = *Amanda::Configc::application_name;
+*application_seen = *Amanda::Configc::application_seen;
+*lookup_pp_script = *Amanda::Configc::lookup_pp_script;
+*pp_script_getconf = *Amanda::Configc::pp_script_getconf;
+*pp_script_name = *Amanda::Configc::pp_script_name;
+*pp_script_seen = *Amanda::Configc::pp_script_seen;
+*lookup_device_config = *Amanda::Configc::lookup_device_config;
+*device_config_getconf = *Amanda::Configc::device_config_getconf;
+*device_config_name = *Amanda::Configc::device_config_name;
+*device_config_seen = *Amanda::Configc::device_config_seen;
+*lookup_changer_config = *Amanda::Configc::lookup_changer_config;
+*changer_config_getconf = *Amanda::Configc::changer_config_getconf;
+*changer_config_name = *Amanda::Configc::changer_config_name;
+*changer_config_seen = *Amanda::Configc::changer_config_seen;
*getconf_unit_divisor = *Amanda::Configc::getconf_unit_divisor;
-*new_config_overwrites = *Amanda::Configc::new_config_overwrites;
-*free_config_overwrites = *Amanda::Configc::free_config_overwrites;
-*add_config_overwrite = *Amanda::Configc::add_config_overwrite;
-*add_config_overwrite_opt = *Amanda::Configc::add_config_overwrite_opt;
-*apply_config_overwrites = *Amanda::Configc::apply_config_overwrites;
*config_init = *Amanda::Configc::config_init;
*config_uninit = *Amanda::Configc::config_uninit;
*get_config_options = *Amanda::Configc::get_config_options;
*get_config_name = *Amanda::Configc::get_config_name;
*get_config_dir = *Amanda::Configc::get_config_dir;
*get_config_filename = *Amanda::Configc::get_config_filename;
+*config_print_errors = *Amanda::Configc::config_print_errors;
+*config_clear_errors = *Amanda::Configc::config_clear_errors;
+*config_errors = *Amanda::Configc::config_errors;
+*new_config_overwrites = *Amanda::Configc::new_config_overwrites;
+*free_config_overwrites = *Amanda::Configc::free_config_overwrites;
+*add_config_overwrite = *Amanda::Configc::add_config_overwrite;
+*add_config_overwrite_opt = *Amanda::Configc::add_config_overwrite_opt;
+*apply_config_overwrites = *Amanda::Configc::apply_config_overwrites;
*dump_configuration = *Amanda::Configc::dump_configuration;
*config_dir_relative = *Amanda::Configc::config_dir_relative;
*taperalgo2str = *Amanda::Configc::taperalgo2str;
*CNF_CLIENT_USERNAME = *Amanda::Configc::CNF_CLIENT_USERNAME;
*CNF_GNUTAR_LIST_DIR = *Amanda::Configc::CNF_GNUTAR_LIST_DIR;
*CNF_AMANDATES = *Amanda::Configc::CNF_AMANDATES;
+*CNF_MAILER = *Amanda::Configc::CNF_MAILER;
*CNF_MAILTO = *Amanda::Configc::CNF_MAILTO;
*CNF_DUMPUSER = *Amanda::Configc::CNF_DUMPUSER;
*CNF_TAPEDEV = *Amanda::Configc::CNF_TAPEDEV;
*CNF_DEVICE_PROPERTY = *Amanda::Configc::CNF_DEVICE_PROPERTY;
+*CNF_PROPERTY = *Amanda::Configc::CNF_PROPERTY;
*CNF_CHANGERDEV = *Amanda::Configc::CNF_CHANGERDEV;
*CNF_CHANGERFILE = *Amanda::Configc::CNF_CHANGERFILE;
*CNF_LABELSTR = *Amanda::Configc::CNF_LABELSTR;
*DUMPTYPE_KENCRYPT = *Amanda::Configc::DUMPTYPE_KENCRYPT;
*DUMPTYPE_IGNORE = *Amanda::Configc::DUMPTYPE_IGNORE;
*DUMPTYPE_INDEX = *Amanda::Configc::DUMPTYPE_INDEX;
+*DUMPTYPE_APPLICATION = *Amanda::Configc::DUMPTYPE_APPLICATION;
+*DUMPTYPE_PP_SCRIPTLIST = *Amanda::Configc::DUMPTYPE_PP_SCRIPTLIST;
+*DUMPTYPE_PROPERTY = *Amanda::Configc::DUMPTYPE_PROPERTY;
*INTER_COMMENT = *Amanda::Configc::INTER_COMMENT;
*INTER_MAXUSAGE = *Amanda::Configc::INTER_MAXUSAGE;
*HOLDING_COMMENT = *Amanda::Configc::HOLDING_COMMENT;
*HOLDING_DISKDIR = *Amanda::Configc::HOLDING_DISKDIR;
*HOLDING_DISKSIZE = *Amanda::Configc::HOLDING_DISKSIZE;
*HOLDING_CHUNKSIZE = *Amanda::Configc::HOLDING_CHUNKSIZE;
+*APPLICATION_COMMENT = *Amanda::Configc::APPLICATION_COMMENT;
+*APPLICATION_PLUGIN = *Amanda::Configc::APPLICATION_PLUGIN;
+*APPLICATION_PROPERTY = *Amanda::Configc::APPLICATION_PROPERTY;
+*PP_SCRIPT_COMMENT = *Amanda::Configc::PP_SCRIPT_COMMENT;
+*PP_SCRIPT_PLUGIN = *Amanda::Configc::PP_SCRIPT_PLUGIN;
+*PP_SCRIPT_PROPERTY = *Amanda::Configc::PP_SCRIPT_PROPERTY;
+*PP_SCRIPT_EXECUTE_ON = *Amanda::Configc::PP_SCRIPT_EXECUTE_ON;
+*PP_SCRIPT_EXECUTE_WHERE = *Amanda::Configc::PP_SCRIPT_EXECUTE_WHERE;
+*DEVICE_CONFIG_COMMENT = *Amanda::Configc::DEVICE_CONFIG_COMMENT;
+*DEVICE_CONFIG_TAPEDEV = *Amanda::Configc::DEVICE_CONFIG_TAPEDEV;
+*DEVICE_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::DEVICE_CONFIG_DEVICE_PROPERTY;
+*CHANGER_CONFIG_COMMENT = *Amanda::Configc::CHANGER_CONFIG_COMMENT;
+*CHANGER_CONFIG_TAPEDEV = *Amanda::Configc::CHANGER_CONFIG_TAPEDEV;
+*CHANGER_CONFIG_TPCHANGER = *Amanda::Configc::CHANGER_CONFIG_TPCHANGER;
+*CHANGER_CONFIG_CHANGERDEV = *Amanda::Configc::CHANGER_CONFIG_CHANGERDEV;
+*CHANGER_CONFIG_CHANGERFILE = *Amanda::Configc::CHANGER_CONFIG_CHANGERFILE;
*HOLD_NEVER = *Amanda::Configc::HOLD_NEVER;
*HOLD_AUTO = *Amanda::Configc::HOLD_AUTO;
*HOLD_REQUIRED = *Amanda::Configc::HOLD_REQUIRED;
*ALGO_LARGESTFIT = *Amanda::Configc::ALGO_LARGESTFIT;
*ALGO_SMALLEST = *Amanda::Configc::ALGO_SMALLEST;
*ALGO_LAST = *Amanda::Configc::ALGO_LAST;
+*EXECUTE_ON_PRE_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_DLE_AMCHECK;
+*EXECUTE_ON_PRE_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_HOST_AMCHECK;
+*EXECUTE_ON_POST_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_DLE_AMCHECK;
+*EXECUTE_ON_POST_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_HOST_AMCHECK;
+*EXECUTE_ON_PRE_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_DLE_ESTIMATE;
+*EXECUTE_ON_PRE_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_HOST_ESTIMATE;
+*EXECUTE_ON_POST_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_DLE_ESTIMATE;
+*EXECUTE_ON_POST_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_HOST_ESTIMATE;
+*EXECUTE_ON_PRE_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_DLE_BACKUP;
+*EXECUTE_ON_PRE_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_HOST_BACKUP;
+*EXECUTE_ON_POST_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_DLE_BACKUP;
+*EXECUTE_ON_POST_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_HOST_BACKUP;
+*SEND_AMREPORT_ALL = *Amanda::Configc::SEND_AMREPORT_ALL;
+*SEND_AMREPORT_STRANGE = *Amanda::Configc::SEND_AMREPORT_STRANGE;
+*SEND_AMREPORT_ERROR = *Amanda::Configc::SEND_AMREPORT_ERROR;
+*SEND_AMREPORT_NEVER = *Amanda::Configc::SEND_AMREPORT_NEVER;
*debug_amandad = *Amanda::Configc::debug_amandad;
*debug_amidxtaped = *Amanda::Configc::debug_amidxtaped;
*debug_amindexd = *Amanda::Configc::debug_amindexd;
*debug_selfcheck = *Amanda::Configc::debug_selfcheck;
*debug_sendsize = *Amanda::Configc::debug_sendsize;
*debug_sendbackup = *Amanda::Configc::debug_sendbackup;
+*CFGERR_OK = *Amanda::Configc::CFGERR_OK;
+*CFGERR_WARNINGS = *Amanda::Configc::CFGERR_WARNINGS;
+*CFGERR_ERRORS = *Amanda::Configc::CFGERR_ERRORS;
*CONFIG_INIT_EXPLICIT_NAME = *Amanda::Configc::CONFIG_INIT_EXPLICIT_NAME;
*CONFIG_INIT_USE_CWD = *Amanda::Configc::CONFIG_INIT_USE_CWD;
*CONFIG_INIT_CLIENT = *Amanda::Configc::CONFIG_INIT_CLIENT;
*CONFIG_INIT_OVERLAY = *Amanda::Configc::CONFIG_INIT_OVERLAY;
-*CONFIG_INIT_FATAL = *Amanda::Configc::CONFIG_INIT_FATAL;
@EXPORT_OK = ();
%EXPORT_TAGS = ();
=item If C<CONFIG_INIT_OVERLAY> is given, then any existing
configuration is not reset.
-=item If C<CONFIG_INIT_FATAL> is given, then any errors are considered
-fatal, and C<config_init> does not return.
-
=back
See C<conffile.h> for more detailed information on these flags and
available from C<get_config_name()>, C<get_config_dir()>, and
C<get_config_filename()>, respectively.
+=head3 CONFIG ERRORS
+
+This module collects configuration errors and warnings in a list, and also
+tracks the overall error level with an enumeration: C<$CFGERR_OK>,
+C<$CFGERR_WARNINGS>, and C<$CFGERR_ERRORS>. C<config_init> and
+C<apply_config_overwrites> both return the current level. The level and the
+list of error messages are available from C<config_errors>:
+
+ my ($cfgerr_level, @errors) = Amanda::Configconfig_errors();
+
+As a convenience, C<config_print_errors> will print all error messages to
+stderr. The error state can be cleared with C<config_clear_errors>.
+
=head2 CONFIG OVERWRITES
Most Amanda applications accept the command-line option C<-o>
with constants beginning with C<$DUMPTYPE_>
+=item C<interface>
+
+with constants beginning with C<$INTER_>
+
=item C<holdingdisk>
with constants beginning with C<$HOLDING_>
with constants beginning with C<$PP_SCRIPT_>
+=item C<device>
+
+with constants beginning with C<$DEVICE_CONFIG_>.
+
+=item C<changer>
+
+with constants beginning with C<$CHANGER_CONFIG_>.
+
=back
See C<conffile.h> for the names of the constants themselves.
-Parameter values are available by name from C<getconf_byname($name)>.
-This function implements the C<TYP:NAME:PARAM> syntax advertised by
-C<amgetconf> to access values in subsections. C<getconf_list($typ)>
-returns a list of the names of all subsections of the given type.
+Parameter values are available by name from C<getconf_byname($name)> and
+C<getconf_byname_strs($name, $str_needs_quotes)>. These functions implement
+the C<TYP:NAME:PARAM> syntax advertised by C<amgetconf> to access values in
+subsections. The first function returns a perl value, while the second returns
+a string suitable for use in C<amanda.conf>, including quotes around strings if
+C<$str_needs_quotes> is true.
+
+C<getconf_list($typ)> returns a list of the names of all subsections of the
+given type. C<%subsection_names> is a hash whose keys are allowed subsection
+names.
The C<$CNF_DISPLAYUNIT> implies a certain divisor to convert from
kilobytes to the desired unit. This divisor is available from
$_confparm_key_VALUES{"CNF_AMANDATES"} = $CNF_AMANDATES;
+push @EXPORT_OK, qw($CNF_MAILER);
+push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAILER);
+
+$_confparm_key_VALUES{"CNF_MAILER"} = $CNF_MAILER;
+
push @EXPORT_OK, qw($CNF_MAILTO);
push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_MAILTO);
$_confparm_key_VALUES{"CNF_DEVICE_PROPERTY"} = $CNF_DEVICE_PROPERTY;
+push @EXPORT_OK, qw($CNF_PROPERTY);
+push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_PROPERTY);
+
+$_confparm_key_VALUES{"CNF_PROPERTY"} = $CNF_PROPERTY;
+
push @EXPORT_OK, qw($CNF_CHANGERDEV);
push @{$EXPORT_TAGS{"confparm_key"}}, qw($CNF_CHANGERDEV);
$_dumptype_key_VALUES{"DUMPTYPE_INDEX"} = $DUMPTYPE_INDEX;
+push @EXPORT_OK, qw($DUMPTYPE_APPLICATION);
+push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_APPLICATION);
+
+$_dumptype_key_VALUES{"DUMPTYPE_APPLICATION"} = $DUMPTYPE_APPLICATION;
+
+push @EXPORT_OK, qw($DUMPTYPE_PP_SCRIPTLIST);
+push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PP_SCRIPTLIST);
+
+$_dumptype_key_VALUES{"DUMPTYPE_PP_SCRIPTLIST"} = $DUMPTYPE_PP_SCRIPTLIST;
+
+push @EXPORT_OK, qw($DUMPTYPE_PROPERTY);
+push @{$EXPORT_TAGS{"dumptype_key"}}, qw($DUMPTYPE_PROPERTY);
+
+$_dumptype_key_VALUES{"DUMPTYPE_PROPERTY"} = $DUMPTYPE_PROPERTY;
+
#copy symbols in dumptype_key to getconf
push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"dumptype_key"}};
#copy symbols in holdingdisk_key to getconf
push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"holdingdisk_key"}};
+push @EXPORT_OK, qw(application_key_to_string);
+push @{$EXPORT_TAGS{"application_key"}}, qw(application_key_to_string);
+
+my %_application_key_VALUES;
+#Convert an enum value to a single string
+sub application_key_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_application_key_VALUES) {
+ my $v = $_application_key_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($APPLICATION_COMMENT);
+push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_COMMENT);
+
+$_application_key_VALUES{"APPLICATION_COMMENT"} = $APPLICATION_COMMENT;
+
+push @EXPORT_OK, qw($APPLICATION_PLUGIN);
+push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_PLUGIN);
+
+$_application_key_VALUES{"APPLICATION_PLUGIN"} = $APPLICATION_PLUGIN;
+
+push @EXPORT_OK, qw($APPLICATION_PROPERTY);
+push @{$EXPORT_TAGS{"application_key"}}, qw($APPLICATION_PROPERTY);
+
+$_application_key_VALUES{"APPLICATION_PROPERTY"} = $APPLICATION_PROPERTY;
+
+#copy symbols in application_key to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"application_key"}};
+
+push @EXPORT_OK, qw(pp_script_key_to_string);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw(pp_script_key_to_string);
+
+my %_pp_script_key_VALUES;
+#Convert an enum value to a single string
+sub pp_script_key_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_pp_script_key_VALUES) {
+ my $v = $_pp_script_key_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($PP_SCRIPT_COMMENT);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_COMMENT);
+
+$_pp_script_key_VALUES{"PP_SCRIPT_COMMENT"} = $PP_SCRIPT_COMMENT;
+
+push @EXPORT_OK, qw($PP_SCRIPT_PLUGIN);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_PLUGIN);
+
+$_pp_script_key_VALUES{"PP_SCRIPT_PLUGIN"} = $PP_SCRIPT_PLUGIN;
+
+push @EXPORT_OK, qw($PP_SCRIPT_PROPERTY);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_PROPERTY);
+
+$_pp_script_key_VALUES{"PP_SCRIPT_PROPERTY"} = $PP_SCRIPT_PROPERTY;
+
+push @EXPORT_OK, qw($PP_SCRIPT_EXECUTE_ON);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_EXECUTE_ON);
+
+$_pp_script_key_VALUES{"PP_SCRIPT_EXECUTE_ON"} = $PP_SCRIPT_EXECUTE_ON;
+
+push @EXPORT_OK, qw($PP_SCRIPT_EXECUTE_WHERE);
+push @{$EXPORT_TAGS{"pp_script_key"}}, qw($PP_SCRIPT_EXECUTE_WHERE);
+
+$_pp_script_key_VALUES{"PP_SCRIPT_EXECUTE_WHERE"} = $PP_SCRIPT_EXECUTE_WHERE;
+
+#copy symbols in pp_script_key to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"pp_script_key"}};
+
+push @EXPORT_OK, qw(device_config_key_to_string);
+push @{$EXPORT_TAGS{"device_config_key"}}, qw(device_config_key_to_string);
+
+my %_device_config_key_VALUES;
+#Convert an enum value to a single string
+sub device_config_key_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_device_config_key_VALUES) {
+ my $v = $_device_config_key_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($DEVICE_CONFIG_COMMENT);
+push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_COMMENT);
+
+$_device_config_key_VALUES{"DEVICE_CONFIG_COMMENT"} = $DEVICE_CONFIG_COMMENT;
+
+push @EXPORT_OK, qw($DEVICE_CONFIG_TAPEDEV);
+push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_TAPEDEV);
+
+$_device_config_key_VALUES{"DEVICE_CONFIG_TAPEDEV"} = $DEVICE_CONFIG_TAPEDEV;
+
+push @EXPORT_OK, qw($DEVICE_CONFIG_DEVICE_PROPERTY);
+push @{$EXPORT_TAGS{"device_config_key"}}, qw($DEVICE_CONFIG_DEVICE_PROPERTY);
+
+$_device_config_key_VALUES{"DEVICE_CONFIG_DEVICE_PROPERTY"} = $DEVICE_CONFIG_DEVICE_PROPERTY;
+
+#copy symbols in device_config_key to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"device_config_key"}};
+
+push @EXPORT_OK, qw(changer_config_key_to_string);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw(changer_config_key_to_string);
+
+my %_changer_config_key_VALUES;
+#Convert an enum value to a single string
+sub changer_config_key_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_changer_config_key_VALUES) {
+ my $v = $_changer_config_key_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($CHANGER_CONFIG_COMMENT);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_COMMENT);
+
+$_changer_config_key_VALUES{"CHANGER_CONFIG_COMMENT"} = $CHANGER_CONFIG_COMMENT;
+
+push @EXPORT_OK, qw($CHANGER_CONFIG_TAPEDEV);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_TAPEDEV);
+
+$_changer_config_key_VALUES{"CHANGER_CONFIG_TAPEDEV"} = $CHANGER_CONFIG_TAPEDEV;
+
+push @EXPORT_OK, qw($CHANGER_CONFIG_TPCHANGER);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_TPCHANGER);
+
+$_changer_config_key_VALUES{"CHANGER_CONFIG_TPCHANGER"} = $CHANGER_CONFIG_TPCHANGER;
+
+push @EXPORT_OK, qw($CHANGER_CONFIG_CHANGERDEV);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_CHANGERDEV);
+
+$_changer_config_key_VALUES{"CHANGER_CONFIG_CHANGERDEV"} = $CHANGER_CONFIG_CHANGERDEV;
+
+push @EXPORT_OK, qw($CHANGER_CONFIG_CHANGERFILE);
+push @{$EXPORT_TAGS{"changer_config_key"}}, qw($CHANGER_CONFIG_CHANGERFILE);
+
+$_changer_config_key_VALUES{"CHANGER_CONFIG_CHANGERFILE"} = $CHANGER_CONFIG_CHANGERFILE;
+
+#copy symbols in changer_config_key to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"changer_config_key"}};
+
push @EXPORT_OK, qw(dump_holdingdisk_t_to_string);
push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw(dump_holdingdisk_t_to_string);
#copy symbols in taperalgo_t to getconf
push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"taperalgo_t"}};
+push @EXPORT_OK, qw(execute_on_t_to_string);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw(execute_on_t_to_string);
+
+my %_execute_on_t_VALUES;
+#Convert an enum value to a single string
+sub execute_on_t_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_execute_on_t_VALUES) {
+ my $v = $_execute_on_t_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_AMCHECK);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_AMCHECK);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_AMCHECK"} = $EXECUTE_ON_PRE_DLE_AMCHECK;
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_AMCHECK);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_AMCHECK);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_AMCHECK"} = $EXECUTE_ON_PRE_HOST_AMCHECK;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_AMCHECK);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_AMCHECK);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_AMCHECK"} = $EXECUTE_ON_POST_DLE_AMCHECK;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_AMCHECK);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_AMCHECK);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_AMCHECK"} = $EXECUTE_ON_POST_HOST_AMCHECK;
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_ESTIMATE);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_ESTIMATE);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_ESTIMATE"} = $EXECUTE_ON_PRE_DLE_ESTIMATE;
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_ESTIMATE);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_ESTIMATE);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_ESTIMATE"} = $EXECUTE_ON_PRE_HOST_ESTIMATE;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_ESTIMATE);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_ESTIMATE);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_ESTIMATE"} = $EXECUTE_ON_POST_DLE_ESTIMATE;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_ESTIMATE);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_ESTIMATE);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_ESTIMATE"} = $EXECUTE_ON_POST_HOST_ESTIMATE;
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_BACKUP);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_BACKUP);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_BACKUP"} = $EXECUTE_ON_PRE_DLE_BACKUP;
+
+push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_BACKUP);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_BACKUP);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_BACKUP"} = $EXECUTE_ON_PRE_HOST_BACKUP;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_BACKUP);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_BACKUP);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_BACKUP"} = $EXECUTE_ON_POST_DLE_BACKUP;
+
+push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_BACKUP);
+push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_BACKUP);
+
+$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_BACKUP"} = $EXECUTE_ON_POST_HOST_BACKUP;
+
+#copy symbols in execute_on_t to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"execute_on_t"}};
+
+push @EXPORT_OK, qw(send_amreport_on_t_to_string);
+push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw(send_amreport_on_t_to_string);
+
+my %_send_amreport_on_t_VALUES;
+#Convert an enum value to a single string
+sub send_amreport_on_t_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_send_amreport_on_t_VALUES) {
+ my $v = $_send_amreport_on_t_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($SEND_AMREPORT_ALL);
+push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ALL);
+
+$_send_amreport_on_t_VALUES{"SEND_AMREPORT_ALL"} = $SEND_AMREPORT_ALL;
+
+push @EXPORT_OK, qw($SEND_AMREPORT_STRANGE);
+push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_STRANGE);
+
+$_send_amreport_on_t_VALUES{"SEND_AMREPORT_STRANGE"} = $SEND_AMREPORT_STRANGE;
+
+push @EXPORT_OK, qw($SEND_AMREPORT_ERROR);
+push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ERROR);
+
+$_send_amreport_on_t_VALUES{"SEND_AMREPORT_ERROR"} = $SEND_AMREPORT_ERROR;
+
+push @EXPORT_OK, qw($SEND_AMREPORT_NEVER);
+push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_NEVER);
+
+$_send_amreport_on_t_VALUES{"SEND_AMREPORT_NEVER"} = $SEND_AMREPORT_NEVER;
+
+#copy symbols in send_amreport_on_t to getconf
+push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"send_amreport_on_t"}};
+
push @EXPORT_OK, qw(getconf getconf_seen
- getconf_byname getconf_list);
+ getconf_byname getconf_byname_strs
+ getconf_list);
push @{$EXPORT_TAGS{"getconf"}}, qw(getconf getconf_seen
- getconf_byname getconf_list);
+ getconf_byname getconf_byname_strs
+ getconf_list);
push @EXPORT_OK, qw(lookup_tapetype tapetype_getconf tapetype_name
tapetype_seen tapetype_seen);
getconf_holdingdisks holdingdisk_next
holdingdisk_seen holdingdisk_seen);
+push @EXPORT_OK, qw(lookup_application application_getconf application_name
+ application_seen application_seen);
+push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_application application_getconf application_name
+ application_seen application_seen);
+
+push @EXPORT_OK, qw(lookup_pp_script pp_script_getconf pp_script_name
+ pp_script_seen pp_script_seen);
+push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_pp_script pp_script_getconf pp_script_name
+ pp_script_seen pp_script_seen);
+
+push @EXPORT_OK, qw(lookup_device_config device_config_getconf device_config_name
+ device_config_seen device_config_seen);
+push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_device_config device_config_getconf device_config_name
+ device_config_seen device_config_seen);
+
+push @EXPORT_OK, qw(lookup_changer_config changer_config_getconf changer_config_name
+ changer_config_seen changer_config_seen);
+push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_changer_config changer_config_getconf changer_config_name
+ changer_config_seen changer_config_seen);
+
+our %subsection_names = (
+ "tapetype" => 1,
+ "dumptype" => 1,
+ "interface" => 1,
+ "holdingdisk" => 1,
+ "application-tool" => 1,
+ "script-tool" => 1,
+ "device" => 1,
+ "changer" => 1,
+);
+
+push @EXPORT_OK, qw(%subsection_names);
+push @{$EXPORT_TAGS{"getconf"}}, qw(%subsection_names);
+
push @EXPORT_OK, qw(getconf_unit_divisor
$debug_amandad $debug_amidxtaped $debug_amindexd $debug_amrecover
$debug_planner $debug_driver $debug_dumper $debug_chunker
$debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
-push @EXPORT_OK, qw(new_config_overwrites free_config_overwrites add_config_overwrite
- add_config_overwrite_opt apply_config_overwrites);
-push @{$EXPORT_TAGS{"init"}}, qw(new_config_overwrites free_config_overwrites add_config_overwrite
- add_config_overwrite_opt apply_config_overwrites);
+push @EXPORT_OK, qw(cfgerr_level_t_to_string);
+push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw(cfgerr_level_t_to_string);
+
+my %_cfgerr_level_t_VALUES;
+#Convert an enum value to a single string
+sub cfgerr_level_t_to_string {
+ my ($enumval) = @_;
+
+ for my $k (keys %_cfgerr_level_t_VALUES) {
+ my $v = $_cfgerr_level_t_VALUES{$k};
+
+ #is this a matching flag?
+ if ($enumval == $v) {
+ return $k;
+ }
+ }
+
+#default, just return the number
+ return $enumval;
+}
+
+push @EXPORT_OK, qw($CFGERR_OK);
+push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_OK);
+
+$_cfgerr_level_t_VALUES{"CFGERR_OK"} = $CFGERR_OK;
+
+push @EXPORT_OK, qw($CFGERR_WARNINGS);
+push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_WARNINGS);
+
+$_cfgerr_level_t_VALUES{"CFGERR_WARNINGS"} = $CFGERR_WARNINGS;
+
+push @EXPORT_OK, qw($CFGERR_ERRORS);
+push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_ERRORS);
+
+$_cfgerr_level_t_VALUES{"CFGERR_ERRORS"} = $CFGERR_ERRORS;
+
+#copy symbols in cfgerr_level_t to init
+push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"cfgerr_level_t"}};
push @EXPORT_OK, qw(config_init_flags_to_strings);
push @{$EXPORT_TAGS{"config_init_flags"}}, qw(config_init_flags_to_strings);
$_config_init_flags_VALUES{"CONFIG_INIT_OVERLAY"} = $CONFIG_INIT_OVERLAY;
-push @EXPORT_OK, qw($CONFIG_INIT_FATAL);
-push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_FATAL);
-
-$_config_init_flags_VALUES{"CONFIG_INIT_FATAL"} = $CONFIG_INIT_FATAL;
-
#copy symbols in config_init_flags to init
push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"config_init_flags"}};
-push @EXPORT_OK, qw(config_init config_uninit get_config_options);
-push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options);
-
-push @EXPORT_OK, qw(get_config_name
- get_config_dir
- get_config_filename);
-push @{$EXPORT_TAGS{"init"}}, qw(get_config_name
- get_config_dir
- get_config_filename);
+push @EXPORT_OK, qw(config_init config_uninit get_config_options
+ get_config_name get_config_dir get_config_filename
+ config_print_errors config_clear_errors config_errors
+ new_config_overwrites free_config_overwrites add_config_overwrite
+ add_config_overwrite_opt apply_config_overwrites);
+push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options
+ get_config_name get_config_dir get_config_filename
+ config_print_errors config_clear_errors config_errors
+ new_config_overwrites free_config_overwrites add_config_overwrite
+ add_config_overwrite_opt apply_config_overwrites);
push @EXPORT_OK, qw(dump_configuration config_dir_relative taperalgo2str find_multiplier);
1;