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;
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;
}
jcr->store_bsock->close();
}
+ jcr->setJobStatus(JS_WaitSD);
/*
* Start conversation with Storage daemon
*/
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;
}
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();
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;
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());
}
}
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;
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 */