For 1.32c
For 1.33
+- Automatically create pools, but instead of looking for what
+ in in Job records, walk through the pool resources.
- 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
db_lock(mdb);
if (jr->Level == L_VERIFY_CATALOG) {
Mmsg(&mdb->cmd,
-"SELECT JobId FROM Job WHERE Type='V' AND Level='%c' AND Name='%s' AND "
+"SELECT JobId FROM Job WHERE Type='V' AND Level='%c' AND "
+" JobStatus='T' AND Name='%s' AND "
"ClientId=%u ORDER BY StartTime DESC LIMIT 1",
L_VERIFY_INIT, jr->Name, jr->ClientId);
} else if (jr->Level == L_VERIFY_VOLUME_TO_CATALOG ||
"SELECT JobId FROM Job WHERE Type='B' AND JobStatus='T' AND "
"Name='%s' ORDER BY StartTime DESC LIMIT 1", Name);
} else {
- Mmsg(&mdb->cmd,
-"SELECT JobId FROM Job WHERE Type='B' AND "
+ Mmsg(&mdb->cmd,
+"SELECT JobId FROM Job WHERE Type='B' AND JobStatus='T' AND "
"ClientId=%u ORDER BY StartTime DESC LIMIT 1", jr->ClientId);
}
} else {
JobId_t verify_jobid = 0;
int stat;
+ memset(&verify_jr, 0, sizeof(verify_jr));
+ if (!jcr->verify_jr) {
+ jcr->verify_jr = &verify_jr;
+ }
if (!get_or_create_client_record(jcr)) {
goto bail_out;
}
if (jcr->JobLevel == L_VERIFY_CATALOG ||
jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG ||
jcr->JobLevel == L_VERIFY_DISK_TO_CATALOG) {
- memset(&verify_jr, 0, sizeof(verify_jr));
verify_jr.JobId = verify_jobid;
if (!db_get_job_record(jcr, jcr->db, &verify_jr)) {
Jmsg(jcr, M_FATAL, 0, _("Could not get job record for previous Job. ERR=%s"),
jcr->fileset = jcr->job->verify_job->fileset;
}
Dmsg2(100, "ClientId=%u JobLevel=%c\n", verify_jr.ClientId, jcr->JobLevel);
- jcr->verify_jr = &verify_jr;
/*
* OK, now connect to the File daemon
jobstatus_to_ascii(jcr->FDJobStatus, fd_term_msg, sizeof(fd_term_msg));
if (jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG) {
- jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg));
+ jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg));
Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n\
JobId: %d\n\
Job: %s\n\
*/
void jobstatus_to_ascii(int JobStatus, char *msg, int maxlen)
{
- char *termstat, jstat[2];
+ char *termstat;
+ char buf[100];
switch (JobStatus) {
case JS_Terminated:
termstat = _("Verify differences");
break;
default:
- jstat[0] = last_job.JobStatus;
- jstat[1] = 0;
- termstat = jstat;
+ if (JobStatus == 0) {
+ buf[0] = 0;
+ } else {
+ bsnprintf(buf, sizeof(buf), _("Unknown Job termination status=%d"), JobStatus);
+ }
+ termstat = buf;
break;
}
bstrncpy(msg, termstat, maxlen);