]> git.sur5r.net Git - bacula/bacula/commitdiff
Modify setJobStatus so cancel has same priority as fatal errors
authorKern Sibbald <kern@sibbald.com>
Wed, 22 Jul 2009 15:01:47 +0000 (15:01 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 22 Jul 2009 15:01:47 +0000 (15:01 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@9084 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/jcr.h
bacula/src/lib/jcr.c
bacula/technotes

index 9ddbf8bc362877625bb5546fe34e5c31a1aa7713..7a321672ffe06bde332215b1487604de9ead2023 100644 (file)
@@ -182,16 +182,22 @@ public:
    void destroy_mutex(void) {pthread_mutex_destroy(&mutex); };
    bool is_job_canceled() {return job_canceled(this); };
    int32_t get_JobType() { return m_JobType; };
+   int32_t getJobType() { return m_JobType; };
    int32_t get_JobLevel() { return m_JobLevel; };
+   int32_t getJobLevel() { return m_JobLevel; };
    bool no_client_used() {
       return (m_JobType == JT_MIGRATE || m_JobType == JT_COPY ||
               m_JobLevel == L_VIRTUAL_FULL);
    };
-   const char *get_OperationName();    /* in lib/jcr.c */
+   const char *get_OperationName();       /* in lib/jcr.c */
    const char *get_ActionName(bool past); /* in lib/jcr.c */
-   void set_JobLevel(int32_t JobLevel); /* in lib/jcr.c */
-   void set_JobType(int32_t JobType);  /* in lib/jcr.c */
-   bool JobReads();                    /* in lib/jcr.c */
+   void set_JobLevel(int32_t JobLevel);   /* in lib/jcr.c */
+   void setJobLevel(int32_t JobLevel);    /* in lib/jcr.c */
+   void set_JobType(int32_t JobType);     /* in lib/jcr.c */
+   void setJobType(int32_t JobType);      /* in lib/jcr.c */
+   void setJobStatus(int JobStatus);      /* in lib/jcr.c */
+   bool JobReads();                       /* in lib/jcr.c */
+   
 
    /* Global part of JCR common to all daemons */
    dlink link;                        /* JCR chain link */
index d599a94a149411fadb00856c4795f4ae3008103a..ed245a413d20fb90895b5dbf0e6cb29c104c2735 100644 (file)
@@ -739,10 +739,8 @@ static int get_status_priority(int JobStatus)
    switch (JobStatus) {
    case JS_ErrorTerminated:
    case JS_FatalError:
-      priority = 10;
-      break;
    case JS_Canceled:
-      priority = 9;
+      priority = 10;
       break;
    case JS_Error:
       priority = 8;
@@ -809,22 +807,28 @@ static void update_wait_time(JCR *jcr, int newJobStatus)
 
 void set_jcr_job_status(JCR *jcr, int JobStatus)
 {
+   jcr->setJobStatus(JobStatus);
+}
+
+void JCR::setJobStatus(int JobStatus)
+{
+   JCR *jcr = this;
    int priority, old_priority;
-   int oldJobStatus = jcr->JobStatus;
+   int oldJobStatus = JobStatus;
    priority = get_status_priority(JobStatus);
    old_priority = get_status_priority(oldJobStatus);
    
-   Dmsg2(800, "set_jcr_job_status(%s, %c)\n", jcr->Job, JobStatus);
+   Dmsg2(800, "set_jcr_job_status(%s, %c)\n", Job, JobStatus);
 
    /* Update wait_time depending on newJobStatus and oldJobStatus */
-   update_wait_time(jcr, JobStatus);
+   update_wait_time(this, JobStatus);
 
    /*
     * For a set of errors, ... keep the current status
     *   so it isn't lost. For all others, set it.
     */
-   Dmsg3(300, "jid=%u OnEntry JobStatus=%c set=%c\n", (uint32_t)jcr->JobId,
-         jcr->JobStatus, JobStatus);
+   Dmsg3(300, "jid=%u OnEntry JobStatus=%c set=%c\n", (uint32_t)JobId,
+         JobStatus, JobStatus);
    if (priority >= old_priority) {
       jcr->JobStatus = JobStatus;     /* replace with new priority */
    }
index aef271e0bc1ccb04e79e01a29e17689edff00124..8a261b8bd5380173b1870448668b7940c118b59d 100644 (file)
@@ -2,6 +2,9 @@
           
 General:
 
+21Jul09
+kes  Add setJobStatus method to JCR class.
+kes  Modify setJobStatus so cancel has same priority as fatal errors
 20Jul09
 kes  Fix Solaris compiler warning in signal.c