]> git.sur5r.net Git - bacula/bacula/commitdiff
Allow to verify any job specified in argument
authorEric Bollengier <eric@eb.homelinux.org>
Sat, 4 Sep 2010 12:35:07 +0000 (14:35 +0200)
committerEric Bollengier <eric@eb.homelinux.org>
Tue, 7 Sep 2010 19:07:41 +0000 (21:07 +0200)
bacula/src/dird/ua_run.c
bacula/src/dird/verify.c

index 42f7182319f0bdc61537d9dc0a6211b2defce8b6..20923bd521bedeb25d8deac1435cea31c08271ee 100644 (file)
@@ -546,7 +546,7 @@ static bool reset_restore_context(UAContext *ua, JCR *jcr, run_ctx &rc)
       rc.level_name = NULL;
    }
    if (rc.jid) {
-      /* Note, this is also MigrateJobId */
+      /* Note, this is also MigrateJobId and a VerifyJobId */
       jcr->RestoreJobId = str_to_int64(rc.jid);
       rc.jid = 0;
    }
index b3a27dc36484f9bdaed06674cf78d24429f15a9d..92b29edd8179cb58df31ec3ce875798b5bc7a206 100644 (file)
@@ -130,24 +130,32 @@ bool do_verify(JCR *jcr)
       if (jcr->verify_job &&
           (jcr->getJobLevel() == L_VERIFY_VOLUME_TO_CATALOG ||
            jcr->getJobLevel() == L_VERIFY_DISK_TO_CATALOG)) {
-         Name = jcr->verify_job->name();  
+         Name = jcr->verify_job->name();
       } else {
          Name = NULL;
       }
       Dmsg1(100, "find last jobid for: %s\n", NPRT(Name));
-      if (!db_find_last_jobid(jcr, jcr->db, Name, &jr)) {
-         if (jcr->getJobLevel() == L_VERIFY_CATALOG) {
-            Jmsg(jcr, M_FATAL, 0, _(
-                 "Unable to find JobId of previous InitCatalog Job.\n"
-                 "Please run a Verify with Level=InitCatalog before\n"
-                 "running the current Job.\n"));
-          } else {
-            Jmsg(jcr, M_FATAL, 0, _(
-                 "Unable to find JobId of previous Job for this client.\n"));
+
+      /* see if user supplied a jobid= as run argument or from menu */
+      if (jcr->RestoreJobId) {
+         verify_jobid = jcr->RestoreJobId;
+         Dmsg1(100, "Supplied jobid=%d\n", verify_jobid);
+
+      } else {
+         if (!db_find_last_jobid(jcr, jcr->db, Name, &jr)) {
+            if (jcr->getJobLevel() == L_VERIFY_CATALOG) {
+               Jmsg(jcr, M_FATAL, 0, _(
+                       "Unable to find JobId of previous InitCatalog Job.\n"
+                       "Please run a Verify with Level=InitCatalog before\n"
+                       "running the current Job.\n"));
+            } else {
+               Jmsg(jcr, M_FATAL, 0, _(
+                       "Unable to find JobId of previous Job for this client.\n"));
+            }
+            return false;
          }
-         return false;
+         verify_jobid = jr.JobId;
       }
-      verify_jobid = jr.JobId;
       Dmsg1(100, "Last full jobid=%d\n", verify_jobid);
    }
    /*