static char jobcmd[] = "JobId=%d job=%127s job_name=%127s client_name=%127s "
"type=%d level=%d FileSet=%127s NoAttr=%d SpoolAttr=%d FileSetMD5=%127s "
"SpoolData=%d WritePartAfterJob=%d PreferMountedVols=%d SpoolSize=%s "
- "incomplete=%d VolSessionId=%d VolSessionTime=%d\n";
+ "rerunning=%d VolSessionId=%d VolSessionTime=%d\n";
/* Responses sent to Director daemon */
static char OKjob[] = "3000 OK Job SDid=%u SDtime=%u Authorization=%s\n";
*/
bool job_cmd(JCR *jcr)
{
- int JobId;
+ int32_t JobId;
char auth_key[100];
char spool_size[30];
char seed[100];
BSOCK *dir = jcr->dir_bsock;
POOL_MEM job_name, client_name, job, fileset_name, fileset_md5;
- int JobType, level, spool_attributes, no_attributes, spool_data;
- int write_part_after_job, PreferMountedVols;
+ int32_t JobType, level, spool_attributes, no_attributes, spool_data;
+ int32_t write_part_after_job, PreferMountedVols;
int stat;
JCR *ojcr;
&JobType, &level, fileset_name.c_str(), &no_attributes,
&spool_attributes, fileset_md5.c_str(), &spool_data,
&write_part_after_job, &PreferMountedVols, spool_size,
- &jcr->incomplete, &jcr->VolSessionId, &jcr->VolSessionTime);
+ &jcr->rerunning, &jcr->VolSessionId, &jcr->VolSessionTime);
if (stat != 17) {
pm_strcpy(jcr->errmsg, dir->msg);
dir->fsend(BAD_job, stat, jcr->errmsg);
Dmsg1(100, ">dird: %s", dir->msg);
- set_jcr_job_status(jcr, JS_ErrorTerminated);
+ jcr->setJobStatus(JS_ErrorTerminated);
return false;
}
- Dmsg3(100, "==== incomplete=%d VolSesId=%d VolSesTime=%d\n", jcr->incomplete,
+ Dmsg3(100, "==== rerunning=%d VolSesId=%d VolSesTime=%d\n", jcr->rerunning,
jcr->VolSessionId, jcr->VolSessionTime);
/*
* Since this job could be rescheduled, we
* the Resched flag is set and VolSessionId and VolSessionTime
* are given to us (same as restarted job).
*/
- if (!jcr->incomplete) {
+ if (!jcr->rerunning) {
jcr->VolSessionId = newVolSessionId();
jcr->VolSessionTime = VolSessionTime;
}
Dmsg2(50, ">dird jid=%u: %s", (uint32_t)jcr->JobId, dir->msg);
jcr->sd_auth_key = bstrdup(auth_key);
memset(auth_key, 0, sizeof(auth_key));
+ new_plugins(jcr); /* instantiate the plugins */
generate_daemon_event(jcr, "JobStart");
+ generate_plugin_event(jcr, bsdEventJobStart, (void *)"JobStart");
return true;
}
struct timespec timeout;
int errstat = 0;
- Dsm_check(1);
+ Dsm_check(200);
Dmsg1(200, "Run_cmd: %s\n", jcr->dir_bsock->msg);
/* If we do not need the FD, we are doing a migrate, copy, or virtual
return false;
}
- set_jcr_job_status(jcr, JS_WaitFD); /* wait for FD to connect */
- dir_send_job_status(jcr);
+ jcr->sendJobStatus(JS_WaitFD); /* wait for FD to connect */
gettimeofday(&tv, &tz);
timeout.tv_nsec = tv.tv_usec * 1000;
}
if (!jcr->authenticated) {
- set_jcr_job_status(jcr, JS_ErrorTerminated);
+ jcr->setJobStatus(JS_ErrorTerminated);
}
pthread_cond_signal(&jcr->job_start_wait); /* wake waiting job */
free_jcr(jcr);
delete jcr->write_store;
jcr->write_store = NULL;
}
- Dsm_check(1);
+ Dsm_check(200);
if (jcr->JobId != 0)
write_state_file(me->working_directory, "bacula-sd", get_first_port_host_order(me->sdaddrs));