1 # This file was automatically generated by SWIG (http://www.swig.org).
4 # Do not make changes to this file unless you know what you are doing--modify
5 # the SWIG interface file instead.
7 package Amanda::Config;
9 use base qw(DynaLoader);
10 package Amanda::Configc;
11 bootstrap Amanda::Config;
12 package Amanda::Config;
15 # ---------- BASE METHODS -------------
17 package Amanda::Config;
20 my ($classname,$obj) = @_;
21 return bless $obj, $classname;
31 my ($self,$field) = @_;
32 my $member_func = "swig_${field}_get";
33 $self->$member_func();
37 my ($self,$field,$newval) = @_;
38 my $member_func = "swig_${field}_set";
39 $self->$member_func($newval);
48 # ------- FUNCTION WRAPPERS --------
50 package Amanda::Config;
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 *getconf_unit_divisor = *Amanda::Configc::getconf_unit_divisor;
93 *config_init = *Amanda::Configc::config_init;
94 *config_uninit = *Amanda::Configc::config_uninit;
95 *get_config_options = *Amanda::Configc::get_config_options;
96 *get_config_name = *Amanda::Configc::get_config_name;
97 *get_config_dir = *Amanda::Configc::get_config_dir;
98 *get_config_filename = *Amanda::Configc::get_config_filename;
99 *config_print_errors = *Amanda::Configc::config_print_errors;
100 *config_clear_errors = *Amanda::Configc::config_clear_errors;
101 *config_errors = *Amanda::Configc::config_errors;
102 *new_config_overrides = *Amanda::Configc::new_config_overrides;
103 *free_config_overrides = *Amanda::Configc::free_config_overrides;
104 *add_config_override = *Amanda::Configc::add_config_override;
105 *add_config_override_opt = *Amanda::Configc::add_config_override_opt;
106 *set_config_overrides = *Amanda::Configc::set_config_overrides;
107 *dump_configuration = *Amanda::Configc::dump_configuration;
108 *config_dir_relative = *Amanda::Configc::config_dir_relative;
109 *taperalgo2str = *Amanda::Configc::taperalgo2str;
110 *find_multiplier = *Amanda::Configc::find_multiplier;
111 *C_string_to_boolean = *Amanda::Configc::C_string_to_boolean;
112 *amandaify_property_name = *Amanda::Configc::amandaify_property_name;
114 # ------- VARIABLE STUBS --------
116 package Amanda::Config;
118 *CNF_ORG = *Amanda::Configc::CNF_ORG;
119 *CNF_CONF = *Amanda::Configc::CNF_CONF;
120 *CNF_INDEX_SERVER = *Amanda::Configc::CNF_INDEX_SERVER;
121 *CNF_TAPE_SERVER = *Amanda::Configc::CNF_TAPE_SERVER;
122 *CNF_AUTH = *Amanda::Configc::CNF_AUTH;
123 *CNF_SSH_KEYS = *Amanda::Configc::CNF_SSH_KEYS;
124 *CNF_AMANDAD_PATH = *Amanda::Configc::CNF_AMANDAD_PATH;
125 *CNF_CLIENT_USERNAME = *Amanda::Configc::CNF_CLIENT_USERNAME;
126 *CNF_CLIENT_PORT = *Amanda::Configc::CNF_CLIENT_PORT;
127 *CNF_GNUTAR_LIST_DIR = *Amanda::Configc::CNF_GNUTAR_LIST_DIR;
128 *CNF_AMANDATES = *Amanda::Configc::CNF_AMANDATES;
129 *CNF_MAILER = *Amanda::Configc::CNF_MAILER;
130 *CNF_MAILTO = *Amanda::Configc::CNF_MAILTO;
131 *CNF_DUMPUSER = *Amanda::Configc::CNF_DUMPUSER;
132 *CNF_TAPEDEV = *Amanda::Configc::CNF_TAPEDEV;
133 *CNF_DEVICE_PROPERTY = *Amanda::Configc::CNF_DEVICE_PROPERTY;
134 *CNF_PROPERTY = *Amanda::Configc::CNF_PROPERTY;
135 *CNF_CHANGERDEV = *Amanda::Configc::CNF_CHANGERDEV;
136 *CNF_CHANGERFILE = *Amanda::Configc::CNF_CHANGERFILE;
137 *CNF_LABELSTR = *Amanda::Configc::CNF_LABELSTR;
138 *CNF_AUTOLABEL = *Amanda::Configc::CNF_AUTOLABEL;
139 *CNF_TAPELIST = *Amanda::Configc::CNF_TAPELIST;
140 *CNF_DISKFILE = *Amanda::Configc::CNF_DISKFILE;
141 *CNF_INFOFILE = *Amanda::Configc::CNF_INFOFILE;
142 *CNF_LOGDIR = *Amanda::Configc::CNF_LOGDIR;
143 *CNF_INDEXDIR = *Amanda::Configc::CNF_INDEXDIR;
144 *CNF_TAPETYPE = *Amanda::Configc::CNF_TAPETYPE;
145 *CNF_DUMPCYCLE = *Amanda::Configc::CNF_DUMPCYCLE;
146 *CNF_RUNSPERCYCLE = *Amanda::Configc::CNF_RUNSPERCYCLE;
147 *CNF_TAPECYCLE = *Amanda::Configc::CNF_TAPECYCLE;
148 *CNF_NETUSAGE = *Amanda::Configc::CNF_NETUSAGE;
149 *CNF_INPARALLEL = *Amanda::Configc::CNF_INPARALLEL;
150 *CNF_DUMPORDER = *Amanda::Configc::CNF_DUMPORDER;
151 *CNF_BUMPPERCENT = *Amanda::Configc::CNF_BUMPPERCENT;
152 *CNF_BUMPSIZE = *Amanda::Configc::CNF_BUMPSIZE;
153 *CNF_BUMPMULT = *Amanda::Configc::CNF_BUMPMULT;
154 *CNF_BUMPDAYS = *Amanda::Configc::CNF_BUMPDAYS;
155 *CNF_TPCHANGER = *Amanda::Configc::CNF_TPCHANGER;
156 *CNF_RUNTAPES = *Amanda::Configc::CNF_RUNTAPES;
157 *CNF_MAXDUMPS = *Amanda::Configc::CNF_MAXDUMPS;
158 *CNF_ETIMEOUT = *Amanda::Configc::CNF_ETIMEOUT;
159 *CNF_DTIMEOUT = *Amanda::Configc::CNF_DTIMEOUT;
160 *CNF_CTIMEOUT = *Amanda::Configc::CNF_CTIMEOUT;
161 *CNF_DEVICE_OUTPUT_BUFFER_SIZE = *Amanda::Configc::CNF_DEVICE_OUTPUT_BUFFER_SIZE;
162 *CNF_PRINTER = *Amanda::Configc::CNF_PRINTER;
163 *CNF_AUTOFLUSH = *Amanda::Configc::CNF_AUTOFLUSH;
164 *CNF_RESERVE = *Amanda::Configc::CNF_RESERVE;
165 *CNF_MAXDUMPSIZE = *Amanda::Configc::CNF_MAXDUMPSIZE;
166 *CNF_COLUMNSPEC = *Amanda::Configc::CNF_COLUMNSPEC;
167 *CNF_AMRECOVER_DO_FSF = *Amanda::Configc::CNF_AMRECOVER_DO_FSF;
168 *CNF_AMRECOVER_CHECK_LABEL = *Amanda::Configc::CNF_AMRECOVER_CHECK_LABEL;
169 *CNF_AMRECOVER_CHANGER = *Amanda::Configc::CNF_AMRECOVER_CHANGER;
170 *CNF_TAPERALGO = *Amanda::Configc::CNF_TAPERALGO;
171 *CNF_FLUSH_THRESHOLD_DUMPED = *Amanda::Configc::CNF_FLUSH_THRESHOLD_DUMPED;
172 *CNF_FLUSH_THRESHOLD_SCHEDULED = *Amanda::Configc::CNF_FLUSH_THRESHOLD_SCHEDULED;
173 *CNF_TAPERFLUSH = *Amanda::Configc::CNF_TAPERFLUSH;
174 *CNF_DISPLAYUNIT = *Amanda::Configc::CNF_DISPLAYUNIT;
175 *CNF_KRB5KEYTAB = *Amanda::Configc::CNF_KRB5KEYTAB;
176 *CNF_KRB5PRINCIPAL = *Amanda::Configc::CNF_KRB5PRINCIPAL;
177 *CNF_LABEL_NEW_TAPES = *Amanda::Configc::CNF_LABEL_NEW_TAPES;
178 *CNF_USETIMESTAMPS = *Amanda::Configc::CNF_USETIMESTAMPS;
179 *CNF_REP_TRIES = *Amanda::Configc::CNF_REP_TRIES;
180 *CNF_CONNECT_TRIES = *Amanda::Configc::CNF_CONNECT_TRIES;
181 *CNF_REQ_TRIES = *Amanda::Configc::CNF_REQ_TRIES;
182 *CNF_DEBUG_AMANDAD = *Amanda::Configc::CNF_DEBUG_AMANDAD;
183 *CNF_DEBUG_RECOVERY = *Amanda::Configc::CNF_DEBUG_RECOVERY;
184 *CNF_DEBUG_AMIDXTAPED = *Amanda::Configc::CNF_DEBUG_AMIDXTAPED;
185 *CNF_DEBUG_AMINDEXD = *Amanda::Configc::CNF_DEBUG_AMINDEXD;
186 *CNF_DEBUG_AMRECOVER = *Amanda::Configc::CNF_DEBUG_AMRECOVER;
187 *CNF_DEBUG_AUTH = *Amanda::Configc::CNF_DEBUG_AUTH;
188 *CNF_DEBUG_EVENT = *Amanda::Configc::CNF_DEBUG_EVENT;
189 *CNF_DEBUG_HOLDING = *Amanda::Configc::CNF_DEBUG_HOLDING;
190 *CNF_DEBUG_PROTOCOL = *Amanda::Configc::CNF_DEBUG_PROTOCOL;
191 *CNF_DEBUG_PLANNER = *Amanda::Configc::CNF_DEBUG_PLANNER;
192 *CNF_DEBUG_DRIVER = *Amanda::Configc::CNF_DEBUG_DRIVER;
193 *CNF_DEBUG_DUMPER = *Amanda::Configc::CNF_DEBUG_DUMPER;
194 *CNF_DEBUG_CHUNKER = *Amanda::Configc::CNF_DEBUG_CHUNKER;
195 *CNF_DEBUG_TAPER = *Amanda::Configc::CNF_DEBUG_TAPER;
196 *CNF_DEBUG_SELFCHECK = *Amanda::Configc::CNF_DEBUG_SELFCHECK;
197 *CNF_DEBUG_SENDSIZE = *Amanda::Configc::CNF_DEBUG_SENDSIZE;
198 *CNF_DEBUG_SENDBACKUP = *Amanda::Configc::CNF_DEBUG_SENDBACKUP;
199 *CNF_RESERVED_UDP_PORT = *Amanda::Configc::CNF_RESERVED_UDP_PORT;
200 *CNF_RESERVED_TCP_PORT = *Amanda::Configc::CNF_RESERVED_TCP_PORT;
201 *CNF_UNRESERVED_TCP_PORT = *Amanda::Configc::CNF_UNRESERVED_TCP_PORT;
202 *CNF_HOLDINGDISK = *Amanda::Configc::CNF_HOLDINGDISK;
203 *CNF_SEND_AMREPORT_ON = *Amanda::Configc::CNF_SEND_AMREPORT_ON;
204 *CNF_TAPER_PARALLEL_WRITE = *Amanda::Configc::CNF_TAPER_PARALLEL_WRITE;
205 *CNF_RECOVERY_LIMIT = *Amanda::Configc::CNF_RECOVERY_LIMIT;
206 *TAPETYPE_COMMENT = *Amanda::Configc::TAPETYPE_COMMENT;
207 *TAPETYPE_LBL_TEMPL = *Amanda::Configc::TAPETYPE_LBL_TEMPL;
208 *TAPETYPE_BLOCKSIZE = *Amanda::Configc::TAPETYPE_BLOCKSIZE;
209 *TAPETYPE_READBLOCKSIZE = *Amanda::Configc::TAPETYPE_READBLOCKSIZE;
210 *TAPETYPE_LENGTH = *Amanda::Configc::TAPETYPE_LENGTH;
211 *TAPETYPE_FILEMARK = *Amanda::Configc::TAPETYPE_FILEMARK;
212 *TAPETYPE_SPEED = *Amanda::Configc::TAPETYPE_SPEED;
213 *TAPETYPE_PART_SIZE = *Amanda::Configc::TAPETYPE_PART_SIZE;
214 *TAPETYPE_PART_CACHE_TYPE = *Amanda::Configc::TAPETYPE_PART_CACHE_TYPE;
215 *TAPETYPE_PART_CACHE_DIR = *Amanda::Configc::TAPETYPE_PART_CACHE_DIR;
216 *TAPETYPE_PART_CACHE_MAX_SIZE = *Amanda::Configc::TAPETYPE_PART_CACHE_MAX_SIZE;
217 *DUMPTYPE_COMMENT = *Amanda::Configc::DUMPTYPE_COMMENT;
218 *DUMPTYPE_PROGRAM = *Amanda::Configc::DUMPTYPE_PROGRAM;
219 *DUMPTYPE_SRVCOMPPROG = *Amanda::Configc::DUMPTYPE_SRVCOMPPROG;
220 *DUMPTYPE_CLNTCOMPPROG = *Amanda::Configc::DUMPTYPE_CLNTCOMPPROG;
221 *DUMPTYPE_SRV_ENCRYPT = *Amanda::Configc::DUMPTYPE_SRV_ENCRYPT;
222 *DUMPTYPE_CLNT_ENCRYPT = *Amanda::Configc::DUMPTYPE_CLNT_ENCRYPT;
223 *DUMPTYPE_AMANDAD_PATH = *Amanda::Configc::DUMPTYPE_AMANDAD_PATH;
224 *DUMPTYPE_CLIENT_USERNAME = *Amanda::Configc::DUMPTYPE_CLIENT_USERNAME;
225 *DUMPTYPE_CLIENT_PORT = *Amanda::Configc::DUMPTYPE_CLIENT_PORT;
226 *DUMPTYPE_SSH_KEYS = *Amanda::Configc::DUMPTYPE_SSH_KEYS;
227 *DUMPTYPE_AUTH = *Amanda::Configc::DUMPTYPE_AUTH;
228 *DUMPTYPE_EXCLUDE = *Amanda::Configc::DUMPTYPE_EXCLUDE;
229 *DUMPTYPE_INCLUDE = *Amanda::Configc::DUMPTYPE_INCLUDE;
230 *DUMPTYPE_PRIORITY = *Amanda::Configc::DUMPTYPE_PRIORITY;
231 *DUMPTYPE_DUMPCYCLE = *Amanda::Configc::DUMPTYPE_DUMPCYCLE;
232 *DUMPTYPE_MAXDUMPS = *Amanda::Configc::DUMPTYPE_MAXDUMPS;
233 *DUMPTYPE_MAXPROMOTEDAY = *Amanda::Configc::DUMPTYPE_MAXPROMOTEDAY;
234 *DUMPTYPE_BUMPPERCENT = *Amanda::Configc::DUMPTYPE_BUMPPERCENT;
235 *DUMPTYPE_BUMPSIZE = *Amanda::Configc::DUMPTYPE_BUMPSIZE;
236 *DUMPTYPE_BUMPDAYS = *Amanda::Configc::DUMPTYPE_BUMPDAYS;
237 *DUMPTYPE_BUMPMULT = *Amanda::Configc::DUMPTYPE_BUMPMULT;
238 *DUMPTYPE_STARTTIME = *Amanda::Configc::DUMPTYPE_STARTTIME;
239 *DUMPTYPE_STRATEGY = *Amanda::Configc::DUMPTYPE_STRATEGY;
240 *DUMPTYPE_ESTIMATELIST = *Amanda::Configc::DUMPTYPE_ESTIMATELIST;
241 *DUMPTYPE_COMPRESS = *Amanda::Configc::DUMPTYPE_COMPRESS;
242 *DUMPTYPE_ENCRYPT = *Amanda::Configc::DUMPTYPE_ENCRYPT;
243 *DUMPTYPE_SRV_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_SRV_DECRYPT_OPT;
244 *DUMPTYPE_CLNT_DECRYPT_OPT = *Amanda::Configc::DUMPTYPE_CLNT_DECRYPT_OPT;
245 *DUMPTYPE_COMPRATE = *Amanda::Configc::DUMPTYPE_COMPRATE;
246 *DUMPTYPE_TAPE_SPLITSIZE = *Amanda::Configc::DUMPTYPE_TAPE_SPLITSIZE;
247 *DUMPTYPE_FALLBACK_SPLITSIZE = *Amanda::Configc::DUMPTYPE_FALLBACK_SPLITSIZE;
248 *DUMPTYPE_SPLIT_DISKBUFFER = *Amanda::Configc::DUMPTYPE_SPLIT_DISKBUFFER;
249 *DUMPTYPE_RECORD = *Amanda::Configc::DUMPTYPE_RECORD;
250 *DUMPTYPE_SKIP_INCR = *Amanda::Configc::DUMPTYPE_SKIP_INCR;
251 *DUMPTYPE_SKIP_FULL = *Amanda::Configc::DUMPTYPE_SKIP_FULL;
252 *DUMPTYPE_HOLDINGDISK = *Amanda::Configc::DUMPTYPE_HOLDINGDISK;
253 *DUMPTYPE_KENCRYPT = *Amanda::Configc::DUMPTYPE_KENCRYPT;
254 *DUMPTYPE_IGNORE = *Amanda::Configc::DUMPTYPE_IGNORE;
255 *DUMPTYPE_INDEX = *Amanda::Configc::DUMPTYPE_INDEX;
256 *DUMPTYPE_APPLICATION = *Amanda::Configc::DUMPTYPE_APPLICATION;
257 *DUMPTYPE_SCRIPTLIST = *Amanda::Configc::DUMPTYPE_SCRIPTLIST;
258 *DUMPTYPE_PROPERTY = *Amanda::Configc::DUMPTYPE_PROPERTY;
259 *DUMPTYPE_DATA_PATH = *Amanda::Configc::DUMPTYPE_DATA_PATH;
260 *DUMPTYPE_ALLOW_SPLIT = *Amanda::Configc::DUMPTYPE_ALLOW_SPLIT;
261 *DUMPTYPE_RECOVERY_LIMIT = *Amanda::Configc::DUMPTYPE_RECOVERY_LIMIT;
262 *INTER_COMMENT = *Amanda::Configc::INTER_COMMENT;
263 *INTER_MAXUSAGE = *Amanda::Configc::INTER_MAXUSAGE;
264 *HOLDING_COMMENT = *Amanda::Configc::HOLDING_COMMENT;
265 *HOLDING_DISKDIR = *Amanda::Configc::HOLDING_DISKDIR;
266 *HOLDING_DISKSIZE = *Amanda::Configc::HOLDING_DISKSIZE;
267 *HOLDING_CHUNKSIZE = *Amanda::Configc::HOLDING_CHUNKSIZE;
268 *APPLICATION_COMMENT = *Amanda::Configc::APPLICATION_COMMENT;
269 *APPLICATION_PLUGIN = *Amanda::Configc::APPLICATION_PLUGIN;
270 *APPLICATION_PROPERTY = *Amanda::Configc::APPLICATION_PROPERTY;
271 *PP_SCRIPT_COMMENT = *Amanda::Configc::PP_SCRIPT_COMMENT;
272 *PP_SCRIPT_PLUGIN = *Amanda::Configc::PP_SCRIPT_PLUGIN;
273 *PP_SCRIPT_PROPERTY = *Amanda::Configc::PP_SCRIPT_PROPERTY;
274 *PP_SCRIPT_EXECUTE_ON = *Amanda::Configc::PP_SCRIPT_EXECUTE_ON;
275 *PP_SCRIPT_EXECUTE_WHERE = *Amanda::Configc::PP_SCRIPT_EXECUTE_WHERE;
276 *PP_SCRIPT_ORDER = *Amanda::Configc::PP_SCRIPT_ORDER;
277 *DEVICE_CONFIG_COMMENT = *Amanda::Configc::DEVICE_CONFIG_COMMENT;
278 *DEVICE_CONFIG_TAPEDEV = *Amanda::Configc::DEVICE_CONFIG_TAPEDEV;
279 *DEVICE_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::DEVICE_CONFIG_DEVICE_PROPERTY;
280 *CHANGER_CONFIG_COMMENT = *Amanda::Configc::CHANGER_CONFIG_COMMENT;
281 *CHANGER_CONFIG_TAPEDEV = *Amanda::Configc::CHANGER_CONFIG_TAPEDEV;
282 *CHANGER_CONFIG_TPCHANGER = *Amanda::Configc::CHANGER_CONFIG_TPCHANGER;
283 *CHANGER_CONFIG_CHANGERDEV = *Amanda::Configc::CHANGER_CONFIG_CHANGERDEV;
284 *CHANGER_CONFIG_CHANGERFILE = *Amanda::Configc::CHANGER_CONFIG_CHANGERFILE;
285 *CHANGER_CONFIG_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_PROPERTY;
286 *CHANGER_CONFIG_DEVICE_PROPERTY = *Amanda::Configc::CHANGER_CONFIG_DEVICE_PROPERTY;
287 *HOLD_NEVER = *Amanda::Configc::HOLD_NEVER;
288 *HOLD_AUTO = *Amanda::Configc::HOLD_AUTO;
289 *HOLD_REQUIRED = *Amanda::Configc::HOLD_REQUIRED;
290 *COMP_NONE = *Amanda::Configc::COMP_NONE;
291 *COMP_FAST = *Amanda::Configc::COMP_FAST;
292 *COMP_BEST = *Amanda::Configc::COMP_BEST;
293 *COMP_CUST = *Amanda::Configc::COMP_CUST;
294 *COMP_SERVER_FAST = *Amanda::Configc::COMP_SERVER_FAST;
295 *COMP_SERVER_BEST = *Amanda::Configc::COMP_SERVER_BEST;
296 *COMP_SERVER_CUST = *Amanda::Configc::COMP_SERVER_CUST;
297 *ENCRYPT_NONE = *Amanda::Configc::ENCRYPT_NONE;
298 *ENCRYPT_CUST = *Amanda::Configc::ENCRYPT_CUST;
299 *ENCRYPT_SERV_CUST = *Amanda::Configc::ENCRYPT_SERV_CUST;
300 *DS_SKIP = *Amanda::Configc::DS_SKIP;
301 *DS_STANDARD = *Amanda::Configc::DS_STANDARD;
302 *DS_NOFULL = *Amanda::Configc::DS_NOFULL;
303 *DS_NOINC = *Amanda::Configc::DS_NOINC;
304 *DS_4 = *Amanda::Configc::DS_4;
305 *DS_5 = *Amanda::Configc::DS_5;
306 *DS_HANOI = *Amanda::Configc::DS_HANOI;
307 *DS_INCRONLY = *Amanda::Configc::DS_INCRONLY;
308 *ES_CLIENT = *Amanda::Configc::ES_CLIENT;
309 *ES_SERVER = *Amanda::Configc::ES_SERVER;
310 *ES_CALCSIZE = *Amanda::Configc::ES_CALCSIZE;
311 *AL_OTHER_CONFIG = *Amanda::Configc::AL_OTHER_CONFIG;
312 *AL_NON_AMANDA = *Amanda::Configc::AL_NON_AMANDA;
313 *AL_VOLUME_ERROR = *Amanda::Configc::AL_VOLUME_ERROR;
314 *AL_EMPTY = *Amanda::Configc::AL_EMPTY;
315 *ALGO_FIRST = *Amanda::Configc::ALGO_FIRST;
316 *ALGO_FIRSTFIT = *Amanda::Configc::ALGO_FIRSTFIT;
317 *ALGO_LARGEST = *Amanda::Configc::ALGO_LARGEST;
318 *ALGO_LARGESTFIT = *Amanda::Configc::ALGO_LARGESTFIT;
319 *ALGO_SMALLEST = *Amanda::Configc::ALGO_SMALLEST;
320 *ALGO_LAST = *Amanda::Configc::ALGO_LAST;
321 *EXECUTE_ON_PRE_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_DLE_AMCHECK;
322 *EXECUTE_ON_PRE_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_PRE_HOST_AMCHECK;
323 *EXECUTE_ON_POST_DLE_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_DLE_AMCHECK;
324 *EXECUTE_ON_POST_HOST_AMCHECK = *Amanda::Configc::EXECUTE_ON_POST_HOST_AMCHECK;
325 *EXECUTE_ON_PRE_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_DLE_ESTIMATE;
326 *EXECUTE_ON_PRE_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_PRE_HOST_ESTIMATE;
327 *EXECUTE_ON_POST_DLE_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_DLE_ESTIMATE;
328 *EXECUTE_ON_POST_HOST_ESTIMATE = *Amanda::Configc::EXECUTE_ON_POST_HOST_ESTIMATE;
329 *EXECUTE_ON_PRE_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_DLE_BACKUP;
330 *EXECUTE_ON_PRE_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_PRE_HOST_BACKUP;
331 *EXECUTE_ON_POST_DLE_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_DLE_BACKUP;
332 *EXECUTE_ON_POST_HOST_BACKUP = *Amanda::Configc::EXECUTE_ON_POST_HOST_BACKUP;
333 *SEND_AMREPORT_ALL = *Amanda::Configc::SEND_AMREPORT_ALL;
334 *SEND_AMREPORT_STRANGE = *Amanda::Configc::SEND_AMREPORT_STRANGE;
335 *SEND_AMREPORT_ERROR = *Amanda::Configc::SEND_AMREPORT_ERROR;
336 *SEND_AMREPORT_NEVER = *Amanda::Configc::SEND_AMREPORT_NEVER;
337 *DATA_PATH_AMANDA = *Amanda::Configc::DATA_PATH_AMANDA;
338 *DATA_PATH_DIRECTTCP = *Amanda::Configc::DATA_PATH_DIRECTTCP;
339 *PART_CACHE_TYPE_NONE = *Amanda::Configc::PART_CACHE_TYPE_NONE;
340 *PART_CACHE_TYPE_DISK = *Amanda::Configc::PART_CACHE_TYPE_DISK;
341 *PART_CACHE_TYPE_MEMORY = *Amanda::Configc::PART_CACHE_TYPE_MEMORY;
342 *debug_amandad = *Amanda::Configc::debug_amandad;
343 *debug_recovery = *Amanda::Configc::debug_recovery;
344 *debug_amidxtaped = *Amanda::Configc::debug_amidxtaped;
345 *debug_amindexd = *Amanda::Configc::debug_amindexd;
346 *debug_amrecover = *Amanda::Configc::debug_amrecover;
347 *debug_auth = *Amanda::Configc::debug_auth;
348 *debug_event = *Amanda::Configc::debug_event;
349 *debug_holding = *Amanda::Configc::debug_holding;
350 *debug_protocol = *Amanda::Configc::debug_protocol;
351 *debug_planner = *Amanda::Configc::debug_planner;
352 *debug_driver = *Amanda::Configc::debug_driver;
353 *debug_dumper = *Amanda::Configc::debug_dumper;
354 *debug_chunker = *Amanda::Configc::debug_chunker;
355 *debug_taper = *Amanda::Configc::debug_taper;
356 *debug_selfcheck = *Amanda::Configc::debug_selfcheck;
357 *debug_sendsize = *Amanda::Configc::debug_sendsize;
358 *debug_sendbackup = *Amanda::Configc::debug_sendbackup;
359 *CFGERR_OK = *Amanda::Configc::CFGERR_OK;
360 *CFGERR_WARNINGS = *Amanda::Configc::CFGERR_WARNINGS;
361 *CFGERR_ERRORS = *Amanda::Configc::CFGERR_ERRORS;
362 *CONFIG_INIT_EXPLICIT_NAME = *Amanda::Configc::CONFIG_INIT_EXPLICIT_NAME;
363 *CONFIG_INIT_USE_CWD = *Amanda::Configc::CONFIG_INIT_USE_CWD;
364 *CONFIG_INIT_CLIENT = *Amanda::Configc::CONFIG_INIT_CLIENT;
365 *CONFIG_INIT_OVERLAY = *Amanda::Configc::CONFIG_INIT_OVERLAY;
373 Amanda::Config - access to Amanda configuration parameters
377 use Amanda::Config qw( :init :getconf );
379 my $config_name = shift @ARGV;
380 config_init($CONFIG_INIT_EXPLICIT_NAME, $config_name);
381 apply_config_overrides($config_overrides);
382 my ($cfgerr_level, @cfgerr_errors) = config_errors();
383 if ($cfgerr_level >= $CFGERR_WARNINGS) {
384 config_print_errors();
385 if ($cfgerr_level >= $CFGERR_ERRORS) {
386 die("errors processing config file");
390 print "tape device is ", getconf($CNF_TAPEDEV), "\n";
392 This API closely parallels the C API.
394 =head1 INITIALIZATION
396 The Amanda configuration is treated as a global state for the
397 application. It is not possible to load two configurations
400 All initialization-related symbols can be imported with the tag
403 =head2 LOADING CONFIGURATION
405 The Amanda configuration is loaded with the aptly named
406 C<config_init($flags, $name)>. Because of the great variety in
407 invocation method among Amanda applications, this function has a number
408 of flags that affect its behavior. These flags can be OR'd together.
412 =item If C<CONFIG_INIT_EXPLICIT_NAME> is given, then the C<$name> parameter can
413 contain the name of a configuration to load. Note that if the parameter is
414 C<".">, this is equivalent to C<CONFIG_INIT_USE_CWD>.
416 =item If C<CONFIG_INIT_USE_CWD> is given, and if the current directory
417 contains C<amanda.conf>, then that file is loaded.
419 =item If C<CONFIG_INIT_CLIENT> is given, then a client configuration
422 =item If C<CONFIG_INIT_OVERLAY> is given, then any existing
423 configuration is not reset.
427 See C<conffile.h> for more detailed information on these flags and
430 C<config_uninit()> reverses the effects of C<config_init>. It is
433 Once the configuration is loaded, the configuration name
434 (e.g., "DailySet1"), directory (C</etc/amanda/DailySet1>),
435 and filename (C</etc/amanda/DailySet1/amanda.conf>) are
436 available from C<get_config_name()>, C<get_config_dir()>, and
437 C<get_config_filename()>, respectively.
441 This module collects configuration errors and warnings in a list, and also
442 tracks the overall error level with an enumeration: C<$CFGERR_OK>,
443 C<$CFGERR_WARNINGS>, and C<$CFGERR_ERRORS>. C<config_init> and
444 C<apply_config_overrides> both return the current level. The level and the
445 list of error messages are available from C<config_errors>:
447 my ($cfgerr_level, @errors) = Amanda::Config::config_errors();
449 As a convenience, C<config_print_errors> will print all error messages to
450 stderr. The error state can be cleared with C<config_clear_errors>.
452 =head2 CONFIG OVERWRITES
454 Most Amanda applications accept the command-line option C<-o>
455 to "overwrite" configuration values in C<amanda.conf>. In Perl
456 applications, these options should be parsed with L<Getopt::Long|Getopt::Long>, with
457 the action being a call to C<add_config_override_opt>. For example:
459 my $config_overrides = new_config_overrides($#ARGV+1);
462 'o=s' => sub { add_config_override_opt($config_overrides, $_[1]); },
464 my $cfg_ok = config_init($CONFIG_INIT_EXPLICIT_NAME | $CONFIG_INIT_USE_CWD, $config_name);
465 apply_config_overrides($config_overrides);
467 C<new_config_overrides($size_estimate)> creates a new
468 overwrites object, using the given size as an estimate of
469 the number of items it will contain (C<$#ARGC/2> is a good
470 estimate). Individual configuration options are then added via
471 C<add_config_override($co, $key, $value)> (which takes a key/value
472 pair) or C<add_config_override_opt($co, $optarg)>, which parses a
473 string following C<-o> on the command line.
475 Once the overwrites are gathered, they are applied with
476 C<apply_config_overrides($co)>, which applies the overwrites to the
477 active configuration. No further operations can be performed on the
478 overwrites object after C<apply_config_overrides> has been called.
480 The utility function C<get_config_options()> returns a list of
481 command-line arguments to represent any overwrites that were used
482 to generate the current configuration. (TODO: this function isn't
485 =head1 PARAMETER ACCESS
487 Amanda configurations consist of "global" parameters and several
488 sets of "subsections" -- one set for dumptypes, one for tapetypes,
491 All of the global parameters are represented by a constant beginning with
492 C<$CNF_>, e.g., C<$CNF_LABELSTR>. The function C<getconf($cnf)> returns the
493 value of parameter C<$cnf>, in whatever format is appropriate for the parameter
494 (see DATA FORMATS, below). C<getconf_seen($cnf)> returns a true value if
495 C<$cnf> was seen in the configuration file. If it was not seen, then it will
496 have its default value. C<getconf_linenum($cnf)> returns the line number in
497 the configuration file where it is set, 0 if it is not in a configuration file,
498 or -2 if it is set in a command line argument.
500 Some parameters have enumerated types. The values for those
501 enumerations are available from this module with the same name as
502 in C<conffile.h>. For example, C<$CNF_TAPERALGO> will yield a value
503 from the enumeration C<taperalgo_t>, the constants for which all
504 begin with C<$ALGO_>. See C<conffile.h> for the details.
506 Each subsection type C<TYP> has the following functions:
510 =item C<lookup_TYP($subsec_name)>
512 which returns an opaque object
513 (C<$ss>) representing the subsection, or C<undef> if no subsection
514 with that name exists;
516 =item C<TYP_name($ss)>
518 returning the name of the subsection;
520 =item C<TYP_getconf($ss, $cnf)>
522 which fetches a parameter value from C<$ss>; and
524 =item C<TYP_seen($ss, $cnf)>
526 which returns a true value if <$cnf> was seen in the subsection.
536 with constants beginning with C<$TAPETYPE_>
540 with constants beginning with C<$DUMPTYPE_>
544 with constants beginning with C<$INTER_>
548 with constants beginning with C<$HOLDING_>
552 with constants beginning with C<$APPLICATION_>
556 with constants beginning with C<$PP_SCRIPT_>
560 with constants beginning with C<$DEVICE_CONFIG_>.
564 with constants beginning with C<$CHANGER_CONFIG_>.
568 See C<conffile.h> for the names of the constants themselves.
572 Each configuration parameter has a "conftype", as assigned in
573 C<common-src/conffile.c>. The translation of most of these types into Perl
574 values is straightforward:
576 CONFTYPE_INT Math::BigInt
577 CONFTYPE_INT64 Math::BigInt
578 CONFTYPE_REAL floating-point value
580 CONFTYPE_IDENT string
581 CONFTYPE_TIME Math::BigInt (epoch value)
582 CONFTYPE_SIZE Math::BigInt
583 CONFTYPE_BOOLEAN Math::BigInt
584 CONFTYPE_COMPRESS Math::BigInt
585 CONFTYPE_ENCRYPT Math::BigInt
586 CONFTYPE_HOLDING Math::BigInt
587 CONFTYPE_ESTIMATELIST [ Math::BigInt, .. ]
588 CONFTYPE_STRATEGY Math::BigInt
589 CONFTYPE_TAPERALGO Math::BigInt
590 CONFTYPE_PRIORITY Math::BigInt
591 CONFTYPE_RATE float, float
592 CONFTYPE_INTRANGE Math::BigInt, Math::BigInt
593 CONFTYPE_APPLICATION string
594 CONFTYPE_EXECUTE_ON string
595 CONFTYPE_EXECUTE_WHERE Math::BigInt
596 CONFTYPE_SEND_AMREPORT_ON Math::BigInt
597 CONFTYPE_IDENTLIST [ string, .. ]
598 CONFTYPE_PART_CACHE_TYPE Math::BigInt
599 CONFTYPE_RECOVERY_LIMIT [ string, .. ] (undef if not specified;
600 undef in the list means same-host)
602 Note that C<CONFTYPE_INTRANGE> and C<CONFTYPE_RATE> each return two values, not
605 Include and exclude lists with type C<CONFTYPE_EXINCLUDE> return a hash giving
606 all listed filenames (in the C<list> key), include/exclude files (C<files>),
607 and a boolean indicating that the list is optional (C<optional>):
609 { list => [ str, .. ], file => [ str, .. ], optional => Math::BigInt }
611 Properties are represented as a hash of hashes. The keys are the property
612 names, converted to ASCII lowercase. Each property has a C<values> array
613 giving all values specified for this property, as well as booleans C<priority>
614 and C<append> that are true if the corresponding keyword was supplied.
616 { prop1 => { values => [ str, .. ] priority => int, append => int },
619 Note that integer types of all sizes become C<Math::BigInt> objects rather than
620 Perl integers, as is the habit throughout Amanda.
622 The C<CNF_AUTOLABEL> value is a hash with the following keys
624 template label template, or undef
632 Parameter values are available by name from C<getconf_byname($name)> and
633 C<getconf_byname_strs($name, $str_needs_quotes)>. These functions implement
634 the C<TYP:NAME:PARAM> syntax advertised by C<amgetconf> to access values in
635 subsections. The first function returns a Perl value (see DATA FORMATS,
636 above), while the second returns a list of strings suitable for use in
637 C<amanda.conf>, including quotes around strings if C<$str_needs_quotes> is
640 C<getconf_list($typ)> returns a list of the names of all subsections of the
641 given type. C<%subsection_names> is a hash whose keys are allowed subsection
644 =head2 DERIVED VALUES
646 The C<$CNF_DISPLAYUNIT> implies a certain divisor to convert from
647 kilobytes to the desired unit. This divisor is available from
648 C<getconf_unit_divisor()>. Note carefully that it is a I<divisor>
649 for a value in I<kilobytes>!
651 Finally, various subsections of Amanda enable verbose debugging via
652 configuration parameters. The status of each parameter is available
653 a similarly-named variable, e.g., C<$debug_auth>.
655 All parameter access functions and constants can be imported with
660 These functions defy categorization.
662 The function C<config_dir_relative> will interpret a path relative to
663 the current configuration directory. Absolute paths are passed through
664 unchanged, while relative paths are converted to absolute paths.
666 C<dump_configuration()> dumps the current configuration, in a format
667 suitable for re-evaluation for this module, to standard output.
668 This function may be revised to return a string.
670 Several parts of Amanda need to convert unit modifier value like
671 "gbytes" to a multiplier. The function C<find_multiplier($str)>
672 returns the unit multiplier for such a string. For example, "mbytes"
673 is converted to 1048576 (1024*1024).
675 C<string_to_boolean()> takes a string and returns 0 if it matches any of
676 Amanda's names for false, or 1 if matches a name for true. If it can't be
677 interpreted, C<undef> is returned.
679 C<amandaify_property_name()> converts a string into Amanda's property style:
680 all lower-case and with "-" replacing "_".
684 This section lists all of the configuration parameter constants defined in this
685 module. All of these constants are available with the C<:getconf> export tag.
690 push @EXPORT_OK, qw(confparm_key_to_string);
691 push @{$EXPORT_TAGS{"confparm_key"}}, qw(confparm_key_to_string);
693 my %_confparm_key_VALUES;
694 #Convert an enum value to a single string
695 sub confparm_key_to_string {
698 for my $k (keys %_confparm_key_VALUES) {
699 my $v = $_confparm_key_VALUES{$k};
701 #is this a matching flag?
702 if ($enumval == $v) {
707 #default, just return the number
711 push @EXPORT_OK, qw( $CNF_ORG $CNF_CONF $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_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_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);
712 push @{$EXPORT_TAGS{"confparm_key"}}, qw( $CNF_ORG $CNF_CONF $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_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_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);
713 foreach (qw( CNF_ORG CNF_CONF 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_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_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)) { $_confparm_key_VALUES{$_} = $$_; }
714 #copy symbols in confparm_key to getconf
715 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"confparm_key"}};
718 use Amanda::Config::FoldingHash;
722 Global Parameters: C<$CNF_ORG> C<$CNF_CONF> 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_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_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>
726 push @EXPORT_OK, qw(tapetype_key_to_string);
727 push @{$EXPORT_TAGS{"tapetype_key"}}, qw(tapetype_key_to_string);
729 my %_tapetype_key_VALUES;
730 #Convert an enum value to a single string
731 sub tapetype_key_to_string {
734 for my $k (keys %_tapetype_key_VALUES) {
735 my $v = $_tapetype_key_VALUES{$k};
737 #is this a matching flag?
738 if ($enumval == $v) {
743 #default, just return the number
747 push @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);
748 push @{$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);
749 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{$_} = $$_; }
750 #copy symbols in tapetype_key to getconf
751 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"tapetype_key"}};
754 use Amanda::Config::FoldingHash;
758 Tapetype 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>
762 push @EXPORT_OK, qw(dumptype_key_to_string);
763 push @{$EXPORT_TAGS{"dumptype_key"}}, qw(dumptype_key_to_string);
765 my %_dumptype_key_VALUES;
766 #Convert an enum value to a single string
767 sub dumptype_key_to_string {
770 for my $k (keys %_dumptype_key_VALUES) {
771 my $v = $_dumptype_key_VALUES{$k};
773 #is this a matching flag?
774 if ($enumval == $v) {
779 #default, just return the number
783 push @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_RECOVERY_LIMIT);
784 push @{$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_RECOVERY_LIMIT);
785 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_RECOVERY_LIMIT)) { $_dumptype_key_VALUES{$_} = $$_; }
786 #copy symbols in dumptype_key to getconf
787 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"dumptype_key"}};
790 use Amanda::Config::FoldingHash;
794 Dumptype 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_RECOVERY_LIMIT>
798 push @EXPORT_OK, qw(interface_key_to_string);
799 push @{$EXPORT_TAGS{"interface_key"}}, qw(interface_key_to_string);
801 my %_interface_key_VALUES;
802 #Convert an enum value to a single string
803 sub interface_key_to_string {
806 for my $k (keys %_interface_key_VALUES) {
807 my $v = $_interface_key_VALUES{$k};
809 #is this a matching flag?
810 if ($enumval == $v) {
815 #default, just return the number
819 push @EXPORT_OK, qw( $INTER_COMMENT $INTER_MAXUSAGE);
820 push @{$EXPORT_TAGS{"interface_key"}}, qw( $INTER_COMMENT $INTER_MAXUSAGE);
821 foreach (qw( INTER_COMMENT INTER_MAXUSAGE)) { $_interface_key_VALUES{$_} = $$_; }
822 #copy symbols in interface_key to getconf
823 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"interface_key"}};
826 use Amanda::Config::FoldingHash;
830 Dumptype Parameters: C<$INTER_COMMENT> C<$INTER_MAXUSAGE>
834 push @EXPORT_OK, qw(holdingdisk_key_to_string);
835 push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw(holdingdisk_key_to_string);
837 my %_holdingdisk_key_VALUES;
838 #Convert an enum value to a single string
839 sub holdingdisk_key_to_string {
842 for my $k (keys %_holdingdisk_key_VALUES) {
843 my $v = $_holdingdisk_key_VALUES{$k};
845 #is this a matching flag?
846 if ($enumval == $v) {
851 #default, just return the number
855 push @EXPORT_OK, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE);
856 push @{$EXPORT_TAGS{"holdingdisk_key"}}, qw( $HOLDING_COMMENT $HOLDING_DISKDIR $HOLDING_DISKSIZE $HOLDING_CHUNKSIZE);
857 foreach (qw( HOLDING_COMMENT HOLDING_DISKDIR HOLDING_DISKSIZE HOLDING_CHUNKSIZE)) { $_holdingdisk_key_VALUES{$_} = $$_; }
858 #copy symbols in holdingdisk_key to getconf
859 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"holdingdisk_key"}};
862 use Amanda::Config::FoldingHash;
866 Holdingdisk Parameters: C<$HOLDING_COMMENT> C<$HOLDING_DISKDIR> C<$HOLDING_DISKSIZE> C<$HOLDING_CHUNKSIZE>
870 push @EXPORT_OK, qw(application_key_to_string);
871 push @{$EXPORT_TAGS{"application_key"}}, qw(application_key_to_string);
873 my %_application_key_VALUES;
874 #Convert an enum value to a single string
875 sub application_key_to_string {
878 for my $k (keys %_application_key_VALUES) {
879 my $v = $_application_key_VALUES{$k};
881 #is this a matching flag?
882 if ($enumval == $v) {
887 #default, just return the number
891 push @EXPORT_OK, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY);
892 push @{$EXPORT_TAGS{"application_key"}}, qw( $APPLICATION_COMMENT $APPLICATION_PLUGIN $APPLICATION_PROPERTY);
893 foreach (qw( APPLICATION_COMMENT APPLICATION_PLUGIN APPLICATION_PROPERTY)) { $_application_key_VALUES{$_} = $$_; }
894 #copy symbols in application_key to getconf
895 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"application_key"}};
898 use Amanda::Config::FoldingHash;
902 Application Parameters: C<$APPLICATION_COMMENT> C<$APPLICATION_PLUGIN> C<$APPLICATION_PROPERTY>
906 push @EXPORT_OK, qw(pp_script_key_to_string);
907 push @{$EXPORT_TAGS{"pp_script_key"}}, qw(pp_script_key_to_string);
909 my %_pp_script_key_VALUES;
910 #Convert an enum value to a single string
911 sub pp_script_key_to_string {
914 for my $k (keys %_pp_script_key_VALUES) {
915 my $v = $_pp_script_key_VALUES{$k};
917 #is this a matching flag?
918 if ($enumval == $v) {
923 #default, just return the number
927 push @EXPORT_OK, qw( $PP_SCRIPT_COMMENT $PP_SCRIPT_PLUGIN $PP_SCRIPT_PROPERTY $PP_SCRIPT_EXECUTE_ON $PP_SCRIPT_EXECUTE_WHERE $PP_SCRIPT_ORDER);
928 push @{$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);
929 foreach (qw( PP_SCRIPT_COMMENT PP_SCRIPT_PLUGIN PP_SCRIPT_PROPERTY PP_SCRIPT_EXECUTE_ON PP_SCRIPT_EXECUTE_WHERE PP_SCRIPT_ORDER)) { $_pp_script_key_VALUES{$_} = $$_; }
930 #copy symbols in pp_script_key to getconf
931 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"pp_script_key"}};
934 use Amanda::Config::FoldingHash;
938 Pre/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>
942 push @EXPORT_OK, qw(device_config_key_to_string);
943 push @{$EXPORT_TAGS{"device_config_key"}}, qw(device_config_key_to_string);
945 my %_device_config_key_VALUES;
946 #Convert an enum value to a single string
947 sub device_config_key_to_string {
950 for my $k (keys %_device_config_key_VALUES) {
951 my $v = $_device_config_key_VALUES{$k};
953 #is this a matching flag?
954 if ($enumval == $v) {
959 #default, just return the number
963 push @EXPORT_OK, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY);
964 push @{$EXPORT_TAGS{"device_config_key"}}, qw( $DEVICE_CONFIG_COMMENT $DEVICE_CONFIG_TAPEDEV $DEVICE_CONFIG_DEVICE_PROPERTY);
965 foreach (qw( DEVICE_CONFIG_COMMENT DEVICE_CONFIG_TAPEDEV DEVICE_CONFIG_DEVICE_PROPERTY)) { $_device_config_key_VALUES{$_} = $$_; }
966 #copy symbols in device_config_key to getconf
967 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"device_config_key"}};
970 use Amanda::Config::FoldingHash;
974 Pre/Post-Script Parameters: C<$DEVICE_CONFIG_COMMENT> C<$DEVICE_CONFIG_TAPEDEV> C<$DEVICE_CONFIG_DEVICE_PROPERTY>
978 push @EXPORT_OK, qw(changer_config_key_to_string);
979 push @{$EXPORT_TAGS{"changer_config_key"}}, qw(changer_config_key_to_string);
981 my %_changer_config_key_VALUES;
982 #Convert an enum value to a single string
983 sub changer_config_key_to_string {
986 for my $k (keys %_changer_config_key_VALUES) {
987 my $v = $_changer_config_key_VALUES{$k};
989 #is this a matching flag?
990 if ($enumval == $v) {
995 #default, just return the number
999 push @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);
1000 push @{$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);
1001 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{$_} = $$_; }
1002 #copy symbols in changer_config_key to getconf
1003 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"changer_config_key"}};
1006 use Amanda::Config::FoldingHash;
1010 Pre/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>
1014 push @EXPORT_OK, qw(dump_holdingdisk_t_to_string);
1015 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw(dump_holdingdisk_t_to_string);
1017 my %_dump_holdingdisk_t_VALUES;
1018 #Convert an enum value to a single string
1019 sub dump_holdingdisk_t_to_string {
1022 for my $k (keys %_dump_holdingdisk_t_VALUES) {
1023 my $v = $_dump_holdingdisk_t_VALUES{$k};
1025 #is this a matching flag?
1026 if ($enumval == $v) {
1031 #default, just return the number
1035 push @EXPORT_OK, qw($HOLD_NEVER);
1036 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_NEVER);
1038 $_dump_holdingdisk_t_VALUES{"HOLD_NEVER"} = $HOLD_NEVER;
1040 push @EXPORT_OK, qw($HOLD_AUTO);
1041 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_AUTO);
1043 $_dump_holdingdisk_t_VALUES{"HOLD_AUTO"} = $HOLD_AUTO;
1045 push @EXPORT_OK, qw($HOLD_REQUIRED);
1046 push @{$EXPORT_TAGS{"dump_holdingdisk_t"}}, qw($HOLD_REQUIRED);
1048 $_dump_holdingdisk_t_VALUES{"HOLD_REQUIRED"} = $HOLD_REQUIRED;
1050 #copy symbols in dump_holdingdisk_t to getconf
1051 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"dump_holdingdisk_t"}};
1053 push @EXPORT_OK, qw(comp_t_to_string);
1054 push @{$EXPORT_TAGS{"comp_t"}}, qw(comp_t_to_string);
1057 #Convert an enum value to a single string
1058 sub comp_t_to_string {
1061 for my $k (keys %_comp_t_VALUES) {
1062 my $v = $_comp_t_VALUES{$k};
1064 #is this a matching flag?
1065 if ($enumval == $v) {
1070 #default, just return the number
1074 push @EXPORT_OK, qw($COMP_NONE);
1075 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_NONE);
1077 $_comp_t_VALUES{"COMP_NONE"} = $COMP_NONE;
1079 push @EXPORT_OK, qw($COMP_FAST);
1080 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_FAST);
1082 $_comp_t_VALUES{"COMP_FAST"} = $COMP_FAST;
1084 push @EXPORT_OK, qw($COMP_BEST);
1085 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_BEST);
1087 $_comp_t_VALUES{"COMP_BEST"} = $COMP_BEST;
1089 push @EXPORT_OK, qw($COMP_CUST);
1090 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_CUST);
1092 $_comp_t_VALUES{"COMP_CUST"} = $COMP_CUST;
1094 push @EXPORT_OK, qw($COMP_SERVER_FAST);
1095 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_FAST);
1097 $_comp_t_VALUES{"COMP_SERVER_FAST"} = $COMP_SERVER_FAST;
1099 push @EXPORT_OK, qw($COMP_SERVER_BEST);
1100 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_BEST);
1102 $_comp_t_VALUES{"COMP_SERVER_BEST"} = $COMP_SERVER_BEST;
1104 push @EXPORT_OK, qw($COMP_SERVER_CUST);
1105 push @{$EXPORT_TAGS{"comp_t"}}, qw($COMP_SERVER_CUST);
1107 $_comp_t_VALUES{"COMP_SERVER_CUST"} = $COMP_SERVER_CUST;
1109 #copy symbols in comp_t to getconf
1110 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"comp_t"}};
1112 push @EXPORT_OK, qw(encrypt_t_to_string);
1113 push @{$EXPORT_TAGS{"encrypt_t"}}, qw(encrypt_t_to_string);
1115 my %_encrypt_t_VALUES;
1116 #Convert an enum value to a single string
1117 sub encrypt_t_to_string {
1120 for my $k (keys %_encrypt_t_VALUES) {
1121 my $v = $_encrypt_t_VALUES{$k};
1123 #is this a matching flag?
1124 if ($enumval == $v) {
1129 #default, just return the number
1133 push @EXPORT_OK, qw($ENCRYPT_NONE);
1134 push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_NONE);
1136 $_encrypt_t_VALUES{"ENCRYPT_NONE"} = $ENCRYPT_NONE;
1138 push @EXPORT_OK, qw($ENCRYPT_CUST);
1139 push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_CUST);
1141 $_encrypt_t_VALUES{"ENCRYPT_CUST"} = $ENCRYPT_CUST;
1143 push @EXPORT_OK, qw($ENCRYPT_SERV_CUST);
1144 push @{$EXPORT_TAGS{"encrypt_t"}}, qw($ENCRYPT_SERV_CUST);
1146 $_encrypt_t_VALUES{"ENCRYPT_SERV_CUST"} = $ENCRYPT_SERV_CUST;
1148 #copy symbols in encrypt_t to getconf
1149 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"encrypt_t"}};
1151 push @EXPORT_OK, qw(strategy_t_to_string);
1152 push @{$EXPORT_TAGS{"strategy_t"}}, qw(strategy_t_to_string);
1154 my %_strategy_t_VALUES;
1155 #Convert an enum value to a single string
1156 sub strategy_t_to_string {
1159 for my $k (keys %_strategy_t_VALUES) {
1160 my $v = $_strategy_t_VALUES{$k};
1162 #is this a matching flag?
1163 if ($enumval == $v) {
1168 #default, just return the number
1172 push @EXPORT_OK, qw($DS_SKIP);
1173 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_SKIP);
1175 $_strategy_t_VALUES{"DS_SKIP"} = $DS_SKIP;
1177 push @EXPORT_OK, qw($DS_STANDARD);
1178 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_STANDARD);
1180 $_strategy_t_VALUES{"DS_STANDARD"} = $DS_STANDARD;
1182 push @EXPORT_OK, qw($DS_NOFULL);
1183 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_NOFULL);
1185 $_strategy_t_VALUES{"DS_NOFULL"} = $DS_NOFULL;
1187 push @EXPORT_OK, qw($DS_NOINC);
1188 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_NOINC);
1190 $_strategy_t_VALUES{"DS_NOINC"} = $DS_NOINC;
1192 push @EXPORT_OK, qw($DS_4);
1193 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_4);
1195 $_strategy_t_VALUES{"DS_4"} = $DS_4;
1197 push @EXPORT_OK, qw($DS_5);
1198 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_5);
1200 $_strategy_t_VALUES{"DS_5"} = $DS_5;
1202 push @EXPORT_OK, qw($DS_HANOI);
1203 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_HANOI);
1205 $_strategy_t_VALUES{"DS_HANOI"} = $DS_HANOI;
1207 push @EXPORT_OK, qw($DS_INCRONLY);
1208 push @{$EXPORT_TAGS{"strategy_t"}}, qw($DS_INCRONLY);
1210 $_strategy_t_VALUES{"DS_INCRONLY"} = $DS_INCRONLY;
1212 #copy symbols in strategy_t to getconf
1213 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"strategy_t"}};
1215 push @EXPORT_OK, qw(estimate_t_to_string);
1216 push @{$EXPORT_TAGS{"estimate_t"}}, qw(estimate_t_to_string);
1218 my %_estimate_t_VALUES;
1219 #Convert an enum value to a single string
1220 sub estimate_t_to_string {
1223 for my $k (keys %_estimate_t_VALUES) {
1224 my $v = $_estimate_t_VALUES{$k};
1226 #is this a matching flag?
1227 if ($enumval == $v) {
1232 #default, just return the number
1236 push @EXPORT_OK, qw($ES_CLIENT);
1237 push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_CLIENT);
1239 $_estimate_t_VALUES{"ES_CLIENT"} = $ES_CLIENT;
1241 push @EXPORT_OK, qw($ES_SERVER);
1242 push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_SERVER);
1244 $_estimate_t_VALUES{"ES_SERVER"} = $ES_SERVER;
1246 push @EXPORT_OK, qw($ES_CALCSIZE);
1247 push @{$EXPORT_TAGS{"estimate_t"}}, qw($ES_CALCSIZE);
1249 $_estimate_t_VALUES{"ES_CALCSIZE"} = $ES_CALCSIZE;
1251 #copy symbols in estimate_t to getconf
1252 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"estimate_t"}};
1254 push @EXPORT_OK, qw(autolabel_enum_t_to_string);
1255 push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw(autolabel_enum_t_to_string);
1257 my %_autolabel_enum_t_VALUES;
1258 #Convert an enum value to a single string
1259 sub autolabel_enum_t_to_string {
1262 for my $k (keys %_autolabel_enum_t_VALUES) {
1263 my $v = $_autolabel_enum_t_VALUES{$k};
1265 #is this a matching flag?
1266 if ($enumval == $v) {
1271 #default, just return the number
1275 push @EXPORT_OK, qw($AL_OTHER_CONFIG);
1276 push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_OTHER_CONFIG);
1278 $_autolabel_enum_t_VALUES{"AL_OTHER_CONFIG"} = $AL_OTHER_CONFIG;
1280 push @EXPORT_OK, qw($AL_NON_AMANDA);
1281 push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_NON_AMANDA);
1283 $_autolabel_enum_t_VALUES{"AL_NON_AMANDA"} = $AL_NON_AMANDA;
1285 push @EXPORT_OK, qw($AL_VOLUME_ERROR);
1286 push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_VOLUME_ERROR);
1288 $_autolabel_enum_t_VALUES{"AL_VOLUME_ERROR"} = $AL_VOLUME_ERROR;
1290 push @EXPORT_OK, qw($AL_EMPTY);
1291 push @{$EXPORT_TAGS{"autolabel_enum_t"}}, qw($AL_EMPTY);
1293 $_autolabel_enum_t_VALUES{"AL_EMPTY"} = $AL_EMPTY;
1295 #copy symbols in autolabel_enum_t to getconf
1296 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"autolabel_enum_t"}};
1298 push @EXPORT_OK, qw(taperalgo_t_to_string);
1299 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw(taperalgo_t_to_string);
1301 my %_taperalgo_t_VALUES;
1302 #Convert an enum value to a single string
1303 sub taperalgo_t_to_string {
1306 for my $k (keys %_taperalgo_t_VALUES) {
1307 my $v = $_taperalgo_t_VALUES{$k};
1309 #is this a matching flag?
1310 if ($enumval == $v) {
1315 #default, just return the number
1319 push @EXPORT_OK, qw($ALGO_FIRST);
1320 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_FIRST);
1322 $_taperalgo_t_VALUES{"ALGO_FIRST"} = $ALGO_FIRST;
1324 push @EXPORT_OK, qw($ALGO_FIRSTFIT);
1325 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_FIRSTFIT);
1327 $_taperalgo_t_VALUES{"ALGO_FIRSTFIT"} = $ALGO_FIRSTFIT;
1329 push @EXPORT_OK, qw($ALGO_LARGEST);
1330 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LARGEST);
1332 $_taperalgo_t_VALUES{"ALGO_LARGEST"} = $ALGO_LARGEST;
1334 push @EXPORT_OK, qw($ALGO_LARGESTFIT);
1335 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LARGESTFIT);
1337 $_taperalgo_t_VALUES{"ALGO_LARGESTFIT"} = $ALGO_LARGESTFIT;
1339 push @EXPORT_OK, qw($ALGO_SMALLEST);
1340 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_SMALLEST);
1342 $_taperalgo_t_VALUES{"ALGO_SMALLEST"} = $ALGO_SMALLEST;
1344 push @EXPORT_OK, qw($ALGO_LAST);
1345 push @{$EXPORT_TAGS{"taperalgo_t"}}, qw($ALGO_LAST);
1347 $_taperalgo_t_VALUES{"ALGO_LAST"} = $ALGO_LAST;
1349 #copy symbols in taperalgo_t to getconf
1350 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"taperalgo_t"}};
1352 push @EXPORT_OK, qw(execute_on_t_to_string);
1353 push @{$EXPORT_TAGS{"execute_on_t"}}, qw(execute_on_t_to_string);
1355 my %_execute_on_t_VALUES;
1356 #Convert an enum value to a single string
1357 sub execute_on_t_to_string {
1360 for my $k (keys %_execute_on_t_VALUES) {
1361 my $v = $_execute_on_t_VALUES{$k};
1363 #is this a matching flag?
1364 if ($enumval == $v) {
1369 #default, just return the number
1373 push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_AMCHECK);
1374 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_AMCHECK);
1376 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_AMCHECK"} = $EXECUTE_ON_PRE_DLE_AMCHECK;
1378 push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_AMCHECK);
1379 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_AMCHECK);
1381 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_AMCHECK"} = $EXECUTE_ON_PRE_HOST_AMCHECK;
1383 push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_AMCHECK);
1384 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_AMCHECK);
1386 $_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_AMCHECK"} = $EXECUTE_ON_POST_DLE_AMCHECK;
1388 push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_AMCHECK);
1389 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_AMCHECK);
1391 $_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_AMCHECK"} = $EXECUTE_ON_POST_HOST_AMCHECK;
1393 push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_ESTIMATE);
1394 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_ESTIMATE);
1396 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_ESTIMATE"} = $EXECUTE_ON_PRE_DLE_ESTIMATE;
1398 push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_ESTIMATE);
1399 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_ESTIMATE);
1401 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_ESTIMATE"} = $EXECUTE_ON_PRE_HOST_ESTIMATE;
1403 push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_ESTIMATE);
1404 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_ESTIMATE);
1406 $_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_ESTIMATE"} = $EXECUTE_ON_POST_DLE_ESTIMATE;
1408 push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_ESTIMATE);
1409 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_ESTIMATE);
1411 $_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_ESTIMATE"} = $EXECUTE_ON_POST_HOST_ESTIMATE;
1413 push @EXPORT_OK, qw($EXECUTE_ON_PRE_DLE_BACKUP);
1414 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_DLE_BACKUP);
1416 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_DLE_BACKUP"} = $EXECUTE_ON_PRE_DLE_BACKUP;
1418 push @EXPORT_OK, qw($EXECUTE_ON_PRE_HOST_BACKUP);
1419 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_PRE_HOST_BACKUP);
1421 $_execute_on_t_VALUES{"EXECUTE_ON_PRE_HOST_BACKUP"} = $EXECUTE_ON_PRE_HOST_BACKUP;
1423 push @EXPORT_OK, qw($EXECUTE_ON_POST_DLE_BACKUP);
1424 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_DLE_BACKUP);
1426 $_execute_on_t_VALUES{"EXECUTE_ON_POST_DLE_BACKUP"} = $EXECUTE_ON_POST_DLE_BACKUP;
1428 push @EXPORT_OK, qw($EXECUTE_ON_POST_HOST_BACKUP);
1429 push @{$EXPORT_TAGS{"execute_on_t"}}, qw($EXECUTE_ON_POST_HOST_BACKUP);
1431 $_execute_on_t_VALUES{"EXECUTE_ON_POST_HOST_BACKUP"} = $EXECUTE_ON_POST_HOST_BACKUP;
1433 #copy symbols in execute_on_t to getconf
1434 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"execute_on_t"}};
1436 push @EXPORT_OK, qw(send_amreport_on_t_to_string);
1437 push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw(send_amreport_on_t_to_string);
1439 my %_send_amreport_on_t_VALUES;
1440 #Convert an enum value to a single string
1441 sub send_amreport_on_t_to_string {
1444 for my $k (keys %_send_amreport_on_t_VALUES) {
1445 my $v = $_send_amreport_on_t_VALUES{$k};
1447 #is this a matching flag?
1448 if ($enumval == $v) {
1453 #default, just return the number
1457 push @EXPORT_OK, qw($SEND_AMREPORT_ALL);
1458 push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ALL);
1460 $_send_amreport_on_t_VALUES{"SEND_AMREPORT_ALL"} = $SEND_AMREPORT_ALL;
1462 push @EXPORT_OK, qw($SEND_AMREPORT_STRANGE);
1463 push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_STRANGE);
1465 $_send_amreport_on_t_VALUES{"SEND_AMREPORT_STRANGE"} = $SEND_AMREPORT_STRANGE;
1467 push @EXPORT_OK, qw($SEND_AMREPORT_ERROR);
1468 push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_ERROR);
1470 $_send_amreport_on_t_VALUES{"SEND_AMREPORT_ERROR"} = $SEND_AMREPORT_ERROR;
1472 push @EXPORT_OK, qw($SEND_AMREPORT_NEVER);
1473 push @{$EXPORT_TAGS{"send_amreport_on_t"}}, qw($SEND_AMREPORT_NEVER);
1475 $_send_amreport_on_t_VALUES{"SEND_AMREPORT_NEVER"} = $SEND_AMREPORT_NEVER;
1477 #copy symbols in send_amreport_on_t to getconf
1478 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"send_amreport_on_t"}};
1480 push @EXPORT_OK, qw(data_path_t_to_string);
1481 push @{$EXPORT_TAGS{"data_path_t"}}, qw(data_path_t_to_string);
1483 my %_data_path_t_VALUES;
1484 #Convert an enum value to a single string
1485 sub data_path_t_to_string {
1488 for my $k (keys %_data_path_t_VALUES) {
1489 my $v = $_data_path_t_VALUES{$k};
1491 #is this a matching flag?
1492 if ($enumval == $v) {
1497 #default, just return the number
1501 push @EXPORT_OK, qw($DATA_PATH_AMANDA);
1502 push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_AMANDA);
1504 $_data_path_t_VALUES{"DATA_PATH_AMANDA"} = $DATA_PATH_AMANDA;
1506 push @EXPORT_OK, qw($DATA_PATH_DIRECTTCP);
1507 push @{$EXPORT_TAGS{"data_path_t"}}, qw($DATA_PATH_DIRECTTCP);
1509 $_data_path_t_VALUES{"DATA_PATH_DIRECTTCP"} = $DATA_PATH_DIRECTTCP;
1511 #copy symbols in data_path_t to getconf
1512 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"data_path_t"}};
1514 push @EXPORT_OK, qw(part_cache_type_t_to_string);
1515 push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw(part_cache_type_t_to_string);
1517 my %_part_cache_type_t_VALUES;
1518 #Convert an enum value to a single string
1519 sub part_cache_type_t_to_string {
1522 for my $k (keys %_part_cache_type_t_VALUES) {
1523 my $v = $_part_cache_type_t_VALUES{$k};
1525 #is this a matching flag?
1526 if ($enumval == $v) {
1531 #default, just return the number
1535 push @EXPORT_OK, qw($PART_CACHE_TYPE_NONE);
1536 push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_NONE);
1538 $_part_cache_type_t_VALUES{"PART_CACHE_TYPE_NONE"} = $PART_CACHE_TYPE_NONE;
1540 push @EXPORT_OK, qw($PART_CACHE_TYPE_DISK);
1541 push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_DISK);
1543 $_part_cache_type_t_VALUES{"PART_CACHE_TYPE_DISK"} = $PART_CACHE_TYPE_DISK;
1545 push @EXPORT_OK, qw($PART_CACHE_TYPE_MEMORY);
1546 push @{$EXPORT_TAGS{"part_cache_type_t"}}, qw($PART_CACHE_TYPE_MEMORY);
1548 $_part_cache_type_t_VALUES{"PART_CACHE_TYPE_MEMORY"} = $PART_CACHE_TYPE_MEMORY;
1550 #copy symbols in part_cache_type_t to getconf
1551 push @{$EXPORT_TAGS{"getconf"}}, @{$EXPORT_TAGS{"part_cache_type_t"}};
1553 push @EXPORT_OK, qw(getconf getconf_seen getconf_linenum
1554 getconf_byname getconf_byname_strs
1556 push @{$EXPORT_TAGS{"getconf"}}, qw(getconf getconf_seen getconf_linenum
1557 getconf_byname getconf_byname_strs
1560 push @EXPORT_OK, qw(lookup_tapetype tapetype_getconf tapetype_name
1561 tapetype_seen tapetype_seen);
1562 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_tapetype tapetype_getconf tapetype_name
1563 tapetype_seen tapetype_seen);
1565 push @EXPORT_OK, qw(lookup_dumptype dumptype_getconf dumptype_name
1566 dumptype_seen dumptype_seen);
1567 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_dumptype dumptype_getconf dumptype_name
1568 dumptype_seen dumptype_seen);
1570 push @EXPORT_OK, qw(lookup_interface interface_getconf interface_name
1571 interface_seen interface_seen);
1572 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_interface interface_getconf interface_name
1573 interface_seen interface_seen);
1575 push @EXPORT_OK, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
1576 getconf_holdingdisks
1577 holdingdisk_seen holdingdisk_seen);
1578 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_holdingdisk holdingdisk_getconf holdingdisk_name
1579 getconf_holdingdisks
1580 holdingdisk_seen holdingdisk_seen);
1582 push @EXPORT_OK, qw(lookup_application application_getconf application_name
1583 application_seen application_seen);
1584 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_application application_getconf application_name
1585 application_seen application_seen);
1587 push @EXPORT_OK, qw(lookup_pp_script pp_script_getconf pp_script_name
1588 pp_script_seen pp_script_seen);
1589 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_pp_script pp_script_getconf pp_script_name
1590 pp_script_seen pp_script_seen);
1592 push @EXPORT_OK, qw(lookup_device_config device_config_getconf device_config_name
1593 device_config_seen device_config_seen);
1594 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_device_config device_config_getconf device_config_name
1595 device_config_seen device_config_seen);
1597 push @EXPORT_OK, qw(lookup_changer_config changer_config_getconf changer_config_name
1598 changer_config_seen changer_config_seen);
1599 push @{$EXPORT_TAGS{"getconf"}}, qw(lookup_changer_config changer_config_getconf changer_config_name
1600 changer_config_seen changer_config_seen);
1602 # only those keys with a value of '1' should be shown; the
1603 # others are deprecated
1604 our %subsection_names = (
1611 "application-tool" => 0,
1617 push @EXPORT_OK, qw(%subsection_names);
1618 push @{$EXPORT_TAGS{"getconf"}}, qw(%subsection_names);
1620 push @EXPORT_OK, qw(getconf_unit_divisor
1622 $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover
1623 $debug_auth $debug_event $debug_holding $debug_protocol
1624 $debug_planner $debug_driver $debug_dumper $debug_chunker
1625 $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
1626 push @{$EXPORT_TAGS{"getconf"}}, qw(getconf_unit_divisor
1628 $debug_amandad $debug_recovery $debug_amidxtaped $debug_amindexd $debug_amrecover
1629 $debug_auth $debug_event $debug_holding $debug_protocol
1630 $debug_planner $debug_driver $debug_dumper $debug_chunker
1631 $debug_taper $debug_selfcheck $debug_sendsize $debug_sendbackup);
1633 push @EXPORT_OK, qw(cfgerr_level_t_to_string);
1634 push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw(cfgerr_level_t_to_string);
1636 my %_cfgerr_level_t_VALUES;
1637 #Convert an enum value to a single string
1638 sub cfgerr_level_t_to_string {
1641 for my $k (keys %_cfgerr_level_t_VALUES) {
1642 my $v = $_cfgerr_level_t_VALUES{$k};
1644 #is this a matching flag?
1645 if ($enumval == $v) {
1650 #default, just return the number
1654 push @EXPORT_OK, qw($CFGERR_OK);
1655 push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_OK);
1657 $_cfgerr_level_t_VALUES{"CFGERR_OK"} = $CFGERR_OK;
1659 push @EXPORT_OK, qw($CFGERR_WARNINGS);
1660 push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_WARNINGS);
1662 $_cfgerr_level_t_VALUES{"CFGERR_WARNINGS"} = $CFGERR_WARNINGS;
1664 push @EXPORT_OK, qw($CFGERR_ERRORS);
1665 push @{$EXPORT_TAGS{"cfgerr_level_t"}}, qw($CFGERR_ERRORS);
1667 $_cfgerr_level_t_VALUES{"CFGERR_ERRORS"} = $CFGERR_ERRORS;
1669 #copy symbols in cfgerr_level_t to init
1670 push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"cfgerr_level_t"}};
1672 push @EXPORT_OK, qw(config_init_flags_to_strings);
1673 push @{$EXPORT_TAGS{"config_init_flags"}}, qw(config_init_flags_to_strings);
1675 my %_config_init_flags_VALUES;
1676 #Convert a flag value to a list of names for flags that are set.
1677 sub config_init_flags_to_strings {
1681 for my $k (keys %_config_init_flags_VALUES) {
1682 my $v = $_config_init_flags_VALUES{$k};
1684 #is this a matching flag?
1685 if (($v == 0 && $flags == 0) || ($v != 0 && ($flags & $v) == $v)) {
1690 #by default, just return the number as a 1-element list
1698 push @EXPORT_OK, qw($CONFIG_INIT_EXPLICIT_NAME);
1699 push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_EXPLICIT_NAME);
1701 $_config_init_flags_VALUES{"CONFIG_INIT_EXPLICIT_NAME"} = $CONFIG_INIT_EXPLICIT_NAME;
1703 push @EXPORT_OK, qw($CONFIG_INIT_USE_CWD);
1704 push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_USE_CWD);
1706 $_config_init_flags_VALUES{"CONFIG_INIT_USE_CWD"} = $CONFIG_INIT_USE_CWD;
1708 push @EXPORT_OK, qw($CONFIG_INIT_CLIENT);
1709 push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_CLIENT);
1711 $_config_init_flags_VALUES{"CONFIG_INIT_CLIENT"} = $CONFIG_INIT_CLIENT;
1713 push @EXPORT_OK, qw($CONFIG_INIT_OVERLAY);
1714 push @{$EXPORT_TAGS{"config_init_flags"}}, qw($CONFIG_INIT_OVERLAY);
1716 $_config_init_flags_VALUES{"CONFIG_INIT_OVERLAY"} = $CONFIG_INIT_OVERLAY;
1718 #copy symbols in config_init_flags to init
1719 push @{$EXPORT_TAGS{"init"}}, @{$EXPORT_TAGS{"config_init_flags"}};
1721 push @EXPORT_OK, qw(config_init config_uninit get_config_options
1722 get_config_name get_config_dir get_config_filename
1723 config_print_errors config_clear_errors config_errors
1724 new_config_overrides free_config_overrides add_config_override
1725 add_config_override_opt set_config_overrides);
1726 push @{$EXPORT_TAGS{"init"}}, qw(config_init config_uninit get_config_options
1727 get_config_name get_config_dir get_config_filename
1728 config_print_errors config_clear_errors config_errors
1729 new_config_overrides free_config_overrides add_config_override
1730 add_config_override_opt set_config_overrides);
1732 push @EXPORT_OK, qw(dump_configuration config_dir_relative taperalgo2str find_multiplier);
1735 sub string_to_boolean {
1737 my $ret = C_string_to_boolean($str);
1738 return undef unless $ret >= 0;
1743 push @EXPORT_OK, qw(string_to_boolean);
1745 push @EXPORT_OK, qw(amandaify_property_name);