]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #7674 About more storage group messages changes
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Fri, 21 May 2021 10:14:39 +0000 (12:14 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:02 +0000 (09:03 +0100)
bacula/src/dird/backup.c
bacula/src/dird/job.c
bacula/src/dird/msgchan.c
bacula/src/jcr.h

index 14f68c566ac78bfb546611bfd351314a054b1c0b..6d20834fd815b375f948598771ba69288655de54 100644 (file)
@@ -526,14 +526,6 @@ bool do_backup(JCR *jcr)
             jcr->JobFiles, jcr->VolSessionId, jcr->VolSessionTime);
    }
 
-   /*
-    * Open a message channel connection with the Storage
-    * daemon. This is to let him know that our client
-    * will be contacting him for a backup  session.
-    *
-    */
-   Dmsg0(110, "Open connection with storage daemon\n");
-   jcr->setJobStatus(JS_WaitSD);
 
    if (jcr->store_mngr->get_wstore_list()->size() != 1) {
       wstore_group = true;
@@ -542,7 +534,7 @@ bool do_backup(JCR *jcr)
    if (wstore_group) {
       /* Apply policy for the write storage list */
       jcr->store_mngr->apply_policy(true);
-      Dmsg1(100, "Possible storage choices: %s\n", jcr->store_mngr->print_wlist());
+      Jmsg(jcr, M_INFO, 0, _("Possible storage choices: %s\n"), jcr->store_mngr->print_wlist());
       iter_no = 2;
    }
 
@@ -571,6 +563,7 @@ bool do_backup(JCR *jcr)
             jcr->store_bsock->close();
          }
 
+         jcr->setJobStatus(JS_WaitSD);
          /*
           * Start conversation with Storage daemon
           */
@@ -595,8 +588,8 @@ bool do_backup(JCR *jcr)
             Dmsg1(100, "Failed to start job on the storage: %s\n", jcr->store_mngr->get_wstore()->name());
             continue;
          } else {
-            Jmsg(jcr, M_INFO, 0, _("Selected storage: %s, StorageGroupPolicy: \"%s\"\n"),
-                  jcr->store_mngr->get_wstore()->name(), jcr->store_mngr->get_policy_name());
+            Jmsg(jcr, M_INFO, 0, _("Selected storage: %s, device: %s, StorageGroupPolicy: \"%s\"\n"),
+                  jcr->store_mngr->get_wstore()->name(), jcr->write_dev, jcr->store_mngr->get_policy_name());
             sd_job_started = true;
             break;
          }
index 5f8e04acf62913a14abd7061e9d24a7884ed9795..d5ffff560c4f1781402ea091a0a49c843c903fc4 100644 (file)
@@ -1544,6 +1544,8 @@ void dird_free_jcr(JCR *jcr)
    free_and_null_pool_memory(jcr->rpool_source);
    free_and_null_pool_memory(jcr->next_vol_list);
    free_and_null_pool_memory(jcr->component_fname);
+   free_and_null_pool_memory(jcr->read_dev);
+   free_and_null_pool_memory(jcr->write_dev);
 
    jcr->job_end_push.destroy();
 
@@ -1650,6 +1652,12 @@ void set_jcr_defaults(JCR *jcr, JOB *job)
    if (!jcr->catalog_source) {
       jcr->catalog_source = get_pool_memory(PM_MESSAGE);
    }
+   if (!jcr->write_dev) {
+      jcr->write_dev = get_pool_memory(PM_MESSAGE);
+   }
+   if (!jcr->read_dev) {
+      jcr->read_dev = get_pool_memory(PM_MESSAGE);
+   }
 
    jcr->JobPriority = job->Priority;
 
index dd235abc6eee16929f9075c731f37893bd72e76c..3da8d516ec066823aba113cc1d1ab43a19c27e74 100644 (file)
@@ -312,13 +312,12 @@ bool start_storage_daemon_job(JCR *jcr, alist *rstore, alist *wstore, bool wait,
       sd->signal(BNET_EOD);              /* end of Storages */
       if (bget_dirmsg(sd) > 0) {
          Dmsg1(100, "<stored: %s", sd->msg);
-         /* ****FIXME**** save actual device name */
          ok = sscanf(sd->msg, OK_device, device_name.c_str()) == 1;
       } else {
          ok = false;
       }
       if (ok) {
-         Jmsg(jcr, M_INFO, 0, _("Using Device \"%s\" to read.\n"), device_name.c_str());
+         pm_strcpy(jcr->read_dev, device_name.c_str());
       }
    }
 
@@ -351,26 +350,23 @@ bool start_storage_daemon_job(JCR *jcr, alist *rstore, alist *wstore, bool wait,
       sd->signal(BNET_EOD);              /* end of Storages */
       if (bget_dirmsg(sd) > 0) {
          Dmsg1(100, "<stored: %s", sd->msg);
-         /* ****FIXME**** save actual device name */
          ok = sscanf(sd->msg, OK_device, device_name.c_str()) == 1;
       } else {
          ok = false;
       }
       if (ok) {
-         Jmsg(jcr, M_INFO, 0, _("Using Device \"%s\" to write.\n"), device_name.c_str());
+         pm_strcpy(jcr->write_dev, device_name.c_str());
       }
    }
    if (!ok) {
       POOL_MEM err_msg;
       if (sd->msg[0]) {
          pm_strcpy(err_msg, sd->msg); /* save message */
-         Jmsg(jcr, M_INFO, 0, _("\n"
-              "     Storage daemon didn't accept Device \"%s\" because:\n     %s"),
-              device_name.c_str(), err_msg.c_str()/* sd->msg */);
+         Jmsg(jcr, M_INFO, 0, _("Storage daemon \"%s\" didn't accept Device \"%s\" because: %s"),
+              store_name.c_str(), device_name.c_str(), err_msg.c_str()/* sd->msg */);
       } else {
-         Jmsg(jcr, M_INFO, 0, _("\n"
-              "     Storage daemon didn't accept Device \"%s\" command.\n"),
-              device_name.c_str());
+         Jmsg(jcr, M_INFO, 0, _("Storage daemon \"%s\" didn't accept Device \"%s\" command.\n"),
+              store_name.c_str(), device_name.c_str());
       }
    }
    return ok;
index 3a8589787b5c0ede53fc0f0f1764d91d9fd2a4e8..edd68dad0b311e8142c3e5b34b939258a3a0c798 100644 (file)
@@ -339,7 +339,9 @@ public:
    JOB *job;                          /* Job resource */
    JOB *verify_job;                   /* Job resource of verify previous job */
    alist *plugin_config;              /* List of ConfigFile needed for restore */
-   StorageManager *store_mngr;
+   StorageManager *store_mngr;        /* Storage manager object */
+   POOLMEM *write_dev;                /* Write device (set by start_storage_dameon_job() */
+   POOLMEM *read_dev;                 /* Read device (set by start_storage_dameon_job() */
    CLIENT *client;                    /* Client resource */
    POOL *pool;                        /* Pool resource = write for migration */
    POOL *next_pool;                   /* Next pool override */