wait_for_storage_daemon_termination(jcr);
set_jcr_job_status(jcr, jcr->SDJobStatus);
- if (jcr->JobStatus == JS_Terminated) {
- migration_cleanup(jcr, jcr->JobStatus);
- return true;
+ if (jcr->JobStatus != JS_Terminated) {
+ return false;
}
- return false;
+ migration_cleanup(jcr, jcr->JobStatus);
+ if (prev_jcr) {
+ UAContext *ua = new_ua_context(jcr);
+ purge_files_from_job(ua, jcr->previous_jr.JobId);
+ free_ua_context(ua);
+ }
+ return true;
}
struct idpkt {
/* Get JobIds from regex'ed Job names */
const char *sql_jobids_from_job =
- "SELECT DISTINCT Job.JobId FROM Job,Pool"
+ "SELECT DISTINCT Job.JobId,Job.StartTime FROM Job,Pool"
" WHERE Job.Name='%s' AND Pool.Name='%s' AND Job.PoolId=Pool.PoolId"
" ORDER by Job.StartTime";
/* Get JobIds from regex'ed Client names */
const char *sql_jobids_from_client =
- "SELECT DISTINCT Job.JobId FROM Job,Pool"
+ "SELECT DISTINCT Job.JobId,Job.StartTime FROM Job,Pool"
" WHERE Client.Name='%s' AND Pool.Name='%s' AND Job.PoolId=Pool.PoolId"
" AND Job.ClientId=Client.ClientId "
" ORDER by Job.StartTime";
/* Get JobIds from regex'ed Volume names */
const char *sql_jobids_from_vol =
- "SELECT DISTINCT Job.JobId FROM Media,JobMedia,Job"
+ "SELECT DISTINCT Job.JobId,Job.StartTime FROM Media,JobMedia,Job"
" WHERE Media.VolumeName='%s' AND Media.MediaId=JobMedia.MediaId"
" AND JobMedia.JobId=Job.JobId"
" ORDER by Job.StartTime";
" ORDER BY LastWritten ASC LIMIT 1";
const char *sql_jobids_from_mediaid =
- "SELECT DISTINCT Job.JobId FROM JobMedia,Job"
+ "SELECT DISTINCT Job.JobId,Job.StartTime FROM JobMedia,Job"
" WHERE JobMedia.JobId=Job.JobId AND JobMedia.MediaId=%s"
" ORDER by Job.StartTime";