]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #5546 about incorrect level for job resumed
authorEric Bollengier <eric@baculasystems.com>
Wed, 30 Oct 2019 10:11:02 +0000 (11:11 +0100)
committerRadosław Korzeniewski <radekk@inteos.pl>
Sat, 14 Dec 2019 15:02:18 +0000 (16:02 +0100)
bacula/src/dird/dird_conf.c
bacula/src/dird/protos.h
bacula/src/dird/ua_run.c

index 60c62c0af7e3dd3c2254363844b8c4ec29ddc1ee..3baeb0bb1d73866af56b5342d97a4b56e1c55fd8 100644 (file)
@@ -811,6 +811,17 @@ char *CAT::display(POOLMEM *dst) {
    return dst;
 }
 
+const char *level_to_static_str(int level)
+{
+   char *ret = NULL;            /* If not found... */
+   for (int i=0; joblevels[i].level_name; i++) {
+      if (level == (int)joblevels[i].level) {
+         return joblevels[i].level_name;
+      }
+   }
+   return ret;
+}
+
 char *level_to_str(char *buf, int len, int level)
 {
    int i;
index d792a500f919d1a374664950ea91c4bc9b717908..2e0cae9c380b27933c4a304e3d7b4ff963326985 100644 (file)
@@ -84,6 +84,7 @@ extern bool despool_attributes_from_file(JCR *jcr, const char *file);
 extern void remove_dummy_jobmedia_records(JCR *jcr);
 
 /* dird_conf.c */
+extern const char *level_to_static_str(int level);
 extern char *level_to_str(char *buf, int len, int level);
 extern "C" char *job_code_callback_director(JCR *jcr, const char*, char *, int);
 
index 5e7954b9d6d78d32231f079ddea80c5c3287e06b..1cc48c271a7916021db0d5e5ec529816654f8035 100644 (file)
@@ -29,7 +29,8 @@ const char *get_command(int index);
 
 class run_ctx {
 public:
-   char *job_name, *level_name, *jid, *store_name, *pool_name;
+   const char *level_name;
+   char *job_name, *jid, *store_name, *pool_name;
    char *where, *fileset_name, *client_name, *bootstrap, *regexwhere;
    char *restore_client_name, *comment, *media_type, *next_pool_name;
    const char *replace;
@@ -595,6 +596,8 @@ static bool get_jobid_from_list(UAContext *ua, sellist &sl, run_ctx &rc)
    }
    Dmsg3(100, "Job=%s JobId=%d JobStatus=%c\n", rc.jr.Name, rc.jr.JobId,
          rc.jr.JobStatus);
+
+   rc.level_name = level_to_static_str(rc.jr.JobLevel);
    rc.job_name = rc.jr.Name;
 
    if (!get_job(ua, rc)) {