2003-10-24 Version 1.32c 24Oct03 Beta
24Oct03
+- Eliminate ua_retention.c that was not used.
+- Improve error message when closing brace missing in conf file.
+- More doc updates.
+- Eliminate Don't forget to mount if it is a disk file.
+- Fix Gnome2 scrolling and blank screen problems.
+- Eliminate multiple JobIds in restore selection list.
- Fix non-portable varargs code in var.c
- Make doc fixes/changes suggested by Dan Languille
23Oct03
Release Notes for Bacula 1.32c
- Bacula code: Total files = 259 Total lines = 78,336 (*.h *.c *.in)
+ Bacula code: Total files = 259 Total lines = 77,957 (*.h *.c *.in)
Most Significant Changes since 1.32b
-- Implemented a RunAfterFailedJob record in the Job
- resource.
+- Implemented a RunAfterFailedJob record in the Job resource.
- Implemented "delete job" command in the Console.
-- Gnome 2.0 console compiles and works (but still has
- certain scrolling problems). If your text window suddenly
- goes blank, just left click on it and the text will
- come back.
+- Gnome 2.0 console compiles and works.
- Implemented VerifyJob record in the Job resource
that tells Verify which job to verify (JobId not required)
- First cut Verify Disk to Catalog
-- Fix "status dir" to examine all run commands in sched.
+- Fix "status dir" to examine all run commands in Schedule.
- Close unused file descriptors in bpipe.c
- There is now a patch for FreeBSD 4.8 pthreads that
fixes the problems of data loss at the end of a tape.
For 1.33 Testing/Documentation:
- bextract is sending everything to the log file ****FIXME****
-- Document to start higher priorty jobs before lower ones.
-- suppress "Do not forget to mount the drive!!!" if error
- Document new records in Director. SDAddress SDDeviceName, SDPassword.
FDPassword, FDAddress, DBAddress, DBPort, DBPassword.
- Document new Include/Exclude ...
- Add test of exclusion, test multiple Include {} statements.
- Add counter variable test.
- Document ln -sf /usr/lib/libncurses.so /usr/lib/libtermcap.so
- and install the esound-dev package for compiling Console on
- SuSE.
+ and install the esound-dev package for compiling Console on SuSE.
- Add an example of using a FIFO in dirdconf.wml
- Add an item to the FAQ about running jobs in different timezones.
For 1.32c
For 1.33
+- Check and double check tree code, why does it take so long?
+- Upgrade to cygwin 1.5
- Fix time difference problem between Bacula and Client
so that everything is in GMT.
- Finish implementation of Verify=DiskToCatalog
By the way can bacula automatically "move" an empry/purged volume say
in the "short" pool to the "long" pool if this pool runs out of volume
space?
-- Implement a move Volume from one pool to another.
- Either restrict the characters in a name, or fix the problem
emailing with names containing / (smtp command line breaks).
-- Eliminate ua_retention.c (retentioncmd) if possible.
- Eliminate orphaned jobs: dbcheck, normal pruning, delete job command.
Hm. Well, there are the remaining orphaned job records:
- Walk through the Pool records rather than the Job records
in dird.c to create/update pools.
- What to do about "list files job=xxx".
-- Implement delete Job.
-- Document need to put LabelFormat in quotes.
- Implement scan: for every slot it finds, zero the slot of
Volume other volume having that slot.
- When job rescheduled, status gives is waiting for Client Rufus
rather than lowest MediaId.
- Available volumes for autochangers (see patrick@baanboard.com 3 Sep 03
and 4 Sep) scan slots.
-- Upgrade to cygwin 1.5
- Get MySQL 3.23.58
- Get and test MySQL 4.0
- Do a complete audit of all pthreads_mutex, cond, ... to ensure that
- Make things like list where a file is saved case independent for
Windows.
- Edit the Client/Storage name into authentication failure messages.
-- Implement job in VerifyToCatalog
- Implement migrate
- Implement a PostgreSQL driver.
- Bacula needs to propagate SD errors.
- Document update volume pool and other command line keywords.
- Add VerifyJob to "run" summary (yes/mod/no) prompt.
- For listing, eliminate multiple JobIds in restore Jobs listing.
+- Document to start higher priorty jobs before lower ones.
+- suppress "Do not forget to mount the drive!!!" if error
+- Change error message when closing brace left off ...
+- Implement a move Volume from one pool to another.
+- Implement delete Job.
+- Document need to put LabelFormat in quotes.
+- Implement job in VerifyToCatalog
+- Eliminate ua_retention.c (retentioncmd) if possible.
recycle.c restore.c run_conf.c \
scheduler.c sql_cmds.c \
ua_cmds.c ua_dotcmds.c \
- ua_query.c ua_retention.c \
+ ua_query.c \
ua_input.c ua_label.c ua_output.c ua_prune.c \
ua_purge.c ua_restore.c ua_run.c \
ua_select.c ua_server.c \
recycle.o restore.o run_conf.o \
scheduler.o sql_cmds.o \
ua_cmds.o ua_dotcmds.o \
- ua_query.o ua_retention.o \
+ ua_query.o \
ua_input.o ua_label.o ua_output.o ua_prune.o \
ua_purge.o ua_restore.o ua_run.o \
ua_select.o ua_server.o \
char dev_name[MAX_NAME_LENGTH];
MEDIA_DBR mr, omr;
POOL_DBR pr;
+ bool print_reminder = true;
int ok = FALSE;
- int mounted = FALSE;
int i;
bool media_record_exists = false;
static char *barcode_keyword[] = {
/* Here we can get
* 3001 OK mount. Device=xxx or
* 3001 Mounted Volume vvvv
+ * 3906 is cannot mount non-tape
+ * So for those, no need to print a reminder
*/
- mounted = strncmp(sd->msg, "3001 ", 5) == 0;
+ if (strncmp(sd->msg, "3001 ", 5) == 0 ||
+ strncmp(sd->msg, "3906 ", 5) == 0) {
+ print_reminder = false;
+ }
}
}
}
- if (!mounted) {
+ if (!print_reminder) {
bsendmsg(ua, _("Do not forget to mount the drive!!!\n"));
}
bnet_sig(sd, BNET_TERMINATE);
if (i >= 0) {
Dmsg2(150, "level=%d id=%s\n", level, lc->str);
Dmsg1(150, "Keyword = %s\n", lc->str);
- scan_err1(lc, "Keyword \"%s\" not permitted in this resource", lc->str);
+ scan_err1(lc, "Keyword \"%s\" not permitted in this resource.\n"
+ "Perhaps you left the trailing brace off of the previous resource.", lc->str);
/* NOT REACHED */
}
break;
label_volume_if_ok(jcr, dev, oldname, newname, poolname, slot, relabel);
} else if (dev->state & ST_READ || dev->num_writers) {
if (dev->state & ST_READ) {
- bnet_fsend(dir, _("3901 Device %s is busy with 1 reader.\n"),
+ bnet_fsend(dir, _("3911 Device %s is busy with 1 reader.\n"),
dev_name(dev));
} else {
- bnet_fsend(dir, _("3902 Device %s is busy with %d writer(s).\n"),
+ bnet_fsend(dir, _("3912 Device %s is busy with %d writer(s).\n"),
dev_name(dev), dev->num_writers);
}
} else { /* device not being used */
}
} else {
pm_strcpy(&jcr->errmsg, dir->msg);
- bnet_fsend(dir, _("3906 Error scanning mount command: %s\n"), jcr->errmsg);
+ bnet_fsend(dir, _("3909 Error scanning mount command: %s\n"), jcr->errmsg);
}
free_memory(dev_name);
bnet_sig(dir, BNET_EOD);
}
} else { /* error on scanf */
pm_strcpy(&jcr->errmsg, dir->msg);
- bnet_fsend(dir, _("3907 Error scanning autocharger list command: %s\n"),
+ bnet_fsend(dir, _("3908 Error scanning autocharger list command: %s\n"),
jcr->errmsg);
}
free_memory(devname);