1# This file was automatically generated by SWIG (http://www.swig.org). 2# Version 3.0.7 3# 4# Do not make changes to this file unless you know what you are doing--modify 5# the SWIG interface file instead. 6 7package Amanda::Config; 8use base qw(Exporter); 9use base qw(DynaLoader); 10package Amanda::Configc; 11bootstrap Amanda::Config; 12package Amanda::Config; 13@EXPORT = qw(); 14 15# ---------- BASE METHODS ------------- 16 17package Amanda::Config; 18 19sub TIEHASH { 20 my ($classname,$obj) = @_; 21 return bless $obj, $classname; 22} 23 24sub CLEAR { } 25 26sub FIRSTKEY { } 27 28sub NEXTKEY { } 29 30sub FETCH { 31 my ($self,$field) = @_; 32 my $member_func = "swig_${field}_get"; 33 $self->$member_func(); 34} 35 36sub STORE { 37 my ($self,$field,$newval) = @_; 38 my $member_func = "swig_${field}_set"; 39 $self->$member_func($newval); 40} 41 42sub this { 43 my $ptr = shift; 44 return tied(%$ptr); 45} 46 47 48# ------- FUNCTION WRAPPERS -------- 49 50package Amanda::Config; 51 52*data_path_from_string = *Amanda::Configc::data_path_from_string; 53*getconf = *Amanda::Configc::getconf; 54*getconf_seen = *Amanda::Configc::getconf_seen; 55*getconf_linenum = *Amanda::Configc::getconf_linenum; 56*getconf_byname = *Amanda::Configc::getconf_byname; 57*getconf_list = *Amanda::Configc::getconf_list; 58*getconf_byname_strs = *Amanda::Configc::getconf_byname_strs; 59*lookup_tapetype = *Amanda::Configc::lookup_tapetype; 60*tapetype_getconf = *Amanda::Configc::tapetype_getconf; 61*tapetype_name = *Amanda::Configc::tapetype_name; 62*tapetype_seen = *Amanda::Configc::tapetype_seen; 63*lookup_dumptype = *Amanda::Configc::lookup_dumptype; 64*dumptype_getconf = *Amanda::Configc::dumptype_getconf; 65*dumptype_name = *Amanda::Configc::dumptype_name; 66*dumptype_seen = *Amanda::Configc::dumptype_seen; 67*lookup_interface = *Amanda::Configc::lookup_interface; 68*interface_getconf = *Amanda::Configc::interface_getconf; 69*interface_name = *Amanda::Configc::interface_name; 70*interface_seen = *Amanda::Configc::interface_seen; 71*lookup_holdingdisk = *Amanda::Configc::lookup_holdingdisk; 72*getconf_holdingdisks = *Amanda::Configc::getconf_holdingdisks; 73*holdingdisk_getconf = *Amanda::Configc::holdingdisk_getconf; 74*holdingdisk_name = *Amanda::Configc::holdingdisk_name; 75*holdingdisk_seen = *Amanda::Configc::holdingdisk_seen; 76*lookup_application = *Amanda::Configc::lookup_application; 77*application_getconf = *Amanda::Configc::application_getconf; 78*application_name = *Amanda::Configc::application_name; 79*application_seen = *Amanda::Configc::application_seen; 80*lookup_pp_script = *Amanda::Configc::lookup_pp_script; 81*pp_script_getconf = *Amanda::Configc::pp_script_getconf; 82*pp_script_name = *Amanda::Configc::pp_script_name; 83*pp_script_seen = *Amanda::Configc::pp_script_seen; 84*lookup_device_config = *Amanda::Configc::lookup_device_config; 85*device_config_getconf = *Amanda::Configc::device_config_getconf; 86*device_config_name = *Amanda::Configc::device_config_name; 87*device_config_seen = *Amanda::Configc::device_config_seen; 88*lookup_changer_config = *Amanda::Configc::lookup_changer_config; 89*changer_config_getconf = *Amanda::Configc::changer_config_getconf; 90*changer_config_name = *Amanda::Configc::changer_config_name; 91*changer_config_seen = *Amanda::Configc::changer_config_seen; 92*lookup_interactivity = *Amanda::Configc::lookup_interactivity; 93*interactivity_getconf = *Amanda::Configc::interactivity_getconf; 94*interactivity_name = *Amanda::Configc::interactivity_name; 95*interactivity_seen = *Amanda::Configc::interactivity_seen; 96*lookup_taperscan = *Amanda::Configc::lookup_taperscan; 97*taperscan_getconf = *Amanda::Configc::taperscan_getconf; 98*taperscan_name = *Amanda::Configc::taperscan_name; 99*taperscan_seen = *Amanda::Configc::taperscan_seen; 100*getconf_unit_divisor = *Amanda::Configc::getconf_unit_divisor; 101*config_init = *Amanda::Configc::config_init; 102*config_uninit = *Amanda::Configc::config_uninit; 103*get_config_options = *Amanda::Configc::get_config_options; 104*get_config_name = *Amanda::Configc::get_config_name; 105*get_config_dir = *Amanda::Configc::get_config_dir; 106*get_config_filename = *Amanda::Configc::get_config_filename; 107*config_print_errors = *Amanda::Configc::config_print_errors; 108*config_clear_errors = *Amanda::Configc::config_clear_errors; 109*config_errors = *Amanda::Configc::config_errors; 110*new_config_overrides = *Amanda::Configc::new_config_overrides; 111*free_config_overrides = *Amanda::Configc::free_config_overrides; 112*add_config_override = *Amanda::Configc::add_config_override; 113*add_config_override_opt = *Amanda::Configc::add_config_override_opt; 114*set_config_overrides = *Amanda::Configc::set_config_overrides; 115*dump_configuration = *Amanda::Configc::dump_configuration; 116*config_dir_relative = *Amanda::Configc::config_dir_relative; 117*taperalgo2str = *Amanda::Configc::taperalgo2str; 118*find_multiplier = *Amanda::Configc::find_multiplier; 119*C_string_to_boolean = *Amanda::Configc::C_string_to_boolean; 120*amandaify_property_name = *Amanda::Configc::amandaify_property_name; 121 122# ------- VARIABLE STUBS -------- 123 124package Amanda::Config; 125 126*CNF_ORG = *Amanda::Configc::CNF_ORG; 127*CNF_CONF = *Amanda::Configc::CNF_CONF; 128*CNF_AMDUMP_SERVER = *Amanda::Configc::CNF_AMDUMP_SERVER; 129*CNF_INDEX_SERVER = *Amanda::Configc::CNF_INDEX_SERVER; 130*CNF_TAPE_SERVER = *Amanda::Configc::CNF_TAPE_SERVER; 131*CNF_AUTH = *Amanda::Configc::CNF_AUTH; 132*CNF_SSH_KEYS = *Amanda::Configc::CNF_SSH_KEYS; 133*CNF_AMANDAD_PATH = *Amanda::Configc::CNF_AMANDAD_PATH; 134*CNF_CLIENT_USERNAME = *Amanda::Configc::CNF_CLIENT_USERNAME; 135*CNF_CLIENT_PORT = *Amanda::Configc::CNF_CLIENT_PORT; 136*CNF_GNUTAR_LIST_DIR = *Amanda::Configc::CNF_GNUTAR_LIST_DIR; 137*CNF_AMANDATES = *Amanda::Configc::CNF_AMANDATES; 138*CNF_MAILER = *Amanda::Configc::CNF_MAILER; 139*CNF_MAILTO = *Amanda::Configc::CNF_MAILTO; 140*CNF_DUMPUSER = *Amanda::Configc::CNF_DUMPUSER; 141*CNF_TAPEDEV = *Amanda::Configc::CNF_TAPEDEV; 142*CNF_DEVICE_PROPERTY = *Amanda::Configc::CNF_DEVICE_PROPERTY; 143*CNF_PROPERTY = *Amanda::Configc::CNF_PROPERTY; 144*CNF_CHANGERDEV = *Amanda::Configc::CNF_CHANGERDEV; 145*CNF_CHANGERFILE = *Amanda::Configc::CNF_CHANGERFILE; 146*CNF_LABELSTR = *Amanda::Configc::CNF_LABELSTR; 147*CNF_AUTOLABEL = *Amanda::Configc::CNF_AUTOLABEL; 148*CNF_META_AUTOLABEL = *Amanda::Configc::CNF_META_AUTOLABEL; 149*CNF_TAPELIST = *Amanda::Configc::CNF_TAPELIST; 150*CNF_DISKFILE = *Amanda::Configc::CNF_DISKFILE; 151*CNF_INFOFILE = *Amanda::Configc::CNF_INFOFILE; 152*CNF_LOGDIR = *Amanda::Configc::CNF_LOGDIR; 153*CNF_INDEXDIR = *Amanda::Configc::CNF_INDEXDIR; 154*CNF_TAPETYPE = *Amanda::Configc::CNF_TAPETYPE; 155*CNF_DUMPCYCLE = *Amanda::Configc::CNF_DUMPCYCLE; 156*CNF_RUNSPERCYCLE = *Amanda::Configc::CNF_RUNSPERCYCLE; 157*CNF_TAPECYCLE = *Amanda::Configc::CNF_TAPECYCLE; 158*CNF_NETUSAGE = *Amanda::Configc::CNF_NETUSAGE; 159*CNF_INPARALLEL = *Amanda::Configc::CNF_INPARALLEL; 160*CNF_DUMPORDER = *Amanda::Configc::CNF_DUMPORDER; 161*CNF_BUMPPERCENT = *Amanda::Configc::CNF_BUMPPERCENT; 162*CNF_BUMPSIZE = *Amanda::Configc::CNF_BUMPSIZE; 163*CNF_BUMPMULT = *Amanda::Configc::CNF_BUMPMULT; 164*CNF_BUMPDAYS = *Amanda::Configc::CNF_BUMPDAYS; 165*CNF_TPCHANGER = *Amanda::Configc::CNF_TPCHANGER; 166*CNF_RUNTAPES = *Amanda::Configc::CNF_RUNTAPES; 167*CNF_MAX_DLE_BY_VOLUME = *Amanda::Configc::CNF_MAX_DLE_BY_VOLUME; 168*CNF_MAXDUMPS = *Amanda::Configc::CNF_MAXDUMPS; 169*CNF_ETIMEOUT = *Amanda::Configc::CNF_ETIMEOUT; 170*CNF_DTIMEOUT = *Amanda::Configc::CNF_DTIMEOUT; 171*CNF_CTIMEOUT = *Amanda::Configc::CNF_CTIMEOUT; 172*CNF_DEVICE_OUTPUT_BUFFER_SIZE = *Amanda::Configc::CNF_DEVICE_OUTPUT_BUFFER_SIZE; 173*CNF_PRINTER = *Amanda::Configc::CNF_PRINTER; 174*CNF_AUTOFLUSH = *Amanda::Configc::CNF_AUTOFLUSH; 175*CNF_RESERVE = *Amanda::Configc::CNF_RESERVE; 176*CNF_MAXDUMPSIZE = *Amanda::Configc::CNF_MAXDUMPSIZE; 177*CNF_COLUMNSPEC = *Amanda::Configc::CNF_COLUMNSPEC; 178*CNF_AMRECOVER_DO_FSF = *Amanda::Configc::CNF_AMRECOVER_DO_FSF; 179*CNF_AMRECOVER_CHECK_LABEL = *Amanda::Configc::CNF_AMRECOVER_CHECK_LABEL; 180*CNF_AMRECOVER_CHANGER = *Amanda::Configc::CNF_AMRECOVER_CHANGER; 181*CNF_TAPERALGO = *Amanda::Configc::CNF_TAPERALGO; 182*CNF_FLUSH_THRESHOLD_DUMPED = *Amanda::Configc::CNF_FLUSH_THRESHOLD_DUMPED; 183*CNF_FLUSH_THRESHOLD_SCHEDULED = *Amanda::Configc::CNF_FLUSH_THRESHOLD_SCHEDULED; 184*CNF_TAPERFLUSH = *Amanda::Configc::CNF_TAPERFLUSH; 185*CNF_DISPLAYUNIT = *Amanda::Configc::CNF_DISPLAYUNIT; 186*CNF_KRB5KEYTAB = *Amanda::Configc::CNF_KRB5KEYTAB; 187*CNF_KRB5PRINCIPAL = *Amanda::Configc::CNF_KRB5PRINCIPAL; 188*CNF_LABEL_NEW_TAPES = *Amanda::Configc::CNF_LABEL_NEW_TAPES; 189*CNF_USETIMESTAMPS = *Amanda::Configc::CNF_USETIMESTAMPS; 190*CNF_REP_TRIES = *Amanda::Configc::CNF_REP_TRIES; 191*CNF_CONNECT_TRIES = *Amanda::Configc::CNF_CONNECT_TRIES; 192*CNF_REQ_TRIES = *Amanda::Configc::CNF_REQ_TRIES; 193*CNF_DEBUG_AMANDAD = *Amanda::Configc::CNF_DEBUG_AMANDAD; 194*CNF_DEBUG_RECOVERY = *Amanda::Configc::CNF_DEBUG_RECOVERY; 195*CNF_DEBUG_AMIDXTAPED = *Amanda::Configc::CNF_DEBUG_AMIDXTAPED; 196*CNF_DEBUG_AMINDEXD = *Amanda::Configc::CNF_DEBUG_AMINDEXD; 197*CNF_DEBUG_AMRECOVER = *Amanda::Configc::CNF_DEBUG_AMRECOVER; 198*CNF_DEBUG_AUTH = *Amanda::Configc::CNF_DEBUG_AUTH; 199*CNF_DEBUG_EVENT = *Amanda::Configc::CNF_DEBUG_EVENT; 200*CNF_DEBUG_HOLDING = *Amanda::Configc::CNF_DEBUG_HOLDING; 201*CNF_DEBUG_PROTOCOL = *Amanda::Configc::CNF_DEBUG_PROTOCOL; 202*CNF_DEBUG_PLANNER = *Amanda::Configc::CNF_DEBUG_PLANNER; 203*CNF_DEBUG_DRIVER = *Amanda::Configc::CNF_DEBUG_DRIVER; 204*CNF_DEBUG_DUMPER = *Amanda::Configc::CNF_DEBUG_DUMPER; 205*CNF_DEBUG_CHUNKER = *Amanda::Configc::CNF_DEBUG_CHUNKER; 206*CNF_DEBUG_TAPER = *Amanda::Configc::CNF_DEBUG_TAPER; 207*CNF_DEBUG_SELFCHECK = *Amanda::Configc::CNF_DEBUG_SELFCHECK; 208*CNF_DEBUG_SENDSIZE = *Amanda::Configc::CNF_DEBUG_SENDSIZE; 209*CNF_DEBUG_SENDBACKUP = *Amanda::Configc::CNF_DEBUG_SENDBACKUP; 210*CNF_RESERVED_UDP_PORT = *Amanda::Configc::CNF_RESERVED_UDP_PORT; 211*CNF_RESERVED_TCP_PORT = *Amanda::Configc::CNF_RESERVED_TCP_PORT; 212*CNF_UNRESERVED_TCP_PORT = *Amanda::Configc::CNF_UNRESERVED_TCP_PORT; 213*CNF_HOLDINGDISK = *Amanda::Configc::CNF_HOLDINGDISK; 214*CNF_SEND_AMREPORT_ON = *Amanda::Configc::CNF_SEND_AMREPORT_ON; 215*CNF_TAPER_PARALLEL_WRITE = *Amanda::Configc::CNF_TAPER_PARALLEL_WRITE; 216*CNF_RECOVERY_LIMIT = *Amanda::Configc::CNF_RECOVERY_LIMIT; 217*CNF_INTERACTIVITY = *Amanda::Configc::CNF_INTERACTIVITY; 218*CNF_TAPERSCAN = *Amanda::Configc::CNF_TAPERSCAN; 219*CNF_EJECT_VOLUME = *Amanda::Configc::CNF_EJECT_VOLUME; 220*CNF_TMPDIR = *Amanda::Configc::CNF_TMPDIR; 221*CNF_REPORT_USE_MEDIA = *Amanda::Configc::CNF_REPORT_USE_MEDIA; 222*CNF_REPORT_NEXT_MEDIA = *Amanda::Configc::CNF_REPORT_NEXT_MEDIA; 223*CNF_REPORT_FORMAT = *Amanda::Configc::CNF_REPORT_FORMAT; 224*TAPETYPE_COMMENT = *Amanda::Configc::TAPETYPE_COMMENT; 225*TAPETYPE_LBL_TEMPL = *Amanda::Configc::TAPETYPE_LBL_TEMPL; 226*TAPETYPE_BLOCKSIZE = *Amanda::Configc::TAPETYPE_BLOCKSIZE; 227*TAPETYPE_READBLOCKSIZE = *Amanda::Configc::TAPETYPE_READBLOCKSIZE; 228*TAPETYPE_LENGTH = *Amanda::Configc::TAPETYPE_LENGTH; 229*TAPETYPE_FILEMARK = *Amanda::Configc::TAPETYPE_FILEMARK; 230*TAPETYPE_SPEED = *Amanda::Configc::TAPETYPE_SPEED; 231*TAPETYPE_PART_SIZE = *Amanda::Configc::TAPETYPE_PART_SIZE; 232*TAPETYPE_PART_CACHE_TYPE = *Amanda::Configc::TAPETYPE_PART_CACHE_TYPE; 233*TAPETYPE_PART_CACHE_DIR = *Amanda::Configc::TAPETYPE_PART_CACHE_DIR; 234*TAPETYPE_PART_CACHE_MAX_SIZE = *Amanda::Configc::TAPETYPE_PART_CACHE_MAX_SIZE; 235*DUMPTYPE_COMMENT = *Amanda::Configc::DUMPTYPE_COMMENT; 236*DUMPTYPE_PROGRAM = *Amanda::Configc::DUMPTYPE_PROGRAM; 237*DUMPTYPE_SRVCOMPPROG = *Amanda::Configc::DUMPTYPE_SRVCOMPPROG; 238*DUMPTYPE_CLNTCOMPPROG = *Amanda::Configc::DUMPTYPE_CLNTCOMPPROG; 239*DUMPTYPE_SRV_ENCRYPT = *Amanda::Configc::DUMPTYPE_SRV_ENCRYPT; 240*DUMPTYPE_CLNT_ENCRYPT = *Amanda::Configc::DUMPTYPE_CLNT_ENCRYPT; 241*DUMPTYPE_AMANDAD_PATH = *Amanda::Configc::DUMPTYPE_AMANDAD_PATH; 242*DUMPTYPE_CLIENT_USERNAME = *Amanda::Configc::DUMPTYPE_CLIENT_USERNAME; 243*DUMPTYPE_CLIENT_PORT = *Amanda::Configc::DUMPTYPE_CLIENT_PORT; 244*DUMPTYPE_SSH_KEYS = *Amanda::Configc::DUMPTYPE_SSH_KEYS; 245*DUMPTYPE_AUTH = *Amanda::Configc::DUMPTYPE_AUTH; 246*DUMPTYPE_EXCLUDE = *Amanda::Configc::DUMPTYPE_EXCLUDE; 247*DUMPTYPE_INCLUDE = *Amanda::Configc::DUMPTYPE_INCLUDE; 248*DUMPTYPE_PRIORITY = *Amanda::Configc::DUMPTYPE_PRIORITY; 249*DUMPTYPE_DUMPCYCLE = *Amanda::Configc::DUMPTYPE_DUMPCYCLE; 250*DUMPTYPE_MAXDUMPS = *Amanda::Configc::DUMPTYPE_MAXDUMPS; 251*DUMPTYPE_MAXPROMOTEDAY = *Amanda::Configc::DUMPTYPE_MAXPROMOTEDAY; 252*DUMPTYPE_BUMPPERCENT = *Amanda::Configc::DUMPTYPE_BUMPPERCENT; 253*DUMPTYPE_BUMPSIZE = *Amanda::Configc::DUMPTYPE_BUMPSIZE; 254*DUMPTYPE_BUMPDAYS = *Amanda::Configc::DUMPTYPE_BUMPDAYS; 255*DUMPTYPE_BUMPMULT = *Amanda::Configc::DUMPTYPE_BUMPMULT; 256*DUMPTYPE_STARTTIME = *Amanda::Configc::DUMPTYPE_STARTTIME; 257*DUMPTYPE_STRATEGY = *Amanda::Configc::DUMPTYPE_STRATEGY; 258*DUMPTYPE_ESTIMATELIST = *Amanda::Configc::DUMPTYPE_ESTIMATELIST; 259*DUMPTYPE_COMPRESS = *Amanda::Configc::DUMPTYPE_COMPRESS; 260*DUMPTYPE_ENCRYPT = *Amanda::Configc::DUMPTYPE_ENCRYPT; 261*DUMPTYPE_SRV_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_SRV_DECRYPT_OPT; 262*DUMPTYPE_CLNT_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_CLNT_DECRYPT_OPT; 263*DUMPTYPE_COMPRATE = *Amanda::Configc::DUMPTYPE_COMPRATE; 264*DUMPTYPE_TAPE_SPLITSIZE = *Amanda::Configc::DUMPTYPE_TAPE_SPLITSIZE; 265*DUMPTYPE_FALLBACK_SPLITSIZE = *Amanda::Configc::DUMPTYPE_FALLBACK_SPLITSIZE; 266*DUMPTYPE_SPLIT_DISKBUFFER = *Amanda::Configc::DUMPTYPE_SPLIT_DISKBUFFER; 267*DUMPTYPE_RECORD = *Amanda::Configc::DUMPTYPE_RECORD; 268*DUMPTYPE_SKIP_INCR = *Amanda::Configc::DUMPTYPE_SKIP_INCR; 269*DUMPTYPE_SKIP_FULL = *Amanda::Configc::DUMPTYPE_SKIP_FULL; 270*DUMPTYPE_HOLDINGDISK = *Amanda::Configc::DUMPTYPE_HOLDINGDISK; 271*DUMPTYPE_KENCRYPT = *Amanda::Configc::DUMPTYPE_KENCRYPT; 272*DUMPTYPE_IGNORE = *Amanda::Configc::DUMPTYPE_IGNORE; 273*DUMPTYPE_INDEX = *Amanda::Configc::DUMPTYPE_INDEX; 274*DUMPTYPE_APPLICATION = *Amanda::Configc::DUMPTYPE_APPLICATION; 275*DUMPTYPE_SCRIPTLIST = *Amanda::Configc::DUMPTYPE_SCRIPTLIST; 276*DUMPTYPE_PROPERTY = *Amanda::Configc::DUMPTYPE_PROPERTY; 277*DUMPTYPE_DATA_PATH = *Amanda::Configc::DUMPTYPE_DATA_PATH; 278*DUMPTYPE_ALLOW_SPLIT = *Amanda::Configc::DUMPTYPE_ALLOW_SPLIT; 279*DUMPTYPE_MAX_WARNINGS = *Amanda::Configc::DUMPTYPE_MAX_WARNINGS; 280*DUMPTYPE_RECOVERY_LIMIT = *Amanda::Configc::DUMPTYPE_RECOVERY_LIMIT; 281*DUMPTYPE_DUMP_LIMIT = *Amanda::Configc::DUMPTYPE_DUMP_LIMIT; 282*INTER_COMMENT = *Amanda::Configc::INTER_COMMENT; 283*INTER_MAXUSAGE = *Amanda::Configc::INTER_MAXUSAGE; 284*HOLDING_COMMENT = *Amanda::Configc::HOLDING_COMMENT; 285*HOLDING_DISKDIR = *Amanda::Configc::HOLDING_DISKDIR; 286*HOLDING_DISKSIZE = *Amanda::Configc::HOLDING_DISKSIZE; 287*HOLDING_CHUNKSIZE = *Amanda::Configc::HOLDING_CHUNKSIZE; 288*APPLICATION_COMMENT = *Amanda::Configc::APPLICATION_COMMENT; 289*APPLICATION_PLUGIN = *Amanda::Configc::APPLICATION_PLUGIN; 290*APPLICATION_PROPERTY = *Amanda::Configc::APPLICATION_PROPERTY; 291*APPLICATION_CLIENT_NAME = *Amanda::Configc::APPLICATION_CLIENT_NAME; 292*PP_SCRIPT_COMMENT = *Amanda::Configc::PP_SCRIPT_COMMENT; 293*PP_SCRIPT_PLUGIN = *Amanda::Configc::PP_SCRIPT_PLUGIN; 294*PP_SCRIPT_PROPERTY = *Amanda::Configc::PP_SCRIPT_PROPERTY; 295*PP_SCRIPT_EXECUTE_ON = *Amanda::Configc::PP_SCRIPT_EXECUTE_ON; 296*PP_SCRIPT_EXECUTE_WHERE = *Amanda::Configc::PP_SCRIPT_EXECUTE_WHERE; 297*PP_SCRIPT_ORDER = *Amanda::Configc::PP_SCRIPT_ORDER; 298*PP_SCRIPT_SINGLE_EXECUTION = *Amanda::Configc::PP_SCRIPT_SINGLE_EXECUTION; 299*PP_SCRIPT_CLIENT_NAME = *Amanda::Configc::PP_SCRIPT_CLIENT_NAME; 300*DEVICE_CONFIG_COMMENT = *Amanda::Configc::DEVICE_CONFIG_COMMENT; 301*DEVICE_CONFIG_TAPEDEV = *Amanda::Configc::DEVICE_CONFIG_TAPEDEV; 302*DEVICE_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::DEVICE_CONFIG_DEVICE_PROPERTY; 303*CHANGER_CONFIG_COMMENT = *Amanda::Configc::CHANGER_CONFIG_COMMENT; 304*CHANGER_CONFIG_TAPEDEV = *Amanda::Configc::CHANGER_CONFIG_TAPEDEV; 305*CHANGER_CONFIG_TPCHANGER = *Amanda::Configc::CHANGER_CONFIG_TPCHANGER; 306*CHANGER_CONFIG_CHANGERDEV = *Amanda::Configc::CHANGER_CONFIG_CHANGERDEV; 307*CHANGER_CONFIG_CHANGERFILE = *Amanda::Configc::CHANGER_CONFIG_CHANGERFILE; 308*CHANGER_CONFIG_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_PROPERTY; 309*CHANGER_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_DEVICE_PROPERTY; 310*INTERACTIVITY_COMMENT = *Amanda::Configc::INTERACTIVITY_COMMENT; 311*INTERACTIVITY_PLUGIN = *Amanda::Configc::INTERACTIVITY_PLUGIN; 312*INTERACTIVITY_PROPERTY = *Amanda::Configc::INTERACTIVITY_PROPERTY; 313*TAPERSCAN_COMMENT = *Amanda::Configc::TAPERSCAN_COMMENT; 314*TAPERSCAN_PLUGIN = *Amanda::Configc::TAPERSCAN_PLUGIN; 315*TAPERSCAN_PROPERTY = *Amanda::Configc::TAPERSCAN_PROPERTY; 316*HOLD_NEVER = *Amanda::Configc::HOLD_NEVER; 317*HOLD_AUTO = *Amanda::Configc::HOLD_AUTO; 318*HOLD_REQUIRED = *Amanda::Configc::HOLD_REQUIRED; 319*COMP_NONE = *Amanda::Configc::COMP_NONE; 320*COMP_FAST = *Amanda::Configc::COMP_FAST; 321*COMP_BEST = *Amanda::Configc::COMP_BEST; 322*COMP_CUST = *Amanda::Configc::COMP_CUST; 323*COMP_SERVER_FAST = *Amanda::Configc::COMP_SERVER_FAST; 324*COMP_SERVER_BEST = *Amanda::Configc::COMP_SERVER_BEST; 325*COMP_SERVER_CUST = *Amanda::Configc::COMP_SERVER_CUST; 326*ENCRYPT_NONE = *Amanda::Configc::ENCRYPT_NONE; 327*ENCRYPT_CUST = *Amanda::Configc::ENCRYPT_CUST; 328*ENCRYPT_SERV_CUST = *Amanda::Configc::ENCRYPT_SERV_CUST; 329*DS_SKIP = *Amanda::Configc::DS_SKIP; 330*DS_STANDARD = *Amanda::Configc::DS_STANDARD; 331*DS_NOFULL = *Amanda::Configc::DS_NOFULL; 332*DS_NOINC = *Amanda::Configc::DS_NOINC; 333*DS_4 = *Amanda::Configc::DS_4; 334*DS_5 = *Amanda::Configc::DS_5; 335*DS_HANOI = *Amanda::Configc::DS_HANOI; 336*DS_INCRONLY = *Amanda::Configc::DS_INCRONLY; 337*ES_CLIENT = *Amanda::Configc::ES_CLIENT; 338*ES_SERVER = *Amanda::Configc::ES_SERVER; 339*ES_CALCSIZE = *Amanda::Configc::ES_CALCSIZE; 340*AL_OTHER_CONFIG = *Amanda::Configc::AL_OTHER_CONFIG; 341*AL_NON_AMANDA = *Amanda::Configc::AL_NON_AMANDA; 342*AL_VOLUME_ERROR = *Amanda::Configc::AL_VOLUME_ERROR; 343*AL_EMPTY = *Amanda::Configc::AL_EMPTY; 344*ALGO_FIRST = *Amanda::Configc::ALGO_FIRST; 345*ALGO_FIRSTFIT = *Amanda::Configc::ALGO_FIRSTFIT; 346*ALGO_LARGEST = *Amanda::Configc::ALGO_LARGEST; 347*ALGO_LARGESTFIT = *Amanda::Configc::ALGO_LARGESTFIT; 348*ALGO_SMALLEST = *Amanda::Configc::ALGO_SMALLEST; 349*ALGO_LAST = *Amanda::Configc::ALGO_LAST; 350*EXECUTE_ON_PRE_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_AMCHECK; 351*EXECUTE_ON_PRE_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_DLE_AMCHECK; 352*EXECUTE_ON_PRE_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_HOST_AMCHECK; 353*EXECUTE_ON_POST_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_AMCHECK; 354*EXECUTE_ON_POST_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_DLE_AMCHECK; 355*EXECUTE_ON_POST_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_HOST_AMCHECK; 356*EXECUTE_ON_PRE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_ESTIMATE; 357*EXECUTE_ON_PRE_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_DLE_ESTIMATE; 358*EXECUTE_ON_PRE_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_HOST_ESTIMATE; 359*EXECUTE_ON_POST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_ESTIMATE; 360*EXECUTE_ON_POST_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_DLE_ESTIMATE; 361*EXECUTE_ON_POST_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_HOST_ESTIMATE; 362*EXECUTE_ON_PRE_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_BACKUP; 363*EXECUTE_ON_PRE_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_DLE_BACKUP; 364*EXECUTE_ON_PRE_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_HOST_BACKUP; 365*EXECUTE_ON_POST_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_BACKUP; 366*EXECUTE_ON_POST_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_DLE_BACKUP; 367*EXECUTE_ON_POST_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_HOST_BACKUP; 368*SEND_AMREPORT_ALL = *Amanda::Configc::SEND_AMREPORT_ALL; 369*SEND_AMREPORT_STRANGE = *Amanda::Configc::SEND_AMREPORT_STRANGE; 370*SEND_AMREPORT_ERROR = *Amanda::Configc::SEND_AMREPORT_ERROR; 371*SEND_AMREPORT_NEVER = *Amanda::Configc::SEND_AMREPORT_NEVER; 372*DATA_PATH_AMANDA = *Amanda::Configc::DATA_PATH_AMANDA; 373*DATA_PATH_DIRECTTCP = *Amanda::Configc::DATA_PATH_DIRECTTCP; 374*PART_CACHE_TYPE_NONE = *Amanda::Configc::PART_CACHE_TYPE_NONE; 375*PART_CACHE_TYPE_DISK = *Amanda::Configc::PART_CACHE_TYPE_DISK; 376*PART_CACHE_TYPE_MEMORY = *Amanda::Configc::PART_CACHE_TYPE_MEMORY; 377*debug_amandad = *Amanda::Configc::debug_amandad; 378*debug_recovery = *Amanda::Configc::debug_recovery; 379*debug_amidxtaped = *Amanda::Configc::debug_amidxtaped; 380*debug_amindexd = *Amanda::Configc::debug_amindexd; 381*debug_amrecover = *Amanda::Configc::debug_amrecover; 382*debug_auth = *Amanda::Configc::debug_auth; 383*debug_event = *Amanda::Configc::debug_event; 384*debug_holding = *Amanda::Configc::debug_holding; 385*debug_protocol = *Amanda::Configc::debug_protocol; 386*debug_planner = *Amanda::Configc::debug_planner; 387*debug_driver = *Amanda::Configc::debug_driver; 388*debug_dumper = *Amanda::Configc::debug_dumper; 389*debug_chunker = *Amanda::Configc::debug_chunker; 390*debug_taper = *Amanda::Configc::debug_taper; 391*debug_selfcheck = *Amanda::Configc::debug_selfcheck; 392*debug_sendsize = *Amanda::Configc::debug_sendsize; 393*debug_sendbackup = *Amanda::Configc::debug_sendbackup; 394*CFGERR_OK = *Amanda::Configc::CFGERR_OK; 395*CFGERR_WARNINGS = *Amanda::Configc::CFGERR_WARNINGS; 396*CFGERR_ERRORS = *Amanda::Configc::CFGERR_ERRORS; 397*CONFIG_INIT_EXPLICIT_NAME = *Amanda::Configc::CONFIG_INIT_EXPLICIT_NAME; 398*CONFIG_INIT_USE_CWD = *Amanda::Configc::CONFIG_INIT_USE_CWD; 399*CONFIG_INIT_CLIENT = *Amanda::Configc::CONFIG_INIT_CLIENT; 400*CONFIG_INIT_OVERLAY = *Amanda::Configc::CONFIG_INIT_OVERLAY; 401 402@EXPORT_OK = (); 403%EXPORT_TAGS = (); 404 405 406=head1 NAME 407 408Amanda::Config - access to Amanda configuration parameters 409 410=head1 SYNOPSIS 411 412 use Amanda::Config qw( :init :getconf ); 413 414 my $config_name = shift @ARGV; 415 config_init($CONFIG_INIT_EXPLICIT_NAME, $config_name); 416 apply_config_overrides($config_overrides); 417 my ($cfgerr_level, @cfgerr_errors) = config_errors(); 418 if ($cfgerr_level >= $CFGERR_WARNINGS) { 419 config_print_errors(); 420 if ($cfgerr_level >= $CFGERR_ERRORS) { 421 die("errors processing config file"); 422 } 423 } 424 425 print "tape device is ", getconf($CNF_TAPEDEV), "\n"; 426 427This API closely parallels the C API. 428 429=head1 INITIALIZATION 430 431The Amanda configuration is treated as a global state for the 432application. It is not possible to load two configurations 433simultaneously. 434 435All initialization-related symbols can be imported with the tag 436C<:init>. 437 438=head2 LOADING CONFIGURATION 439 440The Amanda configuration is loaded with the aptly named 441C<config_init($flags, $name)>. Because of the great variety in 442invocation method among Amanda applications, this function has a number 443of flags that affect its behavior. These flags can be OR'd together. 444 445=over 446 447=item If C<CONFIG_INIT_EXPLICIT_NAME> is given, then the C<$name> parameter can 448contain the name of a configuration to load. Note that if the parameter is 449C<".">, this is equivalent to C<CONFIG_INIT_USE_CWD>. 450 451=item If C<CONFIG_INIT_USE_CWD> is given, and if the current directory 452contains C<amanda.conf>, then that file is loaded. 453 454=item If C<CONFIG_INIT_CLIENT> is given, then a client configuration 455is loaded. 456 457=item If C<CONFIG_INIT_OVERLAY> is given, then any existing 458configuration is not reset. 459 460=back 461 462See C<conffile.h> for more detailed information on these flags and 463their interactions. 464 465C<config_uninit()> reverses the effects of C<config_init>. It is 466not often used. 467 468Once the configuration is loaded, the configuration name 469(e.g., "DailySet1"), directory (C</etc/amanda/DailySet1>), 470and filename (C</etc/amanda/DailySet1/amanda.conf>) are 471available from C<get_config_name()>, C<get_config_dir()>, and 472C<get_config_filename()>, respectively. 473 474=head3 CONFIG ERRORS 475 476This module collects configuration errors and warnings in a list, and also 477tracks the overall error level with an enumeration: C<$CFGERR_OK>, 478C<$CFGERR_WARNINGS>, and C<$CFGERR_ERRORS>. C<config_init> and 479C<apply_config_overrides> both return the current level. The level and the 480list of error messages are available from C<config_errors>: 481 482 my ($cfgerr_level, @errors) = Amanda::Config::config_errors(); 483 484As a convenience, C<config_print_errors> will print all error messages to 485stderr. The error state can be cleared with C<config_clear_errors>. 486 487=head2 CONFIG OVERWRITES 488 489Most Amanda applications accept the command-line option C<-o> 490to "overwrite" configuration values in C<amanda.conf>. In Perl 491applications, these options should be parsed with L<Getopt::Long|Getopt::Long>, with 492the action being a call to C<add_config_override_opt>. For example: 493 494 my $config_overrides = new_config_overrides($#ARGV+1); 495 GetOptions( 496 # ... 497 'o=s' => sub { add_config_override_opt($config_overrides, $_[1]); }, 498 ) or usage(); 499 my $cfg_ok = config_init($CONFIG_INIT_EXPLICIT_NAME | $CONFIG_INIT_USE_CWD, $config_name); 500 apply_config_overrides($config_overrides); 501 502C<new_config_overrides($size_estimate)> creates a new 503overwrites object, using the given size as an estimate of 504the number of items it will contain (C<$#ARGC/2> is a good 505estimate). Individual configuration options are then added via 506C<add_config_override($co, $key, $value)> (which takes a key/value 507pair) or C<add_config_override_opt($co, $optarg)>, which parses a 508string following C<-o> on the command line. 509 510Once the overwrites are gathered, they are applied with 511C<apply_config_overrides($co)>, which applies the overwrites to the 512active configuration. No further operations can be performed on the 513overwrites object after C<apply_config_overrides> has been called. 514 515The utility function C<get_config_options()> returns a list of 516command-line arguments to represent any overwrites that were used 517to generate the current configuration. (TODO: this function isn't 518available yet) 519 520=head1 PARAMETER ACCESS 521 522Amanda configurations consist of "global" parameters and several 523sets of "subsections" -- one set for dumptypes, one for tapetypes, 524and so on. 525 526All of the global parameters are represented by a constant beginning with 527C<$CNF_>, e.g., C<$CNF_LABELSTR>. The function C<getconf($cnf)> returns the 528value of parameter C<$cnf>, in whatever format is appropriate for the parameter 529(see DATA FORMATS, below). C<getconf_seen($cnf)> returns a true value if 530C<$cnf> was seen in the configuration file. If it was not seen, then it will 531have its default value. C<getconf_linenum($cnf)> returns the line number in 532the configuration file where it is set, 0 if it is not in a configuration file, 533or -2 if it is set in a command line argument. 534 535Some parameters have enumerated types. The values for those 536enumerations are available from this module with the same name as 537in C<conffile.h>. For example, C<$CNF_TAPERALGO> will yield a value 538from the enumeration C<taperalgo_t>, the constants for which all 539begin with C<$ALGO_>. See C<conffile.h> for the details. 540 541Each subsection type C<TYP> has the following functions: 542 543=over 544 545=item C<lookup_TYP($subsec_name)> 546 547which returns an opaque object 548(C<$ss>) representing the subsection, or C<undef> if no subsection 549with that name exists; 550 551=item C<TYP_name($ss)> 552 553returning the name of the subsection; 554 555=item C<TYP_getconf($ss, $cnf)> 556 557which fetches a parameter value from C<$ss>; and 558 559=item C<TYP_seen($ss, $cnf)> 560 561which returns a true value if <$cnf> was seen in the subsection. 562 563=back 564 565The subsections are: 566 567=over 568 569=item C<tapetype> 570 571with constants beginning with C<$TAPETYPE_> 572 573=item C<dumptype> 574 575with constants beginning with C<$DUMPTYPE_> 576 577=item C<interface> 578 579with constants beginning with C<$INTER_> 580 581=item C<holdingdisk> 582 583with constants beginning with C<$HOLDING_> 584 585=item C<application> 586 587with constants beginning with C<$APPLICATION_> 588 589=item C<script> 590 591with constants beginning with C<$PP_SCRIPT_> 592 593=item C<device> 594 595with constants beginning with C<$DEVICE_CONFIG_>. 596 597=item C<changer> 598 599with constants beginning with C<$CHANGER_CONFIG_>. 600 601=back 602 603See C<conffile.h> for the names of the constants themselves. 604 605=head2 DATA FORMATS 606 607Each configuration parameter has a "conftype", as assigned in 608C<common-src/conffile.c>. The translation of most of these types into Perl 609values is straightforward: 610 611 CONFTYPE_INT Math::BigInt 612 CONFTYPE_INT64 Math::BigInt 613 CONFTYPE_REAL floating-point value 614 CONFTYPE_STR string 615 CONFTYPE_IDENT string 616 CONFTYPE_TIME Math::BigInt (epoch value) 617 CONFTYPE_SIZE Math::BigInt 618 CONFTYPE_BOOLEAN Math::BigInt 619 CONFTYPE_COMPRESS Math::BigInt 620 CONFTYPE_ENCRYPT Math::BigInt 621 CONFTYPE_HOLDING Math::BigInt 622 CONFTYPE_ESTIMATELIST [ Math::BigInt, .. ] 623 CONFTYPE_STRATEGY Math::BigInt 624 CONFTYPE_TAPERALGO Math::BigInt 625 CONFTYPE_PRIORITY Math::BigInt 626 CONFTYPE_RATE float, float 627 CONFTYPE_INTRANGE Math::BigInt, Math::BigInt 628 CONFTYPE_APPLICATION string 629 CONFTYPE_EXECUTE_ON string 630 CONFTYPE_EXECUTE_WHERE Math::BigInt 631 CONFTYPE_SEND_AMREPORT_ON Math::BigInt 632 CONFTYPE_IDENTLIST [ string, .. ] 633 CONFTYPE_PART_CACHE_TYPE Math::BigInt 634 CONFTYPE_RECOVERY_LIMIT [ string, .. ] (undef if not specified; 635 undef in the list means same-host) 636 637Note that C<CONFTYPE_INTRANGE> and C<CONFTYPE_RATE> each return two values, not 638an array reference. 639 640Include and exclude lists with type C<CONFTYPE_EXINCLUDE> return a hash giving 641all listed filenames (in the C<list> key), include/exclude files (C<files>), 642and a boolean indicating that the list is optional (C<optional>): 643 644 { list => [ str, .. ], file => [ str, .. ], optional => Math::BigInt } 645 646Properties are represented as a hash of hashes. The keys are the property 647names, converted to ASCII lowercase. Each property has a C<values> array 648giving all values specified for this property, as well as booleans C<priority> 649and C<append> that are true if the corresponding keyword was supplied. 650 651 { prop1 => { values => [ str, .. ] priority => int, append => int }, 652 prop2 => { .. } .. } 653 654Note that integer types of all sizes become C<Math::BigInt> objects rather than 655Perl integers, as is the habit throughout Amanda. 656 657The C<CNF_AUTOLABEL> value is a hash with the following keys 658 659 template label template, or undef 660 other_config boolean 661 non_amanda boolean 662 volume_error boolean 663 empty boolean 664 665=head2 OTHER ACCESS 666 667Parameter values are available by name from C<getconf_byname($name)> and 668C<getconf_byname_strs($name, $str_needs_quotes)>. These functions implement 669the C<TYP:NAME:PARAM> syntax advertised by C<amgetconf> to access values in 670subsections. The first function returns a Perl value (see DATA FORMATS, 671above), while the second returns a list of strings suitable for use in 672C<amanda.conf>, including quotes around strings if C<$str_needs_quotes> is 673true. 674 675C<getconf_list($typ)> returns a list of the names of all subsections of the 676given type. C<%subsection_names> is a hash whose keys are allowed subsection 677names. 678 679=head2 DERIVED VALUES 680 681The C<$CNF_DISPLAYUNIT> implies a certain divisor to convert from 682kilobytes to the desired unit. This divisor is available from 683C<getconf_unit_divisor()>. Note carefully that it is a I<divisor> 684for a value in I<kilobytes>! 685 686Finally, various subsections of Amanda enable verbose debugging via 687configuration parameters. The status of each parameter is available 688a similarly-named variable, e.g., C<$debug_auth>. 689 690All parameter access functions and constants can be imported with 691the tag C<:getconf>. 692 693=head1 MISCELLANEOUS 694 695These functions defy categorization. 696 697The function C<config_dir_relative> will interpret a path relative to 698the current configuration directory. Absolute paths are passed through 699unchanged, while relative paths are converted to absolute paths. 700 701C<dump_configuration()> dumps the current configuration, in a format 702suitable for re-evaluation for this module, to standard output. 703This function may be revised to return a string. 704 705Several parts of Amanda need to convert unit modifier value like 706"gbytes" to a multiplier. The function C<find_multiplier($str)> 707returns the unit multiplier for such a string. For example, "mbytes" 708is converted to 1048576 (1024*1024). 709 710C<string_to_boolean()> takes a string and returns 0 if it matches any of 711Amanda's names for false, or 1 if matches a name for true. If it can't be 712interpreted, C<undef> is returned. 713 714C<amandaify_property_name()> converts a string into Amanda's property style: 715all lower-case and with "-" replacing "_". 716 717=head1 CONSTANTS 718 719This section lists all of the configuration parameter constants defined in this 720module. All of these constants are available with the C<:getconf> export tag. 721 722=cut 723 724 725push @EXPORT_OK, qw(confparm_key_to_string); 726push @{$EXPORT_TAGS{"confparm_key"}}, qw(confparm_key_to_string); 727 728my %_confparm_key_VALUES; 729#Convert an enum value to a single string 730sub confparm_key_to_string { 731 my ($enumval) = @_; 732 733 for my $k (keys %_confparm_key_VALUES) { 734 my $v = $_confparm_key_VALUES{$k}; 735 736 #is this a matching flag? 737 if ($enumval == $v) { 738 return $k; 739 } 740 } 741 742#default, just return the number 743 return $enumval; 744} 745 746push @EXPORT_OK, qw( $CNF_ORG $CNF_CONF $CNF_AMDUMP_SERVER $CNF_INDEX_SERVER $CNF_TAPE_SERVER $CNF_AUTH $CNF_SSH_KEYS $CNF_AMANDAD_PATH $CNF_CLIENT_USERNAME $CNF_CLIENT_PORT $CNF_GNUTAR_LIST_DIR $CNF_AMANDATES $CNF_MAILER $CNF_MAILTO $CNF_DUMPUSER $CNF_TAPEDEV $CNF_DEVICE_PROPERTY $CNF_PROPERTY $CNF_CHANGERDEV $CNF_CHANGERFILE $CNF_LABELSTR $CNF_AUTOLABEL $CNF_META_AUTOLABEL $CNF_TAPELIST $CNF_DISKFILE $CNF_INFOFILE $CNF_LOGDIR $CNF_INDEXDIR $CNF_TAPETYPE $CNF_DUMPCYCLE $CNF_RUNSPERCYCLE $CNF_TAPECYCLE $CNF_NETUSAGE $CNF_INPARALLEL $CNF_DUMPORDER $CNF_BUMPPERCENT $CNF_BUMPSIZE $CNF_BUMPMULT $CNF_BUMPDAYS $CNF_TPCHANGER $CNF_RUNTAPES $CNF_MAX_DLE_BY_VOLUME $CNF_MAXDUMPS $CNF_ETIMEOUT $CNF_DTIMEOUT $CNF_CTIMEOUT $CNF_DEVICE_OUTPUT_BUFFER_SIZE $CNF_PRINTER $CNF_AUTOFLUSH $CNF_RESERVE $CNF_MAXDUMPSIZE $CNF_COLUMNSPEC $CNF_AMRECOVER_DO_FSF $CNF_AMRECOVER_CHECK_LABEL $CNF_AMRECOVER_CHANGER $CNF_TAPERALGO $CNF_FLUSH_THRESHOLD_DUMPED $CNF_FLUSH_THRESHOLD_SCHEDULED $CNF_TAPERFLUSH $CNF_DISPLAYUNIT $CNF_KRB5KEYTAB $CNF_KRB5PRINCIPAL $CNF_LABEL_NEW_TAPES $CNF_USETIMESTAMPS $CNF_REP_TRIES $CNF_CONNECT_TRIES $CNF_REQ_TRIES $CNF_DEBUG_AMANDAD $CNF_DEBUG_RECOVERY $CNF_DEBUG_AMIDXTAPED $CNF_DEBUG_AMINDEXD $CNF_DEBUG_AMRECOVER $CNF_DEBUG_AUTH $CNF_DEBUG_EVENT $CNF_DEBUG_HOLDING $CNF_DEBUG_PROTOCOL $CNF_DEBUG_PLANNER $CNF_DEBUG_DRIVER $CNF_DEBUG_DUMPER $CNF_DEBUG_CHUNKER $CNF_DEBUG_TAPER $CNF_DEBUG_SELFCHECK $CNF_DEBUG_SENDSIZE $CNF_DEBUG_SENDBACKUP $CNF_RESERVED_UDP_PORT $CNF_RESERVED_TCP_PORT $CNF_UNRESERVED_TCP_PORT $CNF_HOLDINGDISK $CNF_SEND_AMREPORT_ON $CNF_TAPER_PARALLEL_WRITE $CNF_RECOVERY_LIMIT $CNF_INTERACTIVITY $CNF_TAPERSCAN $CNF_EJECT_VOLUME $CNF_TMPDIR $CNF_REPORT_USE_MEDIA $CNF_REPORT_NEXT_MEDIA $CNF_REPORT_FORMAT); 747push @{$EXPORT_TAGS{"confparm_key"}}, qw( $CNF_ORG $CNF_CONF $CNF_AMDUMP_SERVER $CNF_INDEX_SERVER $CNF_TAPE_SERVER $CNF_AUTH $CNF_SSH_KEYS $CNF_AMANDAD_PATH $CNF_CLIENT_USERNAME $CNF_CLIENT_PORT $CNF_GNUTAR_LIST_DIR $CNF_AMANDATES $CNF_MAILER $CNF_MAILTO $CNF_DUMPUSER $CNF_TAPEDEV $CNF_DEVICE_PROPERTY $CNF_PROPERTY $CNF_CHANGERDEV $CNF_CHANGERFILE $CNF_LABELSTR $CNF_AUTOLABEL $CNF_META_AUTOLABEL $CNF_TAPELIST $CNF_DISKFILE $CNF_INFOFILE $CNF_LOGDIR $CNF_INDEXDIR $CNF_TAPETYPE $CNF_DUMPCYCLE $CNF_RUNSPERCYCLE $CNF_TAPECYCLE $CNF_NETUSAGE $CNF_INPARALLEL $CNF_DUMPORDER $CNF_BUMPPERCENT $CNF_BUMPSIZE $CNF_BUMPMULT $CNF_BUMPDAYS $CNF_TPCHANGER $CNF_RUNTAPES $CNF_MAX_DLE_BY_VOLUME $CNF_MAXDUMPS $CNF_ETIMEOUT $CNF_DTIMEOUT $CNF_CTIMEOUT $CNF_DEVICE_OUTPUT_BUFFER_SIZE $CNF_PRINTER $CNF_AUTOFLUSH $CNF_RESERVE $CNF_MAXDUMPSIZE $CNF_COLUMNSPEC $CNF_AMRECOVER_DO_FSF $CNF_AMRECOVER_CHECK_LABEL $CNF_AMRECOVER_CHANGER $CNF_TAPERALGO $CNF_FLUSH_THRESHOLD_DUMPED $CNF_FLUSH_THRESHOLD_SCHEDULED $CNF_TAPERFLUSH $CNF_DISPLAYUNIT $CNF_KRB5KEYTAB $CNF_KRB5PRINCIPAL $CNF_LABEL_NEW_TAPES $CNF_USETIMESTAMPS $CNF_REP_TRIES $CNF_CONNECT_TRIES $CNF_REQ_TRIES $CNF_DEBUG_AMANDAD $CNF_DEBUG_RECOVERY $CNF_DEBUG_AMIDXTAPED $CNF_DEBUG_AMINDEXD $CNF_DEBUG_AMRECOVER $CNF_DEBUG_AUTH $CNF_DEBUG_EVENT $CNF_DEBUG_HOLDING $CNF_DEBUG_PROTOCOL $CNF_DEBUG_PLANNER $CNF_DEBUG_DRIVER $CNF_DEBUG_DUMPER $CNF_DEBUG_CHUNKER $CNF_DEBUG_TAPER $CNF_DEBUG_SELFCHECK $CNF_DEBUG_SENDSIZE $CNF_DEBUG_SENDBACKUP $CNF_RESERVED_UDP_PORT $CNF_RESERVED_TCP_PORT $CNF_UNRESERVED_TCP_PORT $CNF_HOLDINGDISK $CNF_SEND_AMREPORT_ON $CNF_TAPER_PARALLEL_WRITE $CNF_RECOVERY_LIMIT $CNF_INTERACTIVITY $CNF_TAPERSCAN $CNF_EJECT_VOLUME $CNF_TMPDIR $CNF_REPORT_USE_MEDIA $CNF_REPORT_NEXT_MEDIA $CNF_REPORT_FORMAT); 748 foreach (qw( CNF_ORG CNF_CONF CNF_AMDUMP_SERVER CNF_INDEX_SERVER CNF_TAPE_SERVER CNF_AUTH CNF_SSH_KEYS CNF_AMANDAD_PATH CNF_CLIENT_USERNAME CNF_CLIENT_PORT CNF_GNUTAR_LIST_DIR CNF_AMANDATES CNF_MAILER CNF_MAILTO CNF_DUMPUSER CNF_TAPEDEV CNF_DEVICE_PROPERTY CNF_PROPERTY CNF_CHANGERDEV CNF_CHANGERFILE CNF_LABELSTR CNF_AUTOLABEL CNF_META_AUTOLABEL CNF_TAPELIST CNF_DISKFILE CNF_INFOFILE CNF_LOGDIR CNF_INDEXDIR CNF_TAPETYPE CNF_DUMPCYCLE CNF_RUNSPERCYCLE CNF_TAPECYCLE CNF_NETUSAGE CNF_INPARALLEL CNF_DUMPORDER CNF_BUMPPERCENT CNF_BUMPSIZE CNF_BUMPMULT CNF_BUMPDAYS CNF_TPCHANGER CNF_RUNTAPES CNF_MAX_DLE_BY_VOLUME CNF_MAXDUMPS CNF_ETIMEOUT CNF_DTIMEOUT CNF_CTIMEOUT CNF_DEVICE_OUTPUT_BUFFER_SIZE CNF_PRINTER CNF_AUTOFLUSH CNF_RESERVE CNF_MAXDUMPSIZE CNF_COLUMNSPEC CNF_AMRECOVER_DO_FSF CNF_AMRECOVER_CHECK_LABEL CNF_AMRECOVER_CHANGER CNF_TAPERALGO CNF_FLUSH_THRESHOLD_DUMPED CNF_FLUSH_THRESHOLD_SCHEDULED CNF_TAPERFLUSH CNF_DISPLAYUNIT CNF_KRB5KEYTAB CNF_KRB5PRINCIPAL CNF_LABEL_NEW_TAPES CNF_USETIMESTAMPS CNF_REP_TRIES CNF_CONNECT_TRIES CNF_REQ_TRIES CNF_DEBUG_AMANDAD CNF_DEBUG_RECOVERY CNF_DEBUG_AMIDXTAPED CNF_DEBUG_AMINDEXD CNF_DEBUG_AMRECOVER CNF_DEBUG_AUTH CNF_DEBUG_EVENT CNF_DEBUG_HOLDING CNF_DEBUG_PROTOCOL CNF_DEBUG_PLANNER CNF_DEBUG_DRIVER CNF_DEBUG_DUMPER CNF_DEBUG_CHUNKER CNF_DEBUG_TAPER CNF_DEBUG_SELFCHECK CNF_DEBUG_SENDSIZE CNF_DEBUG_SENDBACKUP CNF_RESERVED_UDP_PORT CNF_RESERVED_TCP_PORT CNF_UNRESERVED_TCP_PORT CNF_HOLDINGDISK CNF_SEND_AMREPORT_ON CNF_TAPER_PARALLEL_WRITE CNF_RECOVERY_LIMIT CNF_INTERACTIVITY CNF_TAPERSCAN CNF_EJECT_VOLUME CNF_TMPDIR CNF_REPORT_USE_MEDIA CNF_REPORT_NEXT_MEDIA CNF_REPORT_FORMAT)) { $_confparm_key_VALUES{$_} = $$_; } 749#copy symbols in confparm_key to getconf 750push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"confparm_key"}}; 751 752 753use Amanda::Config::FoldingHash; 754 755=pod 756 757Global Parameters: C<$CNF_ORG> C<$CNF_CONF> C<$CNF_AMDUMP_SERVER> C<$CNF_INDEX_SERVER> C<$CNF_TAPE_SERVER> C<$CNF_AUTH> C<$CNF_SSH_KEYS> C<$CNF_AMANDAD_PATH> C<$CNF_CLIENT_USERNAME> C<$CNF_CLIENT_PORT> C<$CNF_GNUTAR_LIST_DIR> C<$CNF_AMANDATES> C<$CNF_MAILER> C<$CNF_MAILTO> C<$CNF_DUMPUSER> C<$CNF_TAPEDEV> C<$CNF_DEVICE_PROPERTY> C<$CNF_PROPERTY> C<$CNF_CHANGERDEV> C<$CNF_CHANGERFILE> C<$CNF_LABELSTR> C<$CNF_AUTOLABEL> C<$CNF_META_AUTOLABEL> C<$CNF_TAPELIST> C<$CNF_DISKFILE> C<$CNF_INFOFILE> C<$CNF_LOGDIR> C<$CNF_INDEXDIR> C<$CNF_TAPETYPE> C<$CNF_DUMPCYCLE> C<$CNF_RUNSPERCYCLE> C<$CNF_TAPECYCLE> C<$CNF_NETUSAGE> C<$CNF_INPARALLEL> C<$CNF_DUMPORDER> C<$CNF_BUMPPERCENT> C<$CNF_BUMPSIZE> C<$CNF_BUMPMULT> C<$CNF_BUMPDAYS> C<$CNF_TPCHANGER> C<$CNF_RUNTAPES> C<$CNF_MAX_DLE_BY_VOLUME> C<$CNF_MAXDUMPS> C<$CNF_ETIMEOUT> C<$CNF_DTIMEOUT> C<$CNF_CTIMEOUT> C<$CNF_DEVICE_OUTPUT_BUFFER_SIZE> C<$CNF_PRINTER> C<$CNF_AUTOFLUSH> C<$CNF_RESERVE> C<$CNF_MAXDUMPSIZE> C<$CNF_COLUMNSPEC> C<$CNF_AMRECOVER_DO_FSF> C<$CNF_AMRECOVER_CHECK_LABEL> C<$CNF_AMRECOVER_CHANGER> C<$CNF_TAPERALGO> C<$CNF_FLUSH_THRESHOLD_DUMPED> C<$CNF_FLUSH_THRESHOLD_SCHEDULED> C<$CNF_TAPERFLUSH> C<$CNF_DISPLAYUNIT> C<$CNF_KRB5KEYTAB> C<$CNF_KRB5PRINCIPAL> C<$CNF_LABEL_NEW_TAPES> C<$CNF_USETIMESTAMPS> C<$CNF_REP_TRIES> C<$CNF_CONNECT_TRIES> C<$CNF_REQ_TRIES> C<$CNF_DEBUG_AMANDAD> C<$CNF_DEBUG_RECOVERY> C<$CNF_DEBUG_AMIDXTAPED> C<$CNF_DEBUG_AMINDEXD> C<$CNF_DEBUG_AMRECOVER> C<$CNF_DEBUG_AUTH> C<$CNF_DEBUG_EVENT> C<$CNF_DEBUG_HOLDING> C<$CNF_DEBUG_PROTOCOL> C<$CNF_DEBUG_PLANNER> C<$CNF_DEBUG_DRIVER> C<$CNF_DEBUG_DUMPER> C<$CNF_DEBUG_CHUNKER> C<$CNF_DEBUG_TAPER> C<$CNF_DEBUG_SELFCHECK> C<$CNF_DEBUG_SENDSIZE> C<$CNF_DEBUG_SENDBACKUP> C<$CNF_RESERVED_UDP_PORT> C<$CNF_RESERVED_TCP_PORT> C<$CNF_UNRESERVED_TCP_PORT> C<$CNF_HOLDINGDISK> C<$CNF_SEND_AMREPORT_ON> C<$CNF_TAPER_PARALLEL_WRITE> C<$CNF_RECOVERY_LIMIT> C<$CNF_INTERACTIVITY> C<$CNF_TAPERSCAN> C<$CNF_EJECT_VOLUME> C<$CNF_TMPDIR> C<$CNF_REPORT_USE_MEDIA> C<$CNF_REPORT_NEXT_MEDIA> C<$CNF_REPORT_FORMAT> 758 759=cut 760 761push @EXPORT_OK, qw(tapetype_key_to_string); 762push @{$EXPORT_TAGS{"tapetype_key"}}, qw(tapetype_key_to_string); 763 764my %_tapetype_key_VALUES; 765#Convert an enum value to a single string 766sub tapetype_key_to_string { 767 my ($enumval) = @_; 768 769 for my $k (keys %_tapetype_key_VALUES) { 770 my $v = $_tapetype_key_VALUES{$k}; 771 772 #is this a matching flag? 773 if ($enumval == $v) { 774 return $k; 775 } 776 } 777 778#default, just return the number 779 return $enumval; 780} 781 782push @EXPORT_OK, qw( $TAPETYPE_COMMENT $TAPETYPE_LBL_TEMPL $TAPETYPE_BLOCKSIZE $TAPETYPE_READBLOCKSIZE $TAPETYPE_LENGTH $TAPETYPE_FILEMARK $TAPETYPE_SPEED $TAPETYPE_PART_SIZE $TAPETYPE_PART_CACHE_TYPE $TAPETYPE_PART_CACHE_DIR $TAPETYPE_PART_CACHE_MAX_SIZE); 783push @{$EXPORT_TAGS{"tapetype_key"}}, qw( $TAPETYPE_COMMENT $TAPETYPE_LBL_TEMPL $TAPETYPE_BLOCKSIZE $TAPETYPE_READBLOCKSIZE $TAPETYPE_LENGTH $TAPETYPE_FILEMARK $TAPETYPE_SPEED $TAPETYPE_PART_SIZE $TAPETYPE_PART_CACHE_TYPE $TAPETYPE_PART_CACHE_DIR $TAPETYPE_PART_CACHE_MAX_SIZE); 784 foreach (qw( TAPETYPE_COMMENT TAPETYPE_LBL_TEMPL TAPETYPE_BLOCKSIZE TAPETYPE_READBLOCKSIZE TAPETYPE_LENGTH TAPETYPE_FILEMARK TAPETYPE_SPEED TAPETYPE_PART_SIZE TAPETYPE_PART_CACHE_TYPE TAPETYPE_PART_CACHE_DIR TAPETYPE_PART_CACHE_MAX_SIZE)) { $_tapetype_key_VALUES{$_} = $$_; } 785#copy symbols in tapetype_key to getconf 786push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"tapetype_key"}}; 787 788 789use Amanda::Config::FoldingHash; 790 791=pod 792 793Tapetype Parameters: C<$TAPETYPE_COMMENT> C<$TAPETYPE_LBL_TEMPL> C<$TAPETYPE_BLOCKSIZE> C<$TAPETYPE_READBLOCKSIZE> C<$TAPETYPE_LENGTH> C<$TAPETYPE_FILEMARK> C<$TAPETYPE_SPEED> C<$TAPETYPE_PART_SIZE> C<$TAPETYPE_PART_CACHE_TYPE> C<$TAPETYPE_PART_CACHE_DIR> C<$TAPETYPE_PART_CACHE_MAX_SIZE> 794 795=cut 796 797push @EXPORT_OK, qw(dumptype_key_to_string); 798push @{$EXPORT_TAGS{"dumptype_key"}}, qw(dumptype_key_to_string); 799 800my %_dumptype_key_VALUES; 801#Convert an enum value to a single string 802sub dumptype_key_to_string { 803 my ($enumval) = @_; 804 805 for my $k (keys %_dumptype_key_VALUES) { 806 my $v = $_dumptype_key_VALUES{$k}; 807 808 #is this a matching flag? 809 if ($enumval == $v) { 810 return $k; 811 } 812 } 813 814#default, just return the number 815 return $enumval; 816} 817 818push @EXPORT_OK, qw( $DUMPTYPE_COMMENT $DUMPTYPE_PROGRAM $DUMPTYPE_SRVCOMPPROG $DUMPTYPE_CLNTCOMPPROG $DUMPTYPE_SRV_ENCRYPT $DUMPTYPE_CLNT_ENCRYPT $DUMPTYPE_AMANDAD_PATH $DUMPTYPE_CLIENT_USERNAME $DUMPTYPE_CLIENT_PORT $DUMPTYPE_SSH_KEYS $DUMPTYPE_AUTH $DUMPTYPE_EXCLUDE $DUMPTYPE_INCLUDE $DUMPTYPE_PRIORITY $DUMPTYPE_DUMPCYCLE $DUMPTYPE_MAXDUMPS $DUMPTYPE_MAXPROMOTEDAY $DUMPTYPE_BUMPPERCENT $DUMPTYPE_BUMPSIZE $DUMPTYPE_BUMPDAYS $DUMPTYPE_BUMPMULT $DUMPTYPE_STARTTIME $DUMPTYPE_STRATEGY $DUMPTYPE_ESTIMATELIST $DUMPTYPE_COMPRESS $DUMPTYPE_ENCRYPT $DUMPTYPE_SRV_DECRYPT_OPT $DUMPTYPE_CLNT_DECRYPT_OPT $DUMPTYPE_COMPRATE $DUMPTYPE_TAPE_SPLITSIZE $DUMPTYPE_FALLBACK_SPLITSIZE $DUMPTYPE_SPLIT_DISKBUFFER $DUMPTYPE_RECORD $DUMPTYPE_SKIP_INCR $DUMPTYPE_SKIP_FULL $DUMPTYPE_HOLDINGDISK $DUMPTYPE_KENCRYPT $DUMPTYPE_IGNORE $DUMPTYPE_INDEX $DUMPTYPE_APPLICATION $DUMPTYPE_SCRIPTLIST $DUMPTYPE_PROPERTY $DUMPTYPE_DATA_PATH $DUMPTYPE_ALLOW_SPLIT $DUMPTYPE_MAX_WARNINGS $DUMPTYPE_RECOVERY_LIMIT $DUMPTYPE_DUMP_LIMIT); 819push @{$EXPORT_TAGS{"dumptype_key"}}, qw( $DUMPTYPE_COMMENT $DUMPTYPE_PROGRAM $DUMPTYPE_SRVCOMPPROG $DUMPTYPE_CLNTCOMPPROG $DUMPTYPE_SRV_ENCRYPT $DUMPTYPE_CLNT_ENCRYPT $DUMPTYPE_AMANDAD_PATH $DUMPTYPE_CLIENT_USERNAME $DUMPTYPE_CLIENT_PORT $DUMPTYPE_SSH_KEYS $DUMPTYPE_AUTH $DUMPTYPE_EXCLUDE $DUMPTYPE_INCLUDE $DUMPTYPE_PRIORITY $DUMPTYPE_DUMPCYCLE $DUMPTYPE_MAXDUMPS $DUMPTYPE_MAXPROMOTEDAY $DUMPTYPE_BUMPPERCENT $DUMPTYPE_BUMPSIZE $DUMPTYPE_BUMPDAYS $DUMPTYPE_BUMPMULT $DUMPTYPE_STARTTIME $DUMPTYPE_STRATEGY $DUMPTYPE_ESTIMATELIST $DUMPTYPE_COMPRESS $DUMPTYPE_ENCRYPT $DUMPTYPE_SRV_DECRYPT_OPT $DUMPTYPE_CLNT_DECRYPT_OPT $DUMPTYPE_COMPRATE $DUMPTYPE_TAPE_SPLITSIZE $DUMPTYPE_FALLBACK_SPLITSIZE $DUMPTYPE_SPLIT_DISKBUFFER $DUMPTYPE_RECORD $DUMPTYPE_SKIP_INCR $DUMPTYPE_SKIP_FULL $DUMPTYPE_HOLDINGDISK $DUMPTYPE_KENCRYPT $DUMPTYPE_IGNORE $DUMPTYPE_INDEX $DUMPTYPE_APPLICATION $DUMPTYPE_SCRIPTLIST $DUMPTYPE_PROPERTY $DUMPTYPE_DATA_PATH $DUMPTYPE_ALLOW_SPLIT $DUMPTYPE_MAX_WARNINGS $DUMPTYPE_RECOVERY_LIMIT $DUMPTYPE_DUMP_LIMIT); 820 foreach (qw( DUMPTYPE_COMMENT DUMPTYPE_PROGRAM DUMPTYPE_SRVCOMPPROG DUMPTYPE_CLNTCOMPPROG DUMPTYPE_SRV_ENCRYPT DUMPTYPE_CLNT_ENCRYPT DUMPTYPE_AMANDAD_PATH DUMPTYPE_CLIENT_USERNAME DUMPTYPE_CLIENT_PORT DUMPTYPE_SSH_KEYS DUMPTYPE_AUTH DUMPTYPE_EXCLUDE DUMPTYPE_INCLUDE DUMPTYPE_PRIORITY DUMPTYPE_DUMPCYCLE DUMPTYPE_MAXDUMPS DUMPTYPE_MAXPROMOTEDAY DUMPTYPE_BUMPPERCENT DUMPTYPE_BUMPSIZE DUMPTYPE_BUMPDAYS DUMPTYPE_BUMPMULT DUMPTYPE_STARTTIME DUMPTYPE_STRATEGY DUMPTYPE_ESTIMATELIST DUMPTYPE_COMPRESS DUMPTYPE_ENCRYPT DUMPTYPE_SRV_DECRYPT_OPT DUMPTYPE_CLNT_DECRYPT_OPT DUMPTYPE_COMPRATE DUMPTYPE_TAPE_SPLITSIZE DUMPTYPE_FALLBACK_SPLITSIZE DUMPTYPE_SPLIT_DISKBUFFER DUMPTYPE_RECORD DUMPTYPE_SKIP_INCR DUMPTYPE_SKIP_FULL DUMPTYPE_HOLDINGDISK DUMPTYPE_KENCRYPT DUMPTYPE_IGNORE DUMPTYPE_INDEX DUMPTYPE_APPLICATION DUMPTYPE_SCRIPTLIST DUMPTYPE_PROPERTY DUMPTYPE_DATA_PATH DUMPTYPE_ALLOW_SPLIT DUMPTYPE_MAX_WARNINGS DUMPTYPE_RECOVERY_LIMIT DUMPTYPE_DUMP_LIMIT)) { $_dumptype_key_VALUES{$_} = $$_; } 821#copy symbols in dumptype_key to getconf 822push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"dumptype_key"}}; 823 824 825use Amanda::Config::FoldingHash; 826 827=pod 828 829Dumptype Parameters: C<$DUMPTYPE_COMMENT> C<$DUMPTYPE_PROGRAM> C<$DUMPTYPE_SRVCOMPPROG> C<$DUMPTYPE_CLNTCOMPPROG> C<$DUMPTYPE_SRV_ENCRYPT> C<$DUMPTYPE_CLNT_ENCRYPT> C<$DUMPTYPE_AMANDAD_PATH> C<$DUMPTYPE_CLIENT_USERNAME> C<$DUMPTYPE_CLIENT_PORT> C<$DUMPTYPE_SSH_KEYS> C<$DUMPTYPE_AUTH> C<$DUMPTYPE_EXCLUDE> C<$DUMPTYPE_INCLUDE> C<$DUMPTYPE_PRIORITY> C<$DUMPTYPE_DUMPCYCLE> C<$DUMPTYPE_MAXDUMPS> C<$DUMPTYPE_MAXPROMOTEDAY> C<$DUMPTYPE_BUMPPERCENT> C<$DUMPTYPE_BUMPSIZE> C<$DUMPTYPE_BUMPDAYS> C<$DUMPTYPE_BUMPMULT> C<$DUMPTYPE_STARTTIME> C<$DUMPTYPE_STRATEGY> C<$DUMPTYPE_ESTIMATELIST> C<$DUMPTYPE_COMPRESS> C<$DUMPTYPE_ENCRYPT> C<$DUMPTYPE_SRV_DECRYPT_OPT> C<$DUMPTYPE_CLNT_DECRYPT_OPT> C<$DUMPTYPE_COMPRATE> C<$DUMPTYPE_TAPE_SPLITSIZE> C<$DUMPTYPE_FALLBACK_SPLITSIZE> C<$DUMPTYPE_SPLIT_DISKBUFFER> C<$DUMPTYPE_RECORD> C<$DUMPTYPE_SKIP_INCR> C<$DUMPTYPE_SKIP_FULL> C<$DUMPTYPE_HOLDINGDISK> C<$DUMPTYPE_KENCRYPT> C<$DUMPTYPE_IGNORE> C<$DUMPTYPE_INDEX> C<$DUMPTYPE_APPLICATION> C<$DUMPTYPE_SCRIPTLIST> C<$DUMPTYPE_PROPERTY> C<$DUMPTYPE_DATA_PATH> C<$DUMPTYPE_ALLOW_SPLIT> C<$DUMPTYPE_MAX_WARNINGS> C<$DUMPTYPE_RECOVERY_LIMIT> C<$DUMPTYPE_DUMP_LIMIT> 830 831=cut 832 833push @EXPORT_OK, qw(interface_key_to_string); 834push @{$EXPORT_TAGS{"interface_key"}}, qw(interface_key_to_string); 835 836my %_interface_key_VALUES; 837#Convert an enum value to a single string 838sub interface_key_to_string { 839 my ($enumval) = @_; 840 841 for my $k (keys %_interface_key_VALUES) { 842 my $v = $_interface_key_VALUES{$k}; 843 844 #is this a matching flag? 845 if ($enumval == $v) { 846 return $k; 847 } 848 } 849 850#default, just return the number 851 return $enumval; 852} 853 854push @EXPORT_OK, qw( $INTER_COMMENT $INTER_MAXUSAGE); 855push @{$EXPORT_TAGS{"interface_key"}}, qw( $INTER_COMMENT $INTER_MAXUSAGE); 856 foreach (qw( INTER_COMMENT INTER_MAXUSAGE)) { $_interface_key_VALUES{$_} = $$_; } 857#copy symbols in interface_key to getconf 858push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"interface_key"}}; 859 860 861use Amanda::Config::FoldingHash; 862 863=pod 864 865Dumptype Parameters: C<$INTER_COMMENT> C<$INTER_MAXUSAGE> 866 867=cut 868 869push @EXPORT_OK, qw(holdingdisk_key_to_string); 870push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw(holdingdisk_key_to_string); 871 872my %_holdingdisk_key_VALUES; 873#Convert an enum value to a single string 874sub holdingdisk_key_to_string { 875 my ($enumval) = @_; 876 877 for my $k (keys %_holdingdisk_key_VALUES) { 878 my $v = $_holdingdisk_key_VALUES{$k}; 879 880 #is this a matching flag? 881 if ($enumval == $v) { 882 return $k; 883 } 884 } 885 886#default, just return the number 887 return $enumval; 888} 889 890push @EXPORT_OK, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE); 891push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE); 892 foreach (qw( HOLDING_COMMENT HOLDING_DISKDIR HOLDING_DISKSIZE HOLDING_CHUNKSIZE)) { $_holdingdisk_key_VALUES{$_} = $$_; } 893#copy symbols in holdingdisk_key to getconf 894push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"holdingdisk_key"}}; 895 896 897use Amanda::Config::FoldingHash; 898 899=pod 900 901Holdingdisk Parameters: C<$HOLDING_COMMENT> C<$HOLDING_DISKDIR> C<$HOLDING_DISKSIZE> C<$HOLDING_CHUNKSIZE> 902 903=cut 904 905push @EXPORT_OK, qw(application_key_to_string); 906push @{$EXPORT_TAGS{"application_key"}}, qw(application_key_to_string); 907 908my %_application_key_VALUES; 909#Convert an enum value to a single string 910sub application_key_to_string { 911 my ($enumval) = @_; 912 913 for my $k (keys %_application_key_VALUES) { 914 my $v = $_application_key_VALUES{$k}; 915 916 #is this a matching flag? 917 if ($enumval == $v) { 918 return $k; 919 } 920 } 921 922#default, just return the number 923 return $enumval; 924} 925 926push @EXPORT_OK, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY $APPLICATION_CLIENT_NAME); 927push @{$EXPORT_TAGS{"application_key"}}, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY $APPLICATION_CLIENT_NAME); 928 foreach (qw( APPLICATION_COMMENT APPLICATION_PLUGIN APPLICATION_PROPERTY APPLICATION_CLIENT_NAME)) { $_application_key_VALUES{$_} = $$_; } 929#copy symbols in application_key to getconf 930push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"application_key"}}; 931 932 933use Amanda::Config::FoldingHash; 934 935=pod 936 937Application Parameters: C<$APPLICATION_COMMENT> C<$APPLICATION_PLUGIN> C<$APPLICATION_PROPERTY> C<$APPLICATION_CLIENT_NAME> 938 939=cut 940 941push @EXPORT_OK, qw(pp_script_key_to_string); 942push @{$EXPORT_TAGS{"pp_script_key"}}, qw(pp_script_key_to_string); 943 944my %_pp_script_key_VALUES; 945#Convert an enum value to a single string 946sub pp_script_key_to_string { 947 my ($enumval) = @_; 948 949 for my $k (keys %_pp_script_key_VALUES) { 950 my $v = $_pp_script_key_VALUES{$k}; 951 952 #is this a matching flag? 953 if ($enumval == $v) { 954 return $k; 955 } 956 } 957 958#default, just return the number 959 return $enumval; 960} 961 962push @EXPORT_OK, qw( $PP_SCRIPT_COMMENT $PP_SCRIPT_PLUGIN $PP_SCRIPT_PROPERTY $PP_SCRIPT_EXECUTE_ON $PP_SCRIPT_EXECUTE_WHERE $PP_SCRIPT_ORDER $PP_SCRIPT_SINGLE_EXECUTION $PP_SCRIPT_CLIENT_NAME); 963push @{$EXPORT_TAGS{"pp_script_key"}}, qw( $PP_SCRIPT_COMMENT $PP_SCRIPT_PLUGIN $PP_SCRIPT_PROPERTY $PP_SCRIPT_EXECUTE_ON $PP_SCRIPT_EXECUTE_WHERE $PP_SCRIPT_ORDER $PP_SCRIPT_SINGLE_EXECUTION $PP_SCRIPT_CLIENT_NAME); 964 foreach (qw( PP_SCRIPT_COMMENT PP_SCRIPT_PLUGIN PP_SCRIPT_PROPERTY PP_SCRIPT_EXECUTE_ON PP_SCRIPT_EXECUTE_WHERE PP_SCRIPT_ORDER PP_SCRIPT_SINGLE_EXECUTION PP_SCRIPT_CLIENT_NAME)) { $_pp_script_key_VALUES{$_} = $$_; } 965#copy symbols in pp_script_key to getconf 966push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"pp_script_key"}}; 967 968 969use Amanda::Config::FoldingHash; 970 971=pod 972 973Pre/Post-Script Parameters: C<$PP_SCRIPT_COMMENT> C<$PP_SCRIPT_PLUGIN> C<$PP_SCRIPT_PROPERTY> C<$PP_SCRIPT_EXECUTE_ON> C<$PP_SCRIPT_EXECUTE_WHERE> C<$PP_SCRIPT_ORDER> C<$PP_SCRIPT_SINGLE_EXECUTION> C<$PP_SCRIPT_CLIENT_NAME> 974 975=cut 976 977push @EXPORT_OK, qw(device_config_key_to_string); 978push @{$EXPORT_TAGS{"device_config_key"}}, qw(device_config_key_to_string); 979 980my %_device_config_key_VALUES; 981#Convert an enum value to a single string 982sub device_config_key_to_string { 983 my ($enumval) = @_; 984 985 for my $k (keys %_device_config_key_VALUES) { 986 my $v = $_device_config_key_VALUES{$k}; 987 988 #is this a matching flag? 989 if ($enumval == $v) { 990 return $k; 991 } 992 } 993 994#default, just return the number 995 return $enumval; 996} 997 998push @EXPORT_OK, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY); 999push @{$EXPORT_TAGS{"device_config_key"}}, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY); 1000 foreach (qw( DEVICE_CONFIG_COMMENT DEVICE_CONFIG_TAPEDEV DEVICE_CONFIG_DEVICE_PROPERTY)) { $_device_config_key_VALUES{$_} = $$_; } 1001#copy symbols in device_config_key to getconf 1002push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"device_config_key"}}; 1003 1004 1005use Amanda::Config::FoldingHash; 1006 1007=pod 1008 1009Pre/Post-Script Parameters: C<$DEVICE_CONFIG_COMMENT> C<$DEVICE_CONFIG_TAPEDEV> C<$DEVICE_CONFIG_DEVICE_PROPERTY> 1010 1011=cut 1012 1013push @EXPORT_OK, qw(changer_config_key_to_string); 1014push @{$EXPORT_TAGS{"changer_config_key"}}, qw(changer_config_key_to_string); 1015 1016my %_changer_config_key_VALUES; 1017#Convert an enum value to a single string 1018sub changer_config_key_to_string { 1019 my ($enumval) = @_; 1020 1021 for my $k (keys %_changer_config_key_VALUES) { 1022 my $v = $_changer_config_key_VALUES{$k}; 1023 1024 #is this a matching flag? 1025 if ($enumval == $v) { 1026 return $k; 1027 } 1028 } 1029 1030#default, just return the number 1031 return $enumval; 1032} 1033 1034push @EXPORT_OK, qw( $CHANGER_CONFIG_COMMENT $CHANGER_CONFIG_TAPEDEV $CHANGER_CONFIG_TPCHANGER $CHANGER_CONFIG_CHANGERDEV $CHANGER_CONFIG_CHANGERFILE $CHANGER_CONFIG_PROPERTY $CHANGER_CONFIG_DEVICE_PROPERTY); 1035push @{$EXPORT_TAGS{"changer_config_key"}}, qw( $CHANGER_CONFIG_COMMENT $CHANGER_CONFIG_TAPEDEV $CHANGER_CONFIG_TPCHANGER $CHANGER_CONFIG_CHANGERDEV $CHANGER_CONFIG_CHANGERFILE $CHANGER_CONFIG_PROPERTY $CHANGER_CONFIG_DEVICE_PROPERTY); 1036 foreach (qw( CHANGER_CONFIG_COMMENT CHANGER_CONFIG_TAPEDEV CHANGER_CONFIG_TPCHANGER CHANGER_CONFIG_CHANGERDEV CHANGER_CONFIG_CHANGERFILE CHANGER_CONFIG_PROPERTY CHANGER_CONFIG_DEVICE_PROPERTY)) { $_changer_config_key_VALUES{$_} = $$_; } 1037#copy symbols in changer_config_key to getconf 1038push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"changer_config_key"}}; 1039 1040 1041use Amanda::Config::FoldingHash; 1042 1043=pod 1044 1045Pre/Post-Script Parameters: C<$CHANGER_CONFIG_COMMENT> C<$CHANGER_CONFIG_TAPEDEV> C<$CHANGER_CONFIG_TPCHANGER> C<$CHANGER_CONFIG_CHANGERDEV> C<$CHANGER_CONFIG_CHANGERFILE> C<$CHANGER_CONFIG_PROPERTY> C<$CHANGER_CONFIG_DEVICE_PROPERTY> 1046 1047=cut 1048 1049push @EXPORT_OK, qw(interactivity_key_to_string); 1050push @{$EXPORT_TAGS{"interactivity_key"}}, qw(interactivity_key_to_string); 1051 1052my %_interactivity_key_VALUES; 1053#Convert an enum value to a single string 1054sub interactivity_key_to_string { 1055 my ($enumval) = @_; 1056 1057 for my $k (keys %_interactivity_key_VALUES) { 1058 my $v = $_interactivity_key_VALUES{$k}; 1059 1060 #is this a matching flag? 1061 if ($enumval == $v) { 1062 return $k; 1063 } 1064 } 1065 1066#default, just return the number 1067 return $enumval; 1068} 1069 1070push @EXPORT_OK, qw( $INTERACTIVITY_COMMENT $INTERACTIVITY_PLUGIN $INTERACTIVITY_PROPERTY); 1071push @{$EXPORT_TAGS{"interactivity_key"}}, qw( $INTERACTIVITY_COMMENT $INTERACTIVITY_PLUGIN $INTERACTIVITY_PROPERTY); 1072 foreach (qw( INTERACTIVITY_COMMENT INTERACTIVITY_PLUGIN INTERACTIVITY_PROPERTY)) { $_interactivity_key_VALUES{$_} = $$_; } 1073#copy symbols in interactivity_key to getconf 1074push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"interactivity_key"}}; 1075 1076 1077use Amanda::Config::FoldingHash; 1078 1079=pod 1080 1081Interactivity Parameters: C<$INTERACTIVITY_COMMENT> C<$INTERACTIVITY_PLUGIN> C<$INTERACTIVITY_PROPERTY> 1082 1083=cut 1084 1085push @EXPORT_OK, qw(taperscan_key_to_string); 1086push @{$EXPORT_TAGS{"taperscan_key"}}, qw(taperscan_key_to_string); 1087 1088my %_taperscan_key_VALUES; 1089#Convert an enum value to a single string 1090sub taperscan_key_to_string { 1091 my ($enumval) = @_; 1092 1093 for my $k (keys %_taperscan_key_VALUES) { 1094 my $v = $_taperscan_key_VALUES{$k}; 1095 1096 #is this a matching flag? 1097 if ($enumval == $v) { 1098 return $k; 1099 } 1100 } 1101 1102#default, just return the number 1103 return $enumval; 1104} 1105 1106push @EXPORT_OK, qw( $TAPERSCAN_COMMENT $TAPERSCAN_PLUGIN $TAPERSCAN_PROPERTY); 1107push @{$EXPORT_TAGS{"taperscan_key"}}, qw( $TAPERSCAN_COMMENT $TAPERSCAN_PLUGIN $TAPERSCAN_PROPERTY); 1108 foreach (qw( TAPERSCAN_COMMENT TAPERSCAN_PLUGIN TAPERSCAN_PROPERTY)) { $_taperscan_key_VALUES{$_} = $$_; } 1109#copy symbols in taperscan_key to getconf 1110push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"taperscan_key"}}; 1111 1112 1113use Amanda::Config::FoldingHash; 1114 1115=pod 1116 1117Taperscan Parameters: C<$TAPERSCAN_COMMENT> C<$TAPERSCAN_PLUGIN> C<$TAPERSCAN_PROPERTY> 1118 1119=cut 1120 1121push @EXPORT_OK, qw(dump_holdingdisk_t_to_string); 1122push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw(dump_holdingdisk_t_to_string); 1123 1124my %_dump_holdingdisk_t_VALUES; 1125#Convert an enum value to a single string 1126sub dump_holdingdisk_t_to_string { 1127 my ($enumval) = @_; 1128 1129 for my $k (keys %_dump_holdingdisk_t_VALUES) { 1130 my $v = $_dump_holdingdisk_t_VALUES{$k}; 1131 1132 #is this a matching flag? 1133 if ($enumval == $v) { 1134 return $k; 1135 } 1136 } 1137 1138#default, just return the number 1139 return $enumval; 1140} 1141 1142push @EXPORT_OK, qw($HOLD_NEVER); 1143push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_NEVER); 1144 1145$_dump_holdingdisk_t_VALUES{"HOLD_NEVER"} = $HOLD_NEVER; 1146 1147push @EXPORT_OK, qw($HOLD_AUTO); 1148push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_AUTO); 1149 1150$_dump_holdingdisk_t_VALUES{"HOLD_AUTO"} = $HOLD_AUTO; 1151 1152push @EXPORT_OK, qw($HOLD_REQUIRED); 1153push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_REQUIRED); 1154 1155$_dump_holdingdisk_t_VALUES{"HOLD_REQUIRED"} = $HOLD_REQUIRED; 1156 1157#copy symbols in dump_holdingdisk_t to getconf 1158push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"dump_holdingdisk_t"}}; 1159 1160push @EXPORT_OK, qw(comp_t_to_string); 1161push @{$EXPORT_TAGS{"comp_t"}}, qw(comp_t_to_string); 1162 1163my %_comp_t_VALUES; 1164#Convert an enum value to a single string 1165sub comp_t_to_string { 1166 my ($enumval) = @_; 1167 1168 for my $k (keys %_comp_t_VALUES) { 1169 my $v = $_comp_t_VALUES{$k}; 1170 1171 #is this a matching flag? 1172 if ($enumval == $v) { 1173 return $k; 1174 } 1175 } 1176 1177#default, just return the number 1178 return $enumval; 1179} 1180 1181push @EXPORT_OK, qw($COMP_NONE); 1182push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_NONE); 1183 1184$_comp_t_VALUES{"COMP_NONE"} = $COMP_NONE; 1185 1186push @EXPORT_OK, qw($COMP_FAST); 1187push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_FAST); 1188 1189$_comp_t_VALUES{"COMP_FAST"} = $COMP_FAST; 1190 1191push @EXPORT_OK, qw($COMP_BEST); 1192push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_BEST); 1193 1194$_comp_t_VALUES{"COMP_BEST"} = $COMP_BEST; 1195 1196push @EXPORT_OK, qw($COMP_CUST); 1197push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_CUST); 1198 1199$_comp_t_VALUES{"COMP_CUST"} = $COMP_CUST; 1200 1201push @EXPORT_OK, qw($COMP_SERVER_FAST); 1202push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_FAST); 1203 1204$_comp_t_VALUES{"COMP_SERVER_FAST"} = $COMP_SERVER_FAST; 1205 1206push @EXPORT_OK, qw($COMP_SERVER_BEST); 1207push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_BEST); 1208 1209$_comp_t_VALUES{"COMP_SERVER_BEST"} = $COMP_SERVER_BEST; 1210 1211push @EXPORT_OK, qw($COMP_SERVER_CUST); 1212push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_CUST); 1213 1214$_comp_t_VALUES{"COMP_SERVER_CUST"} = $COMP_SERVER_CUST; 1215 1216#copy symbols in comp_t to getconf 1217push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"comp_t"}}; 1218 1219push @EXPORT_OK, qw(encrypt_t_to_string); 1220push @{$EXPORT_TAGS{"encrypt_t"}}, qw(encrypt_t_to_string); 1221 1222my %_encrypt_t_VALUES; 1223#Convert an enum value to a single string 1224sub encrypt_t_to_string { 1225 my ($enumval) = @_; 1226 1227 for my $k (keys %_encrypt_t_VALUES) { 1228 my $v = $_encrypt_t_VALUES{$k}; 1229 1230 #is this a matching flag? 1231 if ($enumval == $v) { 1232 return $k; 1233 } 1234 } 1235 1236#default, just return the number 1237 return $enumval; 1238} 1239 1240push @EXPORT_OK, qw($ENCRYPT_NONE); 1241push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_NONE); 1242 1243$_encrypt_t_VALUES{"ENCRYPT_NONE"} = $ENCRYPT_NONE; 1244 1245push @EXPORT_OK, qw($ENCRYPT_CUST); 1246push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_CUST); 1247 1248$_encrypt_t_VALUES{"ENCRYPT_CUST"} = $ENCRYPT_CUST; 1249 1250push @EXPORT_OK, qw($ENCRYPT_SERV_CUST); 1251push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_SERV_CUST); 1252 1253$_encrypt_t_VALUES{"ENCRYPT_SERV_CUST"} = $ENCRYPT_SERV_CUST; 1254 1255#copy symbols in encrypt_t to getconf 1256push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"encrypt_t"}}; 1257 1258push @EXPORT_OK, qw(strategy_t_to_string); 1259push @{$EXPORT_TAGS{"strategy_t"}}, qw(strategy_t_to_string); 1260 1261my %_strategy_t_VALUES; 1262#Convert an enum value to a single string 1263sub strategy_t_to_string { 1264 my ($enumval) = @_; 1265 1266 for my $k (keys %_strategy_t_VALUES) { 1267 my $v = $_strategy_t_VALUES{$k}; 1268 1269 #is this a matching flag? 1270 if ($enumval == $v) { 1271 return $k; 1272 } 1273 } 1274 1275#default, just return the number 1276 return $enumval; 1277} 1278 1279push @EXPORT_OK, qw($DS_SKIP); 1280push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_SKIP); 1281 1282$_strategy_t_VALUES{"DS_SKIP"} = $DS_SKIP; 1283 1284push @EXPORT_OK, qw($DS_STANDARD); 1285push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_STANDARD); 1286 1287$_strategy_t_VALUES{"DS_STANDARD"} = $DS_STANDARD; 1288 1289push @EXPORT_OK, qw($DS_NOFULL); 1290push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_NOFULL); 1291 1292$_strategy_t_VALUES{"DS_NOFULL"} = $DS_NOFULL; 1293 1294push @EXPORT_OK, qw($DS_NOINC); 1295push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_NOINC); 1296 1297$_strategy_t_VALUES{"DS_NOINC"} = $DS_NOINC; 1298 1299push @EXPORT_OK, qw($DS_4); 1300push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_4); 1301 1302$_strategy_t_VALUES{"DS_4"} = $DS_4; 1303 1304push @EXPORT_OK, qw($DS_5); 1305push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_5); 1306 1307$_strategy_t_VALUES{"DS_5"} = $DS_5; 1308 1309push @EXPORT_OK, qw($DS_HANOI); 1310push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_HANOI); 1311 1312$_strategy_t_VALUES{"DS_HANOI"} = $DS_HANOI; 1313 1314push @EXPORT_OK, qw($DS_INCRONLY); 1315push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_INCRONLY); 1316 1317$_strategy_t_VALUES{"DS_INCRONLY"} = $DS_INCRONLY; 1318 1319#copy symbols in strategy_t to getconf 1320push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"strategy_t"}}; 1321 1322push @EXPORT_OK, qw(estimate_t_to_string); 1323push @{$EXPORT_TAGS{"estimate_t"}}, qw(estimate_t_to_string); 1324 1325my %_estimate_t_VALUES; 1326#Convert an enum value to a single string 1327sub estimate_t_to_string { 1328 my ($enumval) = @_; 1329 1330 for my $k (keys %_estimate_t_VALUES) { 1331 my $v = $_estimate_t_VALUES{$k}; 1332 1333 #is this a matching flag? 1334 if ($enumval == $v) { 1335 return $k; 1336 } 1337 } 1338 1339#default, just return the number 1340 return $enumval; 1341} 1342 1343push @EXPORT_OK, qw($ES_CLIENT); 1344push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_CLIENT); 1345 1346$_estimate_t_VALUES{"ES_CLIENT"} = $ES_CLIENT; 1347 1348push @EXPORT_OK, qw($ES_SERVER); 1349push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_SERVER); 1350 1351$_estimate_t_VALUES{"ES_SERVER"} = $ES_SERVER; 1352 1353push @EXPORT_OK, qw($ES_CALCSIZE); 1354push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_CALCSIZE); 1355 1356$_estimate_t_VALUES{"ES_CALCSIZE"} = $ES_CALCSIZE; 1357 1358#copy symbols in estimate_t to getconf 1359push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"estimate_t"}}; 1360 1361push @EXPORT_OK, qw(autolabel_enum_t_to_string); 1362push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw(autolabel_enum_t_to_string); 1363 1364my %_autolabel_enum_t_VALUES; 1365#Convert an enum value to a single string 1366sub autolabel_enum_t_to_string { 1367 my ($enumval) = @_; 1368 1369 for my $k (keys %_autolabel_enum_t_VALUES) { 1370 my $v = $_autolabel_enum_t_VALUES{$k}; 1371 1372 #is this a matching flag? 1373 if ($enumval == $v) { 1374 return $k; 1375 } 1376 } 1377 1378#default, just return the number 1379 return $enumval; 1380} 1381 1382push @EXPORT_OK, qw($AL_OTHER_CONFIG); 1383push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_OTHER_CONFIG); 1384 1385$_autolabel_enum_t_VALUES{"AL_OTHER_CONFIG"} = $AL_OTHER_CONFIG; 1386 1387push @EXPORT_OK, qw($AL_NON_AMANDA); 1388push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_NON_AMANDA); 1389 1390$_autolabel_enum_t_VALUES{"AL_NON_AMANDA"} = $AL_NON_AMANDA; 1391 1392push @EXPORT_OK, qw($AL_VOLUME_ERROR); 1393push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_VOLUME_ERROR); 1394 1395$_autolabel_enum_t_VALUES{"AL_VOLUME_ERROR"} = $AL_VOLUME_ERROR; 1396 1397push @EXPORT_OK, qw($AL_EMPTY); 1398push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_EMPTY); 1399 1400$_autolabel_enum_t_VALUES{"AL_EMPTY"} = $AL_EMPTY; 1401 1402#copy symbols in autolabel_enum_t to getconf 1403push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"autolabel_enum_t"}}; 1404 1405push @EXPORT_OK, qw(taperalgo_t_to_string); 1406push @{$EXPORT_TAGS{"taperalgo_t"}}, qw(taperalgo_t_to_string); 1407 1408my %_taperalgo_t_VALUES; 1409#Convert an enum value to a single string 1410sub taperalgo_t_to_string { 1411 my ($enumval) = @_; 1412 1413 for my $k (keys %_taperalgo_t_VALUES) { 1414 my $v = $_taperalgo_t_VALUES{$k}; 1415 1416 #is this a matching flag? 1417 if ($enumval == $v) { 1418 return $k; 1419 } 1420 } 1421 1422#default, just return the number 1423 return $enumval; 1424} 1425 1426push @EXPORT_OK, qw($ALGO_FIRST); 1427push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_FIRST); 1428 1429$_taperalgo_t_VALUES{"ALGO_FIRST"} = $ALGO_FIRST; 1430 1431push @EXPORT_OK, qw($ALGO_FIRSTFIT); 1432push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_FIRSTFIT); 1433 1434$_taperalgo_t_VALUES{"ALGO_FIRSTFIT"} = $ALGO_FIRSTFIT; 1435 1436push @EXPORT_OK, qw($ALGO_LARGEST); 1437push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LARGEST); 1438 1439$_taperalgo_t_VALUES{"ALGO_LARGEST"} = $ALGO_LARGEST; 1440 1441push @EXPORT_OK, qw($ALGO_LARGESTFIT); 1442push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LARGESTFIT); 1443 1444$_taperalgo_t_VALUES{"ALGO_LARGESTFIT"} = $ALGO_LARGESTFIT; 1445 1446push @EXPORT_OK, qw($ALGO_SMALLEST); 1447push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_SMALLEST); 1448 1449$_taperalgo_t_VALUES{"ALGO_SMALLEST"} = $ALGO_SMALLEST; 1450 1451push @EXPORT_OK, qw($ALGO_LAST); 1452push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LAST); 1453 1454$_taperalgo_t_VALUES{"ALGO_LAST"} = $ALGO_LAST; 1455 1456#copy symbols in taperalgo_t to getconf 1457push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"taperalgo_t"}}; 1458 1459push @EXPORT_OK, qw(execute_on_t_to_string); 1460push @{$EXPORT_TAGS{"execute_on_t"}}, qw(execute_on_t_to_string); 1461 1462my %_execute_on_t_VALUES; 1463#Convert an enum value to a single string 1464sub execute_on_t_to_string { 1465 my ($enumval) = @_; 1466 1467 for my $k (keys %_execute_on_t_VALUES) { 1468 my $v = $_execute_on_t_VALUES{$k}; 1469 1470 #is this a matching flag? 1471 if ($enumval == $v) { 1472 return $k; 1473 } 1474 } 1475 1476#default, just return the number 1477 return $enumval; 1478} 1479 1480push @EXPORT_OK, qw($EXECUTE_ON_PRE_AMCHECK); 1481push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_AMCHECK); 1482 1483$_execute_on_t_VALUES{"EXECUTE_ON_PRE_AMCHECK"} = $EXECUTE_ON_PRE_AMCHECK; 1484 1485push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_AMCHECK); 1486push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_AMCHECK); 1487 1488$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_AMCHECK"} = $EXECUTE_ON_PRE_DLE_AMCHECK; 1489 1490push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_AMCHECK); 1491push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_AMCHECK); 1492 1493$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_AMCHECK"} = $EXECUTE_ON_PRE_HOST_AMCHECK; 1494 1495push @EXPORT_OK, qw($EXECUTE_ON_POST_AMCHECK); 1496push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_AMCHECK); 1497 1498$_execute_on_t_VALUES{"EXECUTE_ON_POST_AMCHECK"} = $EXECUTE_ON_POST_AMCHECK; 1499 1500push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_AMCHECK); 1501push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_AMCHECK); 1502 1503$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_AMCHECK"} = $EXECUTE_ON_POST_DLE_AMCHECK; 1504 1505push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_AMCHECK); 1506push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_AMCHECK); 1507 1508$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_AMCHECK"} = $EXECUTE_ON_POST_HOST_AMCHECK; 1509 1510push @EXPORT_OK, qw($EXECUTE_ON_PRE_ESTIMATE); 1511push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_ESTIMATE); 1512 1513$_execute_on_t_VALUES{"EXECUTE_ON_PRE_ESTIMATE"} = $EXECUTE_ON_PRE_ESTIMATE; 1514 1515push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_ESTIMATE); 1516push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_ESTIMATE); 1517 1518$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_ESTIMATE"} = $EXECUTE_ON_PRE_DLE_ESTIMATE; 1519 1520push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_ESTIMATE); 1521push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_ESTIMATE); 1522 1523$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_ESTIMATE"} = $EXECUTE_ON_PRE_HOST_ESTIMATE; 1524 1525push @EXPORT_OK, qw($EXECUTE_ON_POST_ESTIMATE); 1526push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_ESTIMATE); 1527 1528$_execute_on_t_VALUES{"EXECUTE_ON_POST_ESTIMATE"} = $EXECUTE_ON_POST_ESTIMATE; 1529 1530push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_ESTIMATE); 1531push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_ESTIMATE); 1532 1533$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_ESTIMATE"} = $EXECUTE_ON_POST_DLE_ESTIMATE; 1534 1535push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_ESTIMATE); 1536push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_ESTIMATE); 1537 1538$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_ESTIMATE"} = $EXECUTE_ON_POST_HOST_ESTIMATE; 1539 1540push @EXPORT_OK, qw($EXECUTE_ON_PRE_BACKUP); 1541push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_BACKUP); 1542 1543$_execute_on_t_VALUES{"EXECUTE_ON_PRE_BACKUP"} = $EXECUTE_ON_PRE_BACKUP; 1544 1545push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_BACKUP); 1546push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_BACKUP); 1547 1548$_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_BACKUP"} = $EXECUTE_ON_PRE_DLE_BACKUP; 1549 1550push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_BACKUP); 1551push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_BACKUP); 1552 1553$_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_BACKUP"} = $EXECUTE_ON_PRE_HOST_BACKUP; 1554 1555push @EXPORT_OK, qw($EXECUTE_ON_POST_BACKUP); 1556push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_BACKUP); 1557 1558$_execute_on_t_VALUES{"EXECUTE_ON_POST_BACKUP"} = $EXECUTE_ON_POST_BACKUP; 1559 1560push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_BACKUP); 1561push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_BACKUP); 1562 1563$_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_BACKUP"} = $EXECUTE_ON_POST_DLE_BACKUP; 1564 1565push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_BACKUP); 1566push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_BACKUP); 1567 1568$_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_BACKUP"} = $EXECUTE_ON_POST_HOST_BACKUP; 1569 1570#copy symbols in execute_on_t to getconf 1571push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"execute_on_t"}}; 1572 1573push @EXPORT_OK, qw(send_amreport_on_t_to_string); 1574push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw(send_amreport_on_t_to_string); 1575 1576my %_send_amreport_on_t_VALUES; 1577#Convert an enum value to a single string 1578sub send_amreport_on_t_to_string { 1579 my ($enumval) = @_; 1580 1581 for my $k (keys %_send_amreport_on_t_VALUES) { 1582 my $v = $_send_amreport_on_t_VALUES{$k}; 1583 1584 #is this a matching flag? 1585 if ($enumval == $v) { 1586 return $k; 1587 } 1588 } 1589 1590#default, just return the number 1591 return $enumval; 1592} 1593 1594push @EXPORT_OK, qw($SEND_AMREPORT_ALL); 1595push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ALL); 1596 1597$_send_amreport_on_t_VALUES{"SEND_AMREPORT_ALL"} = $SEND_AMREPORT_ALL; 1598 1599push @EXPORT_OK, qw($SEND_AMREPORT_STRANGE); 1600push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_STRANGE); 1601 1602$_send_amreport_on_t_VALUES{"SEND_AMREPORT_STRANGE"} = $SEND_AMREPORT_STRANGE; 1603 1604push @EXPORT_OK, qw($SEND_AMREPORT_ERROR); 1605push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ERROR); 1606 1607$_send_amreport_on_t_VALUES{"SEND_AMREPORT_ERROR"} = $SEND_AMREPORT_ERROR; 1608 1609push @EXPORT_OK, qw($SEND_AMREPORT_NEVER); 1610push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_NEVER); 1611 1612$_send_amreport_on_t_VALUES{"SEND_AMREPORT_NEVER"} = $SEND_AMREPORT_NEVER; 1613 1614#copy symbols in send_amreport_on_t to getconf 1615push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"send_amreport_on_t"}}; 1616 1617push @EXPORT_OK, qw(data_path_t_to_string); 1618push @{$EXPORT_TAGS{"data_path_t"}}, qw(data_path_t_to_string); 1619 1620my %_data_path_t_VALUES; 1621#Convert an enum value to a single string 1622sub data_path_t_to_string { 1623 my ($enumval) = @_; 1624 1625 for my $k (keys %_data_path_t_VALUES) { 1626 my $v = $_data_path_t_VALUES{$k}; 1627 1628 #is this a matching flag? 1629 if ($enumval == $v) { 1630 return $k; 1631 } 1632 } 1633 1634#default, just return the number 1635 return $enumval; 1636} 1637 1638push @EXPORT_OK, qw($DATA_PATH_AMANDA); 1639push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_AMANDA); 1640 1641$_data_path_t_VALUES{"DATA_PATH_AMANDA"} = $DATA_PATH_AMANDA; 1642 1643push @EXPORT_OK, qw($DATA_PATH_DIRECTTCP); 1644push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_DIRECTTCP); 1645 1646$_data_path_t_VALUES{"DATA_PATH_DIRECTTCP"} = $DATA_PATH_DIRECTTCP; 1647 1648#copy symbols in data_path_t to getconf 1649push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"data_path_t"}}; 1650 1651push @EXPORT_OK, qw(part_cache_type_t_to_string); 1652push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw(part_cache_type_t_to_string); 1653 1654my %_part_cache_type_t_VALUES; 1655#Convert an enum value to a single string 1656sub part_cache_type_t_to_string { 1657 my ($enumval) = @_; 1658 1659 for my $k (keys %_part_cache_type_t_VALUES) { 1660 my $v = $_part_cache_type_t_VALUES{$k}; 1661 1662 #is this a matching flag? 1663 if ($enumval == $v) { 1664 return $k; 1665 } 1666 } 1667 1668#default, just return the number 1669 return $enumval; 1670} 1671 1672push @EXPORT_OK, qw($PART_CACHE_TYPE_NONE); 1673push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_NONE); 1674 1675$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_NONE"} = $PART_CACHE_TYPE_NONE; 1676 1677push @EXPORT_OK, qw($PART_CACHE_TYPE_DISK); 1678push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_DISK); 1679 1680$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_DISK"} = $PART_CACHE_TYPE_DISK; 1681 1682push @EXPORT_OK, qw($PART_CACHE_TYPE_MEMORY); 1683push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_MEMORY); 1684 1685$_part_cache_type_t_VALUES{"PART_CACHE_TYPE_MEMORY"} = $PART_CACHE_TYPE_MEMORY; 1686 1687#copy symbols in part_cache_type_t to getconf 1688push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"part_cache_type_t"}}; 1689 1690$LIMIT_SAMEHOST="SAMEHOST-SAMEHOST-SAMEHOST"; 1691$LIMIT_SERVER="SERVER-SERVER-SERVER"; 1692 1693push @EXPORT_OK, qw(getconf getconf_seen getconf_linenum 1694 getconf_byname getconf_byname_strs 1695 getconf_list); 1696push @{$EXPORT_TAGS{"getconf"}}, qw(getconf getconf_seen getconf_linenum 1697 getconf_byname getconf_byname_strs 1698 getconf_list); 1699 1700push @EXPORT_OK, qw(lookup_tapetype tapetype_getconf tapetype_name 1701 tapetype_seen tapetype_seen); 1702push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_tapetype tapetype_getconf tapetype_name 1703 tapetype_seen tapetype_seen); 1704 1705push @EXPORT_OK, qw(lookup_dumptype dumptype_getconf dumptype_name 1706 dumptype_seen dumptype_seen); 1707push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_dumptype dumptype_getconf dumptype_name 1708 dumptype_seen dumptype_seen); 1709 1710push @EXPORT_OK, qw(lookup_interface interface_getconf interface_name 1711 interface_seen interface_seen); 1712push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_interface interface_getconf interface_name 1713 interface_seen interface_seen); 1714 1715push @EXPORT_OK, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name 1716 getconf_holdingdisks 1717 holdingdisk_seen holdingdisk_seen); 1718push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name 1719 getconf_holdingdisks 1720 holdingdisk_seen holdingdisk_seen); 1721 1722push @EXPORT_OK, qw(lookup_application application_getconf application_name 1723 application_seen application_seen); 1724push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_application application_getconf application_name 1725 application_seen application_seen); 1726 1727push @EXPORT_OK, qw(lookup_pp_script pp_script_getconf pp_script_name 1728 pp_script_seen pp_script_seen); 1729push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_pp_script pp_script_getconf pp_script_name 1730 pp_script_seen pp_script_seen); 1731 1732push @EXPORT_OK, qw(lookup_device_config device_config_getconf device_config_name 1733 device_config_seen device_config_seen); 1734push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_device_config device_config_getconf device_config_name 1735 device_config_seen device_config_seen); 1736 1737push @EXPORT_OK, qw(lookup_changer_config changer_config_getconf changer_config_name 1738 changer_config_seen changer_config_seen); 1739push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_changer_config changer_config_getconf changer_config_name 1740 changer_config_seen changer_config_seen); 1741 1742push @EXPORT_OK, qw(lookup_interactivity interactivity_getconf interactivity_name 1743 interactivity_seen interactivity_seen); 1744push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_interactivity interactivity_getconf interactivity_name 1745 interactivity_seen interactivity_seen); 1746 1747push @EXPORT_OK, qw(lookup_taperscan taperscan_getconf taperscan_name 1748 taperscan_seen taperscan_seen); 1749push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_taperscan taperscan_getconf taperscan_name 1750 taperscan_seen taperscan_seen); 1751 1752# only those keys with a value of '1' should be shown; the 1753# others are deprecated 1754our %subsection_names = ( 1755 "tapetype" => 1, 1756 "dumptype" => 1, 1757 "interface" => 1, 1758 "holdingdisk" => 1, 1759 "application" => 1, 1760 "script" => 1, 1761 "application-tool" => 0, 1762 "script-tool" => 0, 1763 "device" => 1, 1764 "changer" => 1, 1765); 1766 1767push @EXPORT_OK, qw(%subsection_names); 1768push @{$EXPORT_TAGS{"getconf"}}, qw(%subsection_names); 1769 1770push @EXPORT_OK, qw(getconf_unit_divisor 1771 1772 $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover 1773 $debug_auth $debug_event $debug_holding $debug_protocol 1774 $debug_planner $debug_driver $debug_dumper $debug_chunker 1775 $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup); 1776push @{$EXPORT_TAGS{"getconf"}}, qw(getconf_unit_divisor 1777 1778 $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover 1779 $debug_auth $debug_event $debug_holding $debug_protocol 1780 $debug_planner $debug_driver $debug_dumper $debug_chunker 1781 $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup); 1782 1783push @EXPORT_OK, qw(cfgerr_level_t_to_string); 1784push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw(cfgerr_level_t_to_string); 1785 1786my %_cfgerr_level_t_VALUES; 1787#Convert an enum value to a single string 1788sub cfgerr_level_t_to_string { 1789 my ($enumval) = @_; 1790 1791 for my $k (keys %_cfgerr_level_t_VALUES) { 1792 my $v = $_cfgerr_level_t_VALUES{$k}; 1793 1794 #is this a matching flag? 1795 if ($enumval == $v) { 1796 return $k; 1797 } 1798 } 1799 1800#default, just return the number 1801 return $enumval; 1802} 1803 1804push @EXPORT_OK, qw($CFGERR_OK); 1805push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_OK); 1806 1807$_cfgerr_level_t_VALUES{"CFGERR_OK"} = $CFGERR_OK; 1808 1809push @EXPORT_OK, qw($CFGERR_WARNINGS); 1810push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_WARNINGS); 1811 1812$_cfgerr_level_t_VALUES{"CFGERR_WARNINGS"} = $CFGERR_WARNINGS; 1813 1814push @EXPORT_OK, qw($CFGERR_ERRORS); 1815push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_ERRORS); 1816 1817$_cfgerr_level_t_VALUES{"CFGERR_ERRORS"} = $CFGERR_ERRORS; 1818 1819#copy symbols in cfgerr_level_t to init 1820push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"cfgerr_level_t"}}; 1821 1822push @EXPORT_OK, qw(config_init_flags_to_strings); 1823push @{$EXPORT_TAGS{"config_init_flags"}}, qw(config_init_flags_to_strings); 1824 1825my %_config_init_flags_VALUES; 1826#Convert a flag value to a list of names for flags that are set. 1827sub config_init_flags_to_strings { 1828 my ($flags) = @_; 1829 my @result = (); 1830 1831 for my $k (keys %_config_init_flags_VALUES) { 1832 my $v = $_config_init_flags_VALUES{$k}; 1833 1834 #is this a matching flag? 1835 if (($v == 0 && $flags == 0) || ($v != 0 && ($flags & $v) == $v)) { 1836 push @result, $k; 1837 } 1838 } 1839 1840#by default, just return the number as a 1-element list 1841 if (!@result) { 1842 return ($flags); 1843 } 1844 1845 return @result; 1846} 1847 1848push @EXPORT_OK, qw($CONFIG_INIT_EXPLICIT_NAME); 1849push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_EXPLICIT_NAME); 1850 1851$_config_init_flags_VALUES{"CONFIG_INIT_EXPLICIT_NAME"} = $CONFIG_INIT_EXPLICIT_NAME; 1852 1853push @EXPORT_OK, qw($CONFIG_INIT_USE_CWD); 1854push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_USE_CWD); 1855 1856$_config_init_flags_VALUES{"CONFIG_INIT_USE_CWD"} = $CONFIG_INIT_USE_CWD; 1857 1858push @EXPORT_OK, qw($CONFIG_INIT_CLIENT); 1859push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_CLIENT); 1860 1861$_config_init_flags_VALUES{"CONFIG_INIT_CLIENT"} = $CONFIG_INIT_CLIENT; 1862 1863push @EXPORT_OK, qw($CONFIG_INIT_OVERLAY); 1864push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_OVERLAY); 1865 1866$_config_init_flags_VALUES{"CONFIG_INIT_OVERLAY"} = $CONFIG_INIT_OVERLAY; 1867 1868#copy symbols in config_init_flags to init 1869push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"config_init_flags"}}; 1870 1871push @EXPORT_OK, qw(config_init config_uninit get_config_options 1872 get_config_name get_config_dir get_config_filename 1873 config_print_errors config_clear_errors config_errors 1874 new_config_overrides free_config_overrides add_config_override 1875 add_config_override_opt set_config_overrides); 1876push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options 1877 get_config_name get_config_dir get_config_filename 1878 config_print_errors config_clear_errors config_errors 1879 new_config_overrides free_config_overrides add_config_override 1880 add_config_override_opt set_config_overrides); 1881 1882push @EXPORT_OK, qw(dump_configuration config_dir_relative taperalgo2str find_multiplier); 1883 1884 1885sub string_to_boolean { 1886 my ($str) = @_; 1887 my $ret = C_string_to_boolean($str); 1888 return undef unless $ret >= 0; 1889 return $ret; 1890} 1891 1892 1893push @EXPORT_OK, qw(string_to_boolean); 1894 1895push @EXPORT_OK, qw(amandaify_property_name); 18961; 1897