inline char *STORE::dev_name() const
{
DEVICE *dev = (DEVICE *)device->first();
- return dev->hdr.name;
+ return dev->name();
}
inline char *STORE::name() const { return hdr.name; }
uint32_t level; /* level override */
int32_t Priority; /* priority override */
uint32_t job_type;
+ utime_t MaxRunSchedTime; /* max run time in sec from Sched time */
+ bool MaxRunSchedTime_set; /* MaxRunSchedTime given */
bool spool_data; /* Data spooling override */
bool spool_data_set; /* Data spooling override given */
+ bool accurate; /* accurate */
+ bool accurate_set; /* accurate given */
bool write_part_after_job; /* Write part after job override */
bool write_part_after_job_set; /* Write part after job override given */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2011 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.
*
* Kern Sibbald, May MM
*
- * Version $Id$
*/
#include "bacula.h"
{"priority", 'p'},
{"spooldata", 's'},
{"writepartafterjob", 'W'},
+ {"maxrunschedtime", 'm'},
+ {"accurate", 'a'},
{NULL, 0}
};
{
int i, j;
bool found;
+ utime_t utime;
int token, state, state2 = 0, code = 0, code2 = 0;
int options = lc->options;
RUN **run = (RUN **)(item->value);
lrun.msgs = (MSGS *)res;
}
break;
+ case 'm': /* max run sched time */
+ token = lex_get_token(lc, T_QUOTED_STRING);
+ if (!duration_to_utime(lc->str, &utime)) {
+ scan_err1(lc, _("expected a time period, got: %s"), lc->str);
+ return;
+ }
+ lrun.MaxRunSchedTime = utime;
+ lrun.MaxRunSchedTime_set = true;
+ break;
+ case 'a': /* accurate */
+ token = lex_get_token(lc, T_NAME);
+ if (strcasecmp(lc->str, "yes") == 0 || strcasecmp(lc->str, "true") == 0) {
+ lrun.accurate = true;
+ lrun.accurate_set = true;
+ } else if (strcasecmp(lc->str, "no") == 0 || strcasecmp(lc->str, "false") == 0) {
+ lrun.accurate = false;
+ lrun.accurate_set = true;
+ } else {
+ scan_err1(lc, _("Expect a YES or NO, got: %s"), lc->str);
+ }
+ break;
default:
scan_err1(lc, _("Expected a keyword name, got: %s"), lc->str);
/* NOT REACHED */
if (run->spool_data_set) {
jcr->spool_data = run->spool_data;
}
+ if (run->accurate_set) { /* overwrite accurate mode */
+ jcr->accurate = run->accurate;
+ }
if (run->write_part_after_job_set) {
jcr->write_part_after_job = run->write_part_after_job;
}
+ if (run->MaxRunSchedTime_set) {
+ jcr->MaxRunSchedTime = run->MaxRunSchedTime;
+ }
Dmsg0(dbglvl, "Leave wait_for_next_job()\n");
return jcr;
}
Dmsg0(dbglvl, "enter find_runs()\n");
-
/* compute values for time now */
now = time(NULL);
(void)localtime_r(&now, &tm);