/*
* Now send JobId and authorization key
*/
+ if (jcr->sd_auth_key == NULL) {
+ jcr->sd_auth_key = bstrdup("dummy");
+ }
fd->fsend(jobcmd, edit_int64(jcr->JobId, ed1), jcr->Job, jcr->VolSessionId,
jcr->VolSessionTime, jcr->sd_auth_key);
if (!jcr->keep_sd_auth_key && strcmp(jcr->sd_auth_key, "dummy")) {
* Lookup the last FULL backup job to get the time/date for a
* differential or incremental save.
*/
- switch (jcr->get_JobLevel()) {
+ switch (jcr->getJobLevel()) {
case L_DIFFERENTIAL:
case L_INCREMENTAL:
POOLMEM *stime = get_pool_memory(PM_MESSAGE);
Dmsg4(50, "have_full=%d do_full=%d now=%lld full_time=%lld\n", have_full,
do_full, now, last_full_time);
/* Make sure the last diff is recent enough */
- if (have_full && jcr->get_JobLevel() == L_INCREMENTAL && jcr->job->MaxDiffInterval > 0) {
+ if (have_full && jcr->getJobLevel() == L_INCREMENTAL && jcr->job->MaxDiffInterval > 0) {
/* Lookup last diff job */
if (db_find_last_job_start_time(jcr, jcr->db, &jcr->jr, &stime, L_DIFFERENTIAL)) {
last_diff_time = str_to_utime(stime);
Jmsg(jcr, M_INFO, 0, "%s", db_strerror(jcr->db));
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Full backup found in catalog. Doing FULL backup.\n"));
bsnprintf(since, since_len, _(" (upgraded from %s)"),
- level_to_str(jcr->get_JobLevel()));
+ level_to_str(jcr->getJobLevel()));
jcr->set_JobLevel(jcr->jr.JobLevel = L_FULL);
} else if (do_diff) {
/* No recent diff job found, so upgrade this one to Diff */
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Differential backup found in catalog. Doing Differential backup.\n"));
bsnprintf(since, since_len, _(" (upgraded from %s)"),
- level_to_str(jcr->get_JobLevel()));
+ level_to_str(jcr->getJobLevel()));
jcr->set_JobLevel(jcr->jr.JobLevel = L_DIFFERENTIAL);
} else {
if (jcr->job->rerun_failed_levels) {
Jmsg(jcr, M_INFO, 0, _("Prior failed job found in catalog. Upgrading to %s.\n"),
level_to_str(JobLevel));
bsnprintf(since, since_len, _(" (upgraded from %s)"),
- level_to_str(jcr->get_JobLevel()));
+ level_to_str(jcr->getJobLevel()));
jcr->set_JobLevel(jcr->jr.JobLevel = JobLevel);
jcr->jr.JobId = jcr->JobId;
break;
jcr->jr.JobId = jcr->JobId;
break;
}
- Dmsg2(100, "Level=%c last start time=%s\n", jcr->get_JobLevel(), jcr->stime);
+ Dmsg2(100, "Level=%c last start time=%s\n", jcr->getJobLevel(), jcr->stime);
}
static void send_since_time(JCR *jcr)
/*
* Send Level command to File daemon
*/
- switch (jcr->get_JobLevel()) {
+ switch (jcr->getJobLevel()) {
case L_BASE:
fd->fsend(levelcmd, not_accurate, "base", " ", 0);
break;
case L_SINCE:
default:
Jmsg2(jcr, M_FATAL, 0, _("Unimplemented backup level %d %c\n"),
- jcr->get_JobLevel(), jcr->get_JobLevel());
+ jcr->getJobLevel(), jcr->getJobLevel());
return 0;
}
Dmsg1(120, ">filed: %s", fd->msg);
{
FILESET *fileset = jcr->fileset;
BSOCK *fd = jcr->file_bsock;
+ STORE *store = jcr->wstore;
int num;
bool include = true;
}
for (j=0; j<ie->num_opts; j++) {
FOPTS *fo = ie->opts_list[j];
- fd->fsend("O %s\n", fo->opts);
bool enhanced_wild = false;
for (k=0; fo->opts[k]!='\0'; k++) {
}
}
+ /* Strip out compression option Zn if disallowed for this Storage */
+ if (store && !store->AllowCompress) {
+ char newopts[MAX_FOPTS];
+ bool done=false; /* print warning only if compression enabled in FS */
+ int j = 0;
+ for (k=0; fo->opts[k]!='\0'; k++) {
+ /* Z compress option is followed by the single-digit compress level */
+ if (fo->opts[k]=='Z') {
+ done=true;
+ k++; /* skip option and level */
+ } else {
+ newopts[j] = fo->opts[k];
+ j++;
+ }
+ }
+ newopts[j] = '\0';
+
+ if (done) {
+ Jmsg(jcr, M_INFO, 0,
+ _("FD compression disabled for this Job because AllowCompress=No in Storage resource.\n") );
+ }
+ /* Send the new trimmed option set without overwriting fo->opts */
+ fd->fsend("O %s\n", newopts);
+ } else {
+ /* Send the original options */
+ fd->fsend("O %s\n", fo->opts);
+ }
+
for (k=0; k<fo->regex.size(); k++) {
fd->fsend("R %s\n", fo->regex.get(k));
}
Dmsg0(120, "bdird: sending runscripts to fd\n");
foreach_alist(cmd, jcr->job->RunScripts) {
- if (cmd->can_run_at_level(jcr->get_JobLevel()) && cmd->target) {
+ if (cmd->can_run_at_level(jcr->getJobLevel()) && cmd->target) {
ehost = edit_job_codes(jcr, ehost, cmd->target, "");
Dmsg2(200, "bdird: runscript %s -> %s\n", cmd->target, ehost);