]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Add estimate accurate=yes/no
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 2 Jul 2009 12:31:15 +0000 (12:31 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 2 Jul 2009 12:31:15 +0000 (12:31 +0000)
ebl  Change the code to check jcr->accurate and not jcr->job->accurate

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

bacula/src/dird/fd_cmds.c
bacula/src/dird/ua_cmds.c
bacula/technotes

index 762850e5be00aa8890e160d95343006cd39a034c..caced8435d9ae11c0628508cc28faba6dd89baf9 100644 (file)
@@ -291,7 +291,7 @@ static void send_since_time(JCR *jcr)
 bool send_level_command(JCR *jcr)
 {
    BSOCK   *fd = jcr->file_bsock;
-   const char *accurate = jcr->job->accurate?"accurate_":"";
+   const char *accurate = jcr->accurate?"accurate_":"";
    const char *not_accurate = "";
    /*
     * Send Level command to File daemon
index 2e5defaa99f08828645a544c1b0214a024445225..0ac8ba0fb6b860cd51997ae2a720bf193f7124a2 100644 (file)
@@ -1137,6 +1137,7 @@ static int estimate_cmd(UAContext *ua, const char *cmd)
    int listing = 0;
    char since[MAXSTRING];
    JCR *jcr = ua->jcr;
+   int accurate=-1;
 
    jcr->set_JobLevel(L_FULL);
    for (int i=1; i<ua->argc; i++) {
@@ -1204,6 +1205,12 @@ static int estimate_cmd(UAContext *ua, const char *cmd)
            return 1;
          }
       }
+      if (strcasecmp(ua->argk[i], NT_("accurate")) == 0) {
+         if (!is_yesno(ua->argv[i], &accurate)) {
+            ua->error_msg(_("Invalid value for accurate. " 
+                            "It must be yes or no.\n"));
+         }
+      }
    }
    if (!job && !(client && fileset)) {
       if (!(job = select_job_resource(ua))) {
@@ -1270,6 +1277,13 @@ static int estimate_cmd(UAContext *ua, const char *cmd)
       goto bail_out;
    }
 
+   /* The level string change if accurate mode is enabled */
+   if (accurate >= 0) {
+      jcr->accurate = accurate;
+   } else {
+      jcr->accurate = job->accurate;
+   }
+
    if (!send_level_command(jcr)) {
       goto bail_out;
    }
@@ -1278,7 +1292,7 @@ static int estimate_cmd(UAContext *ua, const char *cmd)
     * If the job is in accurate mode, we send the list of
     * all files to FD.
     */
-   jcr->accurate = job->accurate;
+   Dmsg1(40, "estimate accurate=%i\n", jcr->accurate);
    if (!send_accurate_current_files(jcr)) {
       goto bail_out;
    }
index f229aecb4d32eab95fb87fc39aee9699b44fa101..7588eff4921324a64e961c924a3ec3e7b0fd7d09 100644 (file)
@@ -5,6 +5,8 @@ General:
 02Jul09
 kes  Another fix for bug #1311 to get the correct last_full_time
 ebl  Make estimate command accurate compatible. Should fix #1318
+ebl  Add estimate accurate=yes/no
+ebl  Change the code to check jcr->accurate and not jcr->job->accurate
 01Jul09
 kes  Fix bug #1317 Allow duplicate jobs = no does not work
 kes  Eliminate double job report when do_xxx_init() returns failure