- Figure out how to use ssh or stunnel to protect Bacula communications.
For 1.32:
-- Specify list of files to restore
- Enhance "update slots" to include a "scan" feature
scan 1; scan 1-5; scan 1,2,4 ... to update the catalog
- Allow a slot or range of slots on the label barcodes command.
volume.
- Implement List Volume Job=xxx or List scheduled volumes or Status Director
- Make | and < work on FD side.
+- Take a careful look a the Basic recycling algorithm. When Bacula
+ chooses, the order should be:
+ - Look for Append
+ - Look for Recycle or Purged
+ - Prune volumes
+ - Look for purged
+ Instead of using lowest media Id, find the least recently used
+ volume.
+
+ When the tape is mounted and Bacula requests the status
+ - Do everything possible to use it.
+
+ Define a "available" status, which is the currently mounted
+ Volume and all volumes that are currently in the autochanger.
+
For 1.33
- Why can't SQL do the filename sort for restore?
Look at src/host.h
- Use repositioning at the beginning of the tape.
- Do full check the command line args in update (e.g. VolStatus ...).
+- Specify list of files to restore
static void insert_one_file(UAContext *ua, RESTORE_CTX *rx)
{
+ FILE *ffd;
+ char file[5000];
char *p = ua->cmd;
+ int line = 0;
+
switch (*p) {
case '<':
- FILE *ffd;
- char file[5000];
p++;
if ((ffd = fopen(p, "r")) == NULL) {
bsendmsg(ua, _("Cannot open file %s: ERR=%s\n"),
break;
}
while (fgets(file, sizeof(file), ffd)) {
- insert_file_into_findex_list(ua, rx, file);
+ line++;
+ if (!insert_file_into_findex_list(ua, rx, file)) {
+ bsendmsg(ua, _("Error occurred on line %d of %s\n"), line, p);
+ }
}
fclose(ffd);
break;
return 0; /* duplicate id */
}
bstrncpy(rx->last_jobid, row[0], sizeof(rx->last_jobid));
- pm_strcat(&rx->JobIds, ",");
+ if (rx->JobIds[0] != 0) {
+ pm_strcat(&rx->JobIds, ",");
+ }
pm_strcat(&rx->JobIds, row[0]);
return 0;
}