]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Cloud Storage: Fix #10525 Add device name to the transfer fields
authornorbert.bizet <norbert.bizet@baculasystems.com>
Mon, 6 Nov 2023 15:31:51 +0000 (10:31 -0500)
committerEric Bollengier <eric@baculasystems.com>
Tue, 13 Feb 2024 09:36:02 +0000 (10:36 +0100)
bacula/src/stored/cloud_dev.c
bacula/src/stored/cloud_transfer_mgr.c
bacula/src/stored/cloud_transfer_mgr.h
bacula/src/stored/file_driver.c

index 0a0bf6dcd3039ca575ea4b8df8dbc6ca1ab52e4e..ab43506cbdf68f366b32aa79ae0f72adc2223b94 100644 (file)
@@ -462,6 +462,7 @@ bool cloud_dev::upload_part_to_cloud(DCR *dcr, const char *VolumeName, uint32_t
                                        upload_engine,
                                        cache_fname,/* cache_fname is duplicated in the transfer constructor*/
                                        VolumeName, /* VolumeName is duplicated in the transfer constructor*/
+                                       name(),     /* device name() is duplicated in the transfer constructor*/
                                        upart,
                                        driver,
                                        dcr->jcr->JobId,
@@ -568,6 +569,7 @@ transfer *cloud_dev::download_part_to_cache(DCR *dcr, const char *VolumeName, ui
                                  download_engine,
                                  cache_fname,/* cache_fname is duplicated in the transfer constructor*/
                                  VolumeName, /* VolumeName is duplicated in the transfer constructor*/
+                                 name(),     /* device name() is duplicated in the transfer constructor*/
                                  dpart,
                                  driver,
                                  dcr->jcr->JobId,
index 44e4d9a6ffbac4452d9c3e9eee1e28cb30cec30f..336db34b6db4176987de98269db59f3d4fa12d86 100644 (file)
@@ -38,7 +38,8 @@ static const char *transfer_state_name[]  = {"created", "queued", "process", "do
    * funct : function to process
    * arg : argument passed to the function
    * cache_fname  : cache file name is duplicated in the transfer constructor
-   * volume_name  :  volume name is duplicated in the transfer constructor
+   * volume_name  : volume name is duplicated in the transfer constructor
+   * device_name  : device name is duplicated in the transfer constructor
    * part         : part index
    * driver       : pointer to the cloud_driver
    * dcr          : pointer to DCR
@@ -47,6 +48,7 @@ transfer::transfer(uint64_t    size,
                   transfer_engine* funct,
                   const char   *cache_fname,
                   const char   *volume_name,
+                  const char   *device_name,
                   uint32_t     part,
                   cloud_driver *driver,
                   uint32_t     JobId,
@@ -67,6 +69,7 @@ transfer::transfer(uint64_t    size,
    m_debug_retry(true),
    m_cache_fname(bstrdup(cache_fname)), /* cache fname is duplicated*/
    m_volume_name(bstrdup(volume_name)), /* volume name is duplicated*/
+   m_device_name(bstrdup(device_name)), /* device name is duplicated*/
    m_part(part),
    m_driver(driver),
    m_job_id(JobId),
@@ -98,6 +101,7 @@ transfer::~transfer()
    pthread_mutex_destroy(&m_mutex);
    pthread_mutex_destroy(&m_stat_mutex);
 
+   free(m_device_name);
    free(m_volume_name);
    free(m_cache_fname);
    if (m_use_count > 0) {
@@ -274,6 +278,7 @@ void transfer::append_api_status(OutputWriter &ow)
 
    if (m_state > TRANS_STATE_PROCESSED) {
          ow.get_output(OT_START_OBJ,
+                  OT_STRING,"device_name",            NPRTB(m_device_name),
                   OT_STRING,"volume_name",            NPRTB(m_volume_name),
                   OT_INT32, "part",                   m_part,
                   OT_INT32, "jobid",                  m_job_id,
@@ -287,6 +292,7 @@ void transfer::append_api_status(OutputWriter &ow)
                   OT_END);
    } else {
          ow.get_output(OT_START_OBJ,
+                  OT_STRING,"device_name",            NPRTB(m_device_name),
                   OT_STRING,"volume_name",            NPRTB(m_volume_name),
                   OT_INT32, "part",                   m_part,
                   OT_INT32, "jobid",                  m_job_id,
@@ -585,6 +591,7 @@ transfer *transfer_manager::get_xfer(uint64_t     size,
             transfer_engine *funct,
             POOLMEM      *cache_fname,
             const char   *volume_name,
+            const char   *device_name,
             uint32_t     part,
             cloud_driver *driver,
             uint32_t     JobId,
@@ -608,6 +615,7 @@ transfer *transfer_manager::get_xfer(uint64_t     size,
                        funct,
                        cache_fname,/* cache_fname is duplicated in the transfer constructor*/
                        volume_name, /* volume_name is duplicated in the transfer constructor*/
+                       device_name,/* device_name is duplicated in the transfer constructor*/
                        part,
                        driver,
                        JobId,
index 70433d08e606367c3876042a155d3e2981be3bfd..cba6521d4aa130ea286c9ef365d2df6403c92367 100644 (file)
@@ -113,6 +113,7 @@ public:
    /* variables */
    char                *m_cache_fname;
    char                *m_volume_name;
+   char                *m_device_name;
    uint32_t             m_part;
    cloud_driver        *m_driver;
    uint32_t             m_job_id;
@@ -155,6 +156,7 @@ public:
             transfer_engine *funct,
             const char   *cache_fname,
             const char   *volume_name,
+            const char   *device_name,
             uint32_t     part,
             cloud_driver *driver,
             uint32_t     JobId,
@@ -295,6 +297,7 @@ public:
             transfer_engine *funct,
             POOLMEM      *cache_fname,
             const char   *volume_name,
+            const char   *device_name,
             uint32_t     part,
             cloud_driver *driver,
             uint32_t     JobId,
index c6e897f6641a3e52cf17ed2119a0378590c92a99..ba1b03701a7cac2076945cd11765ad1e3f5de83c 100644 (file)
@@ -377,7 +377,7 @@ bool file_driver::move_cloud_part(const char *VolumeName, uint32_t apart , const
       rtn = true;
    } else {
       exists = 1;
-      transfer xfer(statbuf.st_size, NULL, cloud_source_name, VolumeName, apart, NULL, 0, NULL, NULL);
+      transfer xfer(statbuf.st_size, NULL, cloud_source_name, VolumeName, dev->name(), apart, NULL, 0, NULL, NULL);
       rtn = put_object(&xfer, cloud_source_name, cloud_dest_name, &upload_limit);
       Mmsg(err,"%s",rtn ? to:xfer.m_message);
    }