* list jobname=name - same as above
* list jobmedia jobid=<nn>
* list jobmedia job=name
+ * list joblog jobid=<nn>
+ * list joblog job=name
* list files jobid=<nn> - list files saved for job nn
* list files job=name
* list pools - list pool records
* list clients - list clients
* list nextvol job=xx - list the next vol to be used by job
* list nextvolume job=xx - same as above.
+ * list copies jobid=x,y,z
*
*/
db_list_jobmedia_records(ua->jcr, ua->db, 0, prtit, ua, llist);
}
+ /* List JOBLOG */
+ } else if (strcasecmp(ua->argk[i], NT_("joblog")) == 0) {
+ int done = FALSE;
+ for (j=i+1; j<ua->argc; j++) {
+ if (strcasecmp(ua->argk[j], NT_("ujobid")) == 0 && ua->argv[j]) {
+ bstrncpy(jr.Job, ua->argv[j], MAX_NAME_LENGTH);
+ jr.JobId = 0;
+ db_get_job_record(ua->jcr, ua->db, &jr);
+ jobid = jr.JobId;
+ } else if (strcasecmp(ua->argk[j], NT_("jobid")) == 0 && ua->argv[j]) {
+ jobid = str_to_int64(ua->argv[j]);
+ } else {
+ continue;
+ }
+ db_list_joblog_records(ua->jcr, ua->db, jobid, prtit, ua, llist);
+ done = TRUE;
+ }
+ if (!done) {
+ /* List for all jobs (jobid=0) */
+ db_list_joblog_records(ua->jcr, ua->db, 0, prtit, ua, llist);
+ }
+
+
/* List POOLS */
} else if (strcasecmp(ua->argk[i], NT_("pool")) == 0 ||
strcasecmp(ua->argk[i], NT_("pools")) == 0) {
}
}
list_nextvol(ua, n);
+ } else if (strcasecmp(ua->argk[i], NT_("copies")) == 0) {
+ char *jobids=NULL;
+ uint32_t limit=0;
+ for (j=i+1; j<ua->argc; j++) {
+ if (strcasecmp(ua->argk[j], NT_("jobid")) == 0 && ua->argv[j]) {
+ if (is_a_number_list(ua->argv[j])) {
+ jobids = ua->argv[j];
+ }
+ } else if (strcasecmp(ua->argk[j], NT_("limit")) == 0 && ua->argv[j]) {
+ limit = atoi(ua->argv[j]);
+ }
+ }
+ db_list_copies_records(ua->jcr,ua->db,limit,jobids,prtit,ua,llist);
} else if (strcasecmp(ua->argk[i], NT_("limit")) == 0
|| strcasecmp(ua->argk[i], NT_("days")) == 0) {
/* Ignore it */
mr.PoolId = jcr->jr.PoolId;
get_job_storage(&store, job, run);
mr.StorageId = store.store->StorageId;
+ /* no need to set ScratchPoolId, since we use fnv_no_create_vol */
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 (Pool=%s, Level=%s).\n"),
job->name(), pr.Name, level_to_str(run->level));