#define JS_DataDespooling 'l' /* Doing data despooling */
#define JS_WaitMedia 'm' /* waiting for new media */
#define JS_WaitPriority 'p' /* Waiting for higher priority jobs to finish */
+#define JS_WaitDevice 'q' /* Queued waiting for device */
#define JS_WaitStoreRes 's' /* Waiting for storage resource */
#define JS_WaitStartTime 't' /* Waiting for start time */
+
/* Migration selection types */
enum {
MT_SMALLEST_VOL = 1,
jcr->JobStatus == JS_WaitPriority || \
jcr->SDJobStatus == JS_WaitMedia || \
jcr->SDJobStatus == JS_WaitMount || \
+ jcr->SDJobStatus == JS_WaitDevice || \
jcr->SDJobStatus == JS_WaitMaxJobs)
/* Forward referenced structures */
class JCR;
+class BSOCK;
struct FF_PKT;
class B_DB;
struct ATTR_DBR;
-struct Plugin;
+class Plugin;
struct save_pkt;
struct bpContext;
struct xattr_private_data_t;
};
const char *get_OperationName(); /* in lib/jcr.c */
const char *get_ActionName(bool past); /* in lib/jcr.c */
- void setJobStatus(int JobStatus); /* in lib/jcr.c */
+ void setJobStatus(int newJobStatus); /* in lib/jcr.c */
+ bool sendJobStatus(); /* in lib/jcr.c */
+ bool sendJobStatus(int newJobStatus); /* in lib/jcr.c */
bool JobReads(); /* in lib/jcr.c */
void my_thread_send_signal(int sig); /* in lib/jcr.c */
void set_killable(bool killable); /* in lib/jcr.c */
bool cached_attribute; /* set if attribute is cached */
bool batch_started; /* is batch mode already started ? */
bool cmd_plugin; /* Set when processing a command Plugin = */
+ bool opt_plugin; /* Set when processing an option Plugin = */
bool keep_path_list; /* Keep newly created path in a hash */
bool accurate; /* true if job is accurate */
bool HasBase; /* True if job use base jobs */
pthread_t SD_msg_chan; /* Message channel thread id */
pthread_cond_t term_wait; /* Wait for job termination */
workq_ele_t *work_item; /* Work queue item if scheduled */
- volatile bool sd_msg_thread_done; /* Set when Storage message thread done */
BSOCK *ua; /* User agent */
JOB *job; /* Job resource */
JOB *verify_job; /* Job resource of verify previous job */
uint32_t ExpectedFiles; /* Expected restore files */
uint32_t MediaId; /* DB record IDs associated with this job */
uint32_t FileIndex; /* Last FileIndex processed */
+ utime_t MaxRunSchedTime; /* max run time in seconds from Scheduled time*/
POOLMEM *fname; /* name to put into catalog */
JOB_DBR jr; /* Job DB record for current job */
JOB_DBR previous_jr; /* previous job database record */
JCR *mig_jcr; /* JCR for migration/copy job */
char FSCreateTime[MAX_TIME_LENGTH]; /* FileSet CreateTime as returned from DB */
char since[MAX_TIME_LENGTH]; /* since time */
+ char PrevJob[MAX_NAME_LENGTH]; /* Previous job name assiciated with since time */
union {
JobId_t RestoreJobId; /* Id specified by UA */
JobId_t MigrateJobId;
int32_t reschedule_count; /* Number of times rescheduled */
int32_t FDVersion; /* File daemon version number */
int64_t spool_size; /* Spool size for this job */
+ volatile bool sd_msg_thread_done; /* Set when Storage message thread done */
bool wasVirtualFull; /* set if job was VirtualFull */
+ bool IgnoreDuplicateJobChecking; /* set in migration jobs */
bool spool_data; /* Spool data in SD */
bool acquired_resource_locks; /* set if resource locks acquired */
bool term_wait_inited; /* Set when cond var inited */
bool Encrypt; /* Encryption used by FD */
bool stats_enabled; /* Keep all job records in a table for long term statistics */
bool no_maxtime; /* Don't check Max*Time for this JCR */
- bool no_check_duplicates; /* Don't check duplicates for this JCR */
bool keep_sd_auth_key; /* Clear or not the SD auth key after connection*/
bool use_accurate_chksum; /* Use or not checksum option in accurate code */
bool run_pool_override;
bool run_inc_pool_override;
bool run_diff_pool_override;
bool sd_canceled; /* set if SD canceled */
+ bool RescheduleIncompleteJobs; /* set if incomplete can be rescheduled */
#endif /* DIRECTOR_DAEMON */
POOLMEM *compress_buf; /* Compression buffer */
int32_t compress_buf_size; /* Length of compression buffer */
void *pZLIB_compress_workset; /* zlib compression session data */
+ void *LZO_compress_workset; /* lzo compression session data */
int32_t replace; /* Replace options */
int32_t buf_size; /* length of buffer */
FF_PKT *ff; /* Find Files packet */
char stored_addr[MAX_NAME_LENGTH]; /* storage daemon address */
+ char PrevJob[MAX_NAME_LENGTH]; /* Previous job name assiciated with since time */
uint32_t StartFile;
uint32_t EndFile;
uint32_t StartBlock;