]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #7739 About deleting running jobs
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Fri, 4 Jun 2021 11:47:43 +0000 (13:47 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:02 +0000 (09:03 +0100)
bacula/src/dird/ua_cmds.c

index bd1523988a8848f59e701761a263932f74bb66c7..050771b5e0347fc1990510d6a41a60cdaeb82643 100644 (file)
@@ -2181,10 +2181,24 @@ static void delete_job(UAContext *ua)
 static void do_job_delete(UAContext *ua, JobId_t JobId)
 {
    char ed1[50];
-
    edit_int64(JobId, ed1);
-   purge_jobs_from_catalog(ua, ed1);
-   ua->send_msg(_("JobId=%s and associated records deleted from the catalog.\n"), ed1);
+   bool skip_job = false;
+
+   JCR *jcr;
+   foreach_jcr(jcr) {
+      if (jcr->JobId == JobId) {
+         skip_job = true;
+         break;
+      }
+   }
+   endeach_jcr(jcr);
+
+   if (skip_job) {
+      ua->send_msg(_("Skipping JobId=%s, job is still running!\n"), ed1);
+   } else {
+      purge_jobs_from_catalog(ua, ed1);
+      ua->send_msg(_("JobId=%s and associated records deleted from the catalog.\n"), ed1);
+   }
 }