-/*
- *
- * Bacula Director -- User Agent Output Commands
- * I.e. messages, listing database, showing resources, ...
- *
- * Kern Sibbald, September MM
- *
- * Version $Id$
- */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ *
+ * Bacula Director -- User Agent Output Commands
+ * I.e. messages, listing database, showing resources, ...
+ *
+ * Kern Sibbald, September MM
+ *
+ * Version $Id$
+ */
#include "bacula.h"
#include "dird.h"
POOL_DBR pr;
MEDIA_DBR mr;
- if (!open_db(ua))
+ if (!open_client_db(ua))
return 1;
memset(&jr, 0, sizeof(jr));
if (j >= 0) {
n = atoi(ua->argv[j]);
if ((n < 0) || (n > 50)) {
- bsendmsg(ua, _("Ignoring illegal value for days.\n"));
+ bsendmsg(ua, _("Ignoring invalid value for days. Max is 50.\n"));
n = 1;
}
}
JOB *job;
JCR *jcr = ua->jcr;
POOL *pool;
+ USTORE store;
RUN *run;
time_t runtime;
bool found = false;
bstrncpy(pr.Name, "*UnknownPool*", sizeof(pr.Name));
}
mr.PoolId = jcr->jr.PoolId;
- if (run->storage) {
- jcr->wstore = run->storage;
- } else {
- jcr->wstore = (STORE *)job->storage->first();
- }
- mr.StorageId = jcr->wstore->StorageId;
+ get_job_storage(&store, job, run);
+ mr.StorageId = store.store->StorageId;
if (!find_next_volume_for_append(jcr, &mr, 1, false/*no create*/)) {
bsendmsg(ua, _("Could not find next Volume for Job %s (%s, %s).\n"),
job->hdr.name, pr.Name, level_to_str(run->level));
* Fill in the remaining fields of the jcr as if it
* is going to run the job.
*/
-int complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool)
+bool complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool)
{
POOL_DBR pr;
if (pool) {
jcr->pool = pool; /* override */
}
+ if (jcr->db) {
+ db_close_database(jcr, jcr->db);
+ jcr->db = NULL;
+ }
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,
jcr->catalog->db_name);
if (jcr->db) {
Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db));
+ db_close_database(jcr, jcr->db);
+ jcr->db = NULL;
}
- return 0;
+ return false;
}
bstrncpy(pr.Name, jcr->pool->hdr.name, sizeof(pr.Name));
while (!db_get_pool_record(jcr, jcr->db, &pr)) { /* get by Name */
db_close_database(jcr, jcr->db);
jcr->db = NULL;
}
- return 0;
+ return false;
} else {
Jmsg(jcr, M_INFO, 0, _("Pool %s created in database.\n"), pr.Name);
}
}
jcr->jr.PoolId = pr.PoolId;
- return 1;
+ return true;
}