X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fjcr.h;h=85e8e98923530af0e678bbd94050185553fbd8cb;hb=7503a438c87931cf1748bd0fda3bb932e2af3346;hp=c382d499748afae2f176646a327c92ff94114d34;hpb=f4fadeaf83a912e0a19c19eacd0c7113b21f0a67;p=bacula%2Fbacula diff --git a/bacula/src/jcr.h b/bacula/src/jcr.h index c382d49974..85e8e98923 100644 --- a/bacula/src/jcr.h +++ b/bacula/src/jcr.h @@ -10,7 +10,7 @@ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -51,11 +51,12 @@ #define JT_VERIFY 'V' /* Verify Job */ #define JT_RESTORE 'R' /* Restore Job */ #define JT_CONSOLE 'C' /* console program */ -#define JT_SYSTEM 'S' /* internal system "job" */ +#define JT_SYSTEM 'I' /* internal system "job" */ #define JT_ADMIN 'D' /* admin job */ #define JT_ARCHIVE 'A' /* Archive Job */ #define JT_COPY 'Y' /* Copy Job */ #define JT_MIGRATION 'M' /* Migration Job */ +#define JT_SCAN 'S' /* Scan Job */ /* Job Status. Some of these are stored in the DB */ #define JS_Created 'C' /* created but not yet running */ @@ -86,6 +87,8 @@ #define foreach_jcr(jcr) \ for ((jcr)=NULL; ((jcr)=get_next_jcr(jcr)); ) +#define SD_APPEND 1 +#define SD_READ 0 struct JCR; @@ -127,6 +130,7 @@ struct JCR { time_t end_time; /* job end time */ POOLMEM *client_name; /* client name */ POOLMEM *RestoreBootstrap; /* Bootstrap file to restore */ + POOLMEM *stime; /* start time for incremental/differential */ char *sd_auth_key; /* SD auth key */ MSGS *jcr_msgs; /* Copy of message resource -- actually used */ uint32_t ClientId; /* Client associated with Job */ @@ -141,7 +145,6 @@ struct JCR { /* This should be empty in the library */ #ifdef DIRECTOR_DAEMON -#define MAX_STORE 2 /* Director Daemon specific part of JCR */ pthread_t SD_msg_chan; /* Message channel thread id */ pthread_cond_t term_wait; /* Wait for job termination */ @@ -150,7 +153,7 @@ struct JCR { BSOCK *ua; /* User agent */ JOB *job; /* Job resource */ JOB *verify_job; /* Job resource of verify target job */ - alist *storage[MAX_STORE]; /* Storage possibilities */ + alist *storage; /* Storage possibilities */ STORE *store; /* Storage daemon selected */ CLIENT *client; /* Client resource */ POOL *pool; /* Pool resource */ @@ -172,19 +175,22 @@ struct JCR { FileId_t FileId; /* Last file id inserted */ uint32_t FileIndex; /* Last FileIndex processed */ POOLMEM *fname; /* name to put into catalog */ - POOLMEM *stime; /* start time for incremental/differential */ JOB_DBR jr; /* Job DB record for current job */ - JOB_DBR *verify_jr; /* Pointer to target job */ + JOB_DBR target_jr; /* target job */ + char FSCreateTime[MAX_TIME_LENGTH]; /* FileSet CreateTime as returned from DB */ + char since[MAX_TIME_LENGTH]; /* since time */ uint32_t RestoreJobId; /* Id specified by UA */ POOLMEM *client_uname; /* client uname */ int replace; /* Replace option */ - int saveMaxConcurrentJobs; /* save for restore jobs */ int NumVols; /* Number of Volume used in pool */ int reschedule_count; /* Number of times rescheduled */ 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 fn_printed; /* printed filename */ + bool write_part_after_job; /* Write part after job in SD */ + bool needs_sd; /* set if SD needed by Job */ + bool cloned; /* set if cloned */ #endif /* DIRECTOR_DAEMON */ @@ -192,6 +198,7 @@ struct JCR { /* File Daemon specific part of JCR */ uint32_t num_files_examined; /* files examined this job */ POOLMEM *last_fname; /* last file saved/verified */ + POOLMEM *acl_text; /* text of ACL for backup */ /*********FIXME********* add missing files and files to be retried */ int incremental; /* set if incremental for SINCE */ time_t mtime; /* begin time for SINCE */ @@ -222,7 +229,8 @@ struct JCR { pthread_cond_t job_start_wait; /* Wait for FD to start Job */ int type; DCR *dcr; /* device context record */ - DEVRES *device; /* device resource to use */ + alist *dcrs; /* list of dcrs open */ +// DEVRES *device; /* device resource to use */ POOLMEM *job_name; /* base Job name (not unique) */ POOLMEM *fileset_name; /* FileSet */ POOLMEM *fileset_md5; /* MD5 for FileSet */ @@ -238,7 +246,8 @@ struct JCR { bool spool_data; /* set to spool data */ int CurVol; /* Current Volume count */ DIRRES* director; /* Director resource */ - + bool write_part_after_job; /* Set to write part after job */ + uint32_t FileId; /* Last file id inserted */ /* Parmaters for Open Read Session */