From da9832df03851140993eb9e9b5c469aa217ea726 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Sat, 9 Dec 2006 13:54:30 +0000 Subject: [PATCH] ebl Fix runscript to always execute command after all job type. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3776 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/dird/admin.c | 3 +-- bacula/src/dird/backup.c | 4 +--- bacula/src/dird/job.c | 11 ++++++++--- bacula/src/dird/migrate.c | 7 ++----- bacula/src/dird/protos.h | 1 + bacula/src/dird/restore.c | 5 +---- bacula/src/dird/verify.c | 5 ++--- bacula/technotes-1.39 | 2 ++ 8 files changed, 18 insertions(+), 20 deletions(-) diff --git a/bacula/src/dird/admin.c b/bacula/src/dird/admin.c index f6a46b8a95..5ccbb80dc5 100644 --- a/bacula/src/dird/admin.c +++ b/bacula/src/dird/admin.c @@ -82,9 +82,8 @@ void admin_cleanup(JCR *jcr, int TermCode) Dmsg0(100, "Enter backup_cleanup()\n"); memset(&mr, 0, sizeof(mr)); - set_jcr_job_status(jcr, TermCode); - update_job_end_record(jcr); /* update database */ + update_job_end(jcr, TermCode); if (!db_get_job_record(jcr, jcr->db, &jcr->jr)) { Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), diff --git a/bacula/src/dird/backup.c b/bacula/src/dird/backup.c index 4cde534a67..8df126a9f0 100644 --- a/bacula/src/dird/backup.c +++ b/bacula/src/dird/backup.c @@ -341,12 +341,10 @@ void backup_cleanup(JCR *jcr, int TermCode) utime_t RunTime; Dmsg2(100, "Enter backup_cleanup %d %c\n", TermCode, TermCode); - dequeue_messages(jcr); /* display any queued messages */ memset(&mr, 0, sizeof(mr)); memset(&cr, 0, sizeof(cr)); - set_jcr_job_status(jcr, TermCode); - update_job_end_record(jcr); /* update database */ + update_job_end(jcr, TermCode); if (!db_get_job_record(jcr, jcr->db, &jcr->jr)) { Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), diff --git a/bacula/src/dird/job.c b/bacula/src/dird/job.c index 0301534d9e..028c437dff 100644 --- a/bacula/src/dird/job.c +++ b/bacula/src/dird/job.c @@ -219,6 +219,13 @@ bail_out: return false; } +void update_job_end(JCR *jcr, int TermCode) +{ + dequeue_messages(jcr); /* display any queued messages */ + set_jcr_job_status(jcr, TermCode); + run_scripts(jcr, jcr->job->RunScripts, "AfterJob"); + update_job_end_record(jcr); +} /* * This is the engine called by jobq.c:jobq_add() when we were pulled @@ -259,7 +266,7 @@ static void *job_thread(void *arg) run_scripts(jcr, jcr->job->RunScripts, "BeforeJob"); if (job_canceled(jcr)) { - update_job_end_record(jcr); + update_job_end(jcr, jcr->JobStatus); } else { /* @@ -322,8 +329,6 @@ static void *job_thread(void *arg) break; } - run_scripts(jcr, jcr->job->RunScripts, "AfterJob"); - /* Send off any queued messages */ if (jcr->msg_queue && jcr->msg_queue->size() > 0) { dequeue_messages(jcr); diff --git a/bacula/src/dird/migrate.c b/bacula/src/dird/migrate.c index bb6e46d4df..ee827237f1 100644 --- a/bacula/src/dird/migrate.c +++ b/bacula/src/dird/migrate.c @@ -998,10 +998,8 @@ void migration_cleanup(JCR *jcr, int TermCode) POOL_MEM query(PM_MESSAGE); Dmsg2(100, "Enter migrate_cleanup %d %c\n", TermCode, TermCode); - dequeue_messages(jcr); /* display any queued messages */ + update_job_end(jcr, TermCode); memset(&mr, 0, sizeof(mr)); - set_jcr_job_status(jcr, TermCode); - update_job_end_record(jcr); /* update database */ /* * Check if we actually did something. @@ -1015,8 +1013,7 @@ void migration_cleanup(JCR *jcr, int TermCode) mig_jcr->jr.RealEndTime = 0; mig_jcr->jr.PriorJobId = jcr->previous_jr.JobId; - set_jcr_job_status(mig_jcr, TermCode); - update_job_end_record(mig_jcr); + update_job_end(mig_jcr, TermCode); /* Update final items to set them to the previous job's values */ Mmsg(query, "UPDATE Job SET StartTime='%s',EndTime='%s'," diff --git a/bacula/src/dird/protos.h b/bacula/src/dird/protos.h index ac06432e7b..ee7a4bd93c 100644 --- a/bacula/src/dird/protos.h +++ b/bacula/src/dird/protos.h @@ -113,6 +113,7 @@ extern JobId_t run_job(JCR *jcr); extern bool cancel_job(UAContext *ua, JCR *jcr); extern void get_job_storage(USTORE *store, JOB *job, RUN *run); extern void init_jcr_job_record(JCR *jcr); +extern void update_job_end(JCR *jcr, int TermCode); extern void copy_rwstorage(JCR *jcr, alist *storage, const char *where); extern void set_rwstorage(JCR *jcr, USTORE *store); extern void free_rwstorage(JCR *jcr); diff --git a/bacula/src/dird/restore.c b/bacula/src/dird/restore.c index e0ed74cb06..6f4057eba0 100644 --- a/bacula/src/dird/restore.c +++ b/bacula/src/dird/restore.c @@ -226,16 +226,13 @@ void restore_cleanup(JCR *jcr, int TermCode) double kbps; Dmsg0(20, "In restore_cleanup\n"); - dequeue_messages(jcr); /* display any queued messages */ - set_jcr_job_status(jcr, TermCode); + update_job_end(jcr, TermCode); if (jcr->unlink_bsr && jcr->RestoreBootstrap) { unlink(jcr->RestoreBootstrap); jcr->unlink_bsr = false; } - update_job_end_record(jcr); - switch (TermCode) { case JS_Terminated: if (jcr->ExpectedFiles > jcr->jr.JobFiles) { diff --git a/bacula/src/dird/verify.c b/bacula/src/dird/verify.c index bffc003766..0997fb6fb4 100644 --- a/bacula/src/dird/verify.c +++ b/bacula/src/dird/verify.c @@ -349,7 +349,6 @@ void verify_cleanup(JCR *jcr, int TermCode) const char *Name; // Dmsg1(100, "Enter verify_cleanup() TermCod=%d\n", TermCode); - dequeue_messages(jcr); /* display any queued messages */ Dmsg3(900, "JobLevel=%c Expected=%u JobFiles=%u\n", jcr->JobLevel, jcr->ExpectedFiles, jcr->JobFiles); @@ -365,9 +364,9 @@ void verify_cleanup(JCR *jcr, int TermCode) } JobId = jcr->jr.JobId; - set_jcr_job_status(jcr, TermCode); - update_job_end_record(jcr); + update_job_end(jcr, TermCode); + if (jcr->unlink_bsr && jcr->RestoreBootstrap) { unlink(jcr->RestoreBootstrap); jcr->unlink_bsr = false; diff --git a/bacula/technotes-1.39 b/bacula/technotes-1.39 index a79fce0f21..02dec132c5 100644 --- a/bacula/technotes-1.39 +++ b/bacula/technotes-1.39 @@ -1,6 +1,8 @@ Technical notes on version 1.39 General: +09Dec06 +ebl Fix runscript to always execute command after all job type. 08Dec06 kes Mark build-depkgs-mingw3 executable in configure process. kes Update autoconf/config.h.in to include LOCALEDIR -- 2.39.5