if (tpkt && tpkt->m_driver) {
/* call the driver method async */
Dmsg4(dbglvl, "Upload start %s-%d JobId : %d driver :%p\n",
- tpkt->m_volume_name, tpkt->m_part, tpkt->m_dcr->jcr->JobId, tpkt->m_driver);
+ tpkt->m_volume_name, tpkt->m_part, tpkt->m_job_id, tpkt->m_driver);
cancel_callback cancel_cb;
cancel_cb.fct = DCR_cancel_cb;
}
} else {
Dmsg4(dbglvl, "Move error!! JobId=%d part=%d Vol=%s cache=%s\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_part, tpkt->m_volume_name, tpkt->m_cache_fname);
+ tpkt->m_job_id, tpkt->m_part, tpkt->m_volume_name, tpkt->m_cache_fname);
POOL_MEM dmsg(PM_MESSAGE);
tpkt->append_status(dmsg);
Dmsg1(dbglvl, "%s\n",dmsg.c_str());
if (!tpkt->m_driver->copy_cache_part_to_cloud(tpkt)) {
/* Error message already sent by Qmsg() */
Dmsg4(dbglvl, "Upload error!! JobId=%d part=%d Vol=%s cache=%s\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_part, tpkt->m_volume_name, tpkt->m_cache_fname);
+ tpkt->m_job_id, tpkt->m_part, tpkt->m_volume_name, tpkt->m_cache_fname);
POOL_MEM dmsg(PM_MESSAGE);
tpkt->append_status(dmsg);
Dmsg1(dbglvl, "%s\n",dmsg.c_str());
}
Dmsg2(dbglvl, "Upload end JobId : %d driver :%p\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_driver);
+ tpkt->m_job_id, tpkt->m_driver);
if (tpkt->m_do_cache_truncate && tpkt->m_part!=1) {
if (unlink(tpkt->m_cache_fname) != 0) {
}
if (tpkt->m_driver && tpkt->m_driver->is_waiting_on_server(tpkt)) {
Dmsg3(dbglvl, "JobId=%d %s/part.%d waiting...\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part);
lock_guard lg(tpkt->m_mutex);
/* increase the timeout increment up to MAX_WAIT_TIMEOUT_INC_INSEC value */
if (tpkt->m_wait_timeout_inc_insec < MAX_WAIT_TIMEOUT_INC_INSEC)
return TRANS_STATE_QUEUED;
} else {
Dmsg3(dbglvl, "JobId=%d %s/part.%d is ready!\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part);
lock_guard lg(tpkt->m_mutex);
tpkt->m_wait_timeout_inc_insec = 0;
tpkt->m_funct = download_engine;
if (tpkt && tpkt->m_driver) {
/* call the driver method async */
Dmsg4(dbglvl, "JobId=%d %s/part.%d download started to %s.\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
Dmsg4(dbglvl, "%s/part.%d download started. job : %d driver :%p\n",
- tpkt->m_volume_name, tpkt->m_part, tpkt->m_dcr->jcr->JobId, tpkt->m_driver);
+ tpkt->m_volume_name, tpkt->m_part, tpkt->m_job_id, tpkt->m_driver);
int ret = tpkt->m_driver->copy_cloud_part_to_cache(tpkt);
switch (ret) {
case cloud_driver::CLOUD_DRIVER_COPY_PART_TO_CACHE_OK:
strcpy(p,partnumber);
if (rename(tpkt->m_cache_fname, cache_fname) != 0) {
Dmsg5(dbglvl, "JobId=%d %s/part.%d download. part copy from %s to %s error!!\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname, cache_fname);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname, cache_fname);
free_pool_memory(cache_fname);
return TRANS_STATE_ERROR;
}
case cloud_driver::CLOUD_DRIVER_COPY_PART_TO_CACHE_ERROR:
{
Dmsg4(dbglvl, "JobId=%d %s/part.%d download to cache=%s error!!\n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
POOL_MEM dmsg(PM_MESSAGE);
tpkt->append_status(dmsg);
Dmsg1(dbglvl, "%s\n",dmsg.c_str());
{
lock_guard lg(tpkt->m_mutex);
Dmsg4(dbglvl, "JobId=%d %s/part.%d download to cache=%s retry... \n",
- tpkt->m_dcr->jcr->JobId, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
+ tpkt->m_job_id, tpkt->m_volume_name, tpkt->m_part, tpkt->m_cache_fname);
tpkt->m_wait_timeout_inc_insec = WAIT_TIMEOUT_INC_INSEC;
tpkt->m_wait_timeout = time(NULL)+ tpkt->m_wait_timeout_inc_insec;
tpkt->m_funct = wait_engine;
VolumeName, /* VolumeName is duplicated in the transfer constructor*/
upart,
driver,
+ dcr->jcr->JobId,
dcr,
cloud_prox);
dcr->uploads->append(item);
VolumeName, /* VolumeName is duplicated in the transfer constructor*/
dpart,
driver,
+ dcr->jcr->JobId,
dcr,
NULL); // no proxy on download to cache
dcr->downloads->append(item);
const char *volume_name,
uint32_t part,
cloud_driver *driver,
+ uint32_t JobId,
DCR *dcr,
cloud_proxy *proxy) :
m_stat_size(size),
m_volume_name(bstrdup(volume_name)), /* volume name is duplicated*/
m_part(part),
m_driver(driver),
+ m_job_id(JobId),
m_dcr(dcr),
m_proxy(proxy),
m_workq_elem(NULL),
void transfer::append_api_status(OutputWriter &ow)
{
lock_guard lg(m_stat_mutex);
+ Dmsg2(dbglvl, "transfer::append_api_status state=%d JobId=%d\n", m_state, m_job_id);
+
if (m_state > TRANS_STATE_PROCESSED) {
ow.get_output(OT_START_OBJ,
OT_STRING,"volume_name", NPRTB(m_volume_name),
OT_INT32, "part", m_part,
- OT_INT32, "jobid", m_dcr ? (m_dcr->jcr ? m_dcr->jcr->JobId : 0) : 0,
+ OT_INT32, "jobid", m_job_id,
OT_STRING,"state", (m_state == TRANS_STATE_QUEUED) ?
(m_wait_timeout_inc_insec == 0) ? "queued":"waiting" :transfer_state_name[m_state],
OT_INT64, "size", m_stat_size,
ow.get_output(OT_START_OBJ,
OT_STRING,"volume_name", NPRTB(m_volume_name),
OT_INT32, "part", m_part,
- OT_INT32, "jobid", m_dcr ? (m_dcr->jcr ? m_dcr->jcr->JobId : 0) : 0,
+ OT_INT32, "jobid", m_job_id,
OT_STRING,"state", (m_state == TRANS_STATE_QUEUED) ?
(m_wait_timeout_inc_insec == 0) ? "queued":"waiting" :transfer_state_name[m_state],
OT_INT64, "size", m_stat_size,
const char *volume_name,
uint32_t part,
cloud_driver *driver,
+ uint32_t JobId,
DCR *dcr,
cloud_proxy *proxy)
{
volume_name, /* volume_name is duplicated in the transfer constructor*/
part,
driver,
+ JobId,
dcr,
proxy));