]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Create plugin instance only when FD job starts.
authorKern Sibbald <kern@sibbald.com>
Mon, 29 Sep 2008 07:55:36 +0000 (07:55 +0000)
committerKern Sibbald <kern@sibbald.com>
Mon, 29 Sep 2008 07:55:36 +0000 (07:55 +0000)
kes  Add new FD plugin event: bEventCancelCommand when
     a cancel command is issued to the FD

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7661 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/LICENSE
bacula/src/filed/fd_plugins.h
bacula/src/filed/job.c
bacula/src/lib/jcr.c
bacula/src/version.h
bacula/technotes-2.5

index 3588de3fd2584267e5fe6ed8c78bc992877582c9..1e49d53535d83ee55b7cc11c63ea3095ae4eb3d1 100644 (file)
@@ -5,7 +5,7 @@ the copyright was transferred to the Free Software Foundation Europe
 on 15 November 2006.
 
 Trademark:
-The name Bacula is a registered trademark.
+The name Bacula is a registered trademark of Kern Sibbald.
 
 ===================================
 
index 0370ee29e739f62a0fcc5b7e87741556babb4913..0ca7b878b3d4de48e4eac807cc432ba50703c90e 100644 (file)
@@ -159,6 +159,7 @@ typedef enum {
   bEventRestoreCommand  = 10,
   bEventLevel           = 11,
   bEventSince           = 12,
+  bEventCancelCommand   = 13,
 } bEventType;
 
 typedef struct s_bEvent {
index 98f7318184d67991cae34f37bbc9204bec65d9a2..b85b148fe3c543915f5f7dae476e1e216a462449 100644 (file)
@@ -214,7 +214,6 @@ void *handle_client_request(void *dirp)
    jcr->last_fname = get_pool_memory(PM_FNAME);
    jcr->last_fname[0] = 0;
    jcr->client_name = get_memory(strlen(my_name) + 1);
-   new_plugins(jcr);                  /* instantiate plugins for this jcr */
    pm_strcpy(jcr->client_name, my_name);
    jcr->crypto.pki_sign = me->pki_sign;
    jcr->crypto.pki_encrypt = me->pki_encrypt;
@@ -227,7 +226,6 @@ void *handle_client_request(void *dirp)
    /**********FIXME******* add command handler error code */
 
    for (quit=false; !quit;) {
-
       /* Read command */
       if (dir->recv() < 0) {
          break;               /* connection terminated */
@@ -398,6 +396,7 @@ static int cancel_cmd(JCR *jcr)
             cjcr->store_bsock->set_terminated();
             pthread_kill(cjcr->my_thread_id, TIMEOUT_SIGNAL);
          }
+         generate_plugin_event(cjcr, bEventCancelCommand, NULL);
          set_jcr_job_status(cjcr, JS_Canceled);
          free_jcr(cjcr);
          dir->fsend(_("2001 Job %s marked to be canceled.\n"), Job);
@@ -471,6 +470,7 @@ static int job_cmd(JCR *jcr)
    free_pool_memory(sd_auth_key);
    Dmsg2(120, "JobId=%d Auth=%s\n", jcr->JobId, jcr->sd_auth_key);
    Mmsg(jcr->errmsg, "JobId=%d Job=%s", jcr->JobId, jcr->Job);
+   new_plugins(jcr);                  /* instantiate plugins for this jcr */
    generate_plugin_event(jcr, bEventJobStart, (void *)jcr->errmsg);
    return dir->fsend(OKjob, VERSION, LSMDATE, HOST_OS, DISTNAME, DISTVER);
 }
index ca961db1cac0b7e654e8e14da2362c66071f2fe1..4c9c0a305459245bc0323732f2e09c61ed7b5304 100644 (file)
@@ -670,7 +670,9 @@ JCR *get_jcr_by_full_name(char *Job)
 
 void set_jcr_job_status(JCR *jcr, int JobStatus)
 {
-    bool set_waittime=false;
+    bool set_waittime = false;
+    int oldJobStatus = jcr->JobStatus;
+
     Dmsg2(800, "set_jcr_job_status(%s, %c)\n", jcr->Job, JobStatus);
     /* if wait state is new, we keep current time for watchdog MaxWaitTime */
     switch (JobStatus) {
@@ -732,8 +734,11 @@ void set_jcr_job_status(JCR *jcr, int JobStatus)
          jcr->wait_time = time(NULL);
       }
    }
-   Dmsg3(200, "jid=%u leave set_jcr_job_status=%c set=%c\n", (uint32_t)jcr->JobId,
-         jcr->JobStatus, JobStatus);
+   if (oldJobStatus != jcr->JobStatus) {
+      Dmsg3(200, "jid=%u leave set_old_job_status=%c new_set=%c\n", (uint32_t)jcr->JobId,
+         oldJobStatus, JobStatus);
+//    generate_plugin_event(jcr, bEventStatusChange, NULL);
+   }
 }
 
 #ifdef TRACE_JCR_CHAIN
index 152c07dfe021a180df355d601f352e2caae99635..9bc38c7037e090dcfc7ccfa63db8dae483228e1a 100644 (file)
@@ -3,9 +3,9 @@
  */
 
 #undef  VERSION
-#define VERSION "2.5.7"
-#define BDATE   "28 September 2008"
-#define LSMDATE "28Sep08"
+#define VERSION "2.5.8"
+#define BDATE   "29 September 2008"
+#define LSMDATE "29Sep08"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2008"       /* year for copyright messages in progs */
index d7d52e4d7abb4c157f082218bd5c2b02553ba1ff..65c67b424fda3dc2009abc4d8db7261adfd1cbe3 100644 (file)
@@ -17,6 +17,10 @@ dbdriver
 remove reader/writer in FOPTS????
 
 General:
+29Sep08
+kes  Create plugin instance only when FD job starts.
+kes  Add new FD plugin event: bEventCancelCommand when
+     a cancel command is issued to the FD.
 28Sep08
 kes  Add cmd_plugin flag to jcr so we can globally know if a 
      command plugin is running.