many others, a complete list can be found in the file AUTHORS.
This program is Free Software; you can redistribute it and/or
modify it under the terms of version two of the GNU General Public
- License as published by the Free Software Foundation plus additions
- that are listed in the file LICENSE.
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
if (!complete_jcr_for_job(jcr, job, run->pool)) {
return false;
}
+ if (!jcr->jr.PoolId) {
+ ua->error_msg(_("Could not Pool Job %s\n"), job->name());
+ continue;
+ }
memset(&pr, 0, sizeof(pr));
pr.PoolId = jcr->jr.PoolId;
if (!db_get_pool_record(ua->jcr, ua->db, &pr)) {
get_job_storage(&store, job, run);
mr.StorageId = store.store->StorageId;
if (!find_next_volume_for_append(jcr, &mr, 1, fnv_no_create_vol, fnv_prune)) {
- ua->error_msg(_("Could not find next Volume for Job %s (%s, %s).\n"),
- job->hdr.name, pr.Name, level_to_str(run->level));
+ ua->error_msg(_("Could not find next Volume for Job %s (Pool=%s, Level=%s).\n"),
+ job->name(), pr.Name, level_to_str(run->level));
} else {
ua->send_msg(
- _("The next Volume to be used by Job \"%s\" (%s, %s) will be %s\n"),
- job->hdr.name, pr.Name, level_to_str(run->level), mr.VolumeName);
+ _("The next Volume to be used by Job \"%s\" (Pool=%s, Level=%s) will be %s\n"),
+ job->name(), pr.Name, level_to_str(run->level), mr.VolumeName);
found = true;
}
if (jcr->db && jcr->db != ua->db) {
jcr->pool = pool; /* override */
}
if (jcr->db) {
+ Dmsg0(100, "complete_jcr close db\n");
db_close_database(jcr, jcr->db);
jcr->db = NULL;
}
+
+ Dmsg0(100, "complete_jcr open db\n");
jcr->db = jcr->db=db_init_database(jcr, jcr->catalog->db_name, jcr->catalog->db_user,
jcr->catalog->db_password, jcr->catalog->db_address,
jcr->catalog->db_port, jcr->catalog->db_socket,
{
BSOCK *bs = ua->UA_sock;
int maxlen, len;
- POOLMEM *msg;
+ POOLMEM *msg = NULL;
if (bs) {
msg = bs->msg;
- } else {
+ }
+ if (!msg) {
msg = get_pool_memory(PM_EMSG);
}
{
BSOCK *bs = UA_sock;
va_list arg_ptr;
- va_start(arg_ptr, fmt);
+
if (bs && api) bs->signal(BNET_ERROR_MSG);
+ va_start(arg_ptr, fmt);
bmsg(this, fmt, arg_ptr);
va_end(arg_ptr);
}
{
BSOCK *bs = UA_sock;
va_list arg_ptr;
- va_start(arg_ptr, fmt);
+
if (bs && api) bs->signal(BNET_WARNING_MSG);
+ va_start(arg_ptr, fmt);
bmsg(this, fmt, arg_ptr);
va_end(arg_ptr);
}
{
BSOCK *bs = UA_sock;
va_list arg_ptr;
- va_start(arg_ptr, fmt);
+
if (bs && api) bs->signal(BNET_INFO_MSG);
+ va_start(arg_ptr, fmt);
bmsg(this, fmt, arg_ptr);
va_end(arg_ptr);
}