]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/dird_conf.h
ebl Modify disk-changer to check if slot contains something before
[bacula/bacula] / bacula / src / dird / dird_conf.h
index dffce564285d00235ec6ada541b529c8a555de1d..031f81eff8d2fa32b85f22007c39b24b6059b558 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2008 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.
@@ -129,6 +129,7 @@ public:
    bool tls_enable;                   /* Enable TLS */
    bool tls_require;                  /* Require TLS */
    bool tls_verify_peer;              /* TLS Verify Client Certificate */
+   utime_t stats_retention;           /* Stats retention period in seconds */
 
    /* Methods */
    char *name() const;
@@ -185,6 +186,7 @@ enum {
    FileSet_ACL,
    Catalog_ACL,
    Where_ACL,
+   PluginOptions_ACL,
    Num_ACL                            /* keep last */
 };
 
@@ -229,6 +231,7 @@ public:
    char *db_password;
    char *db_user;
    char *db_name;
+   char *db_driver;                   /* Select appropriate driver */
    int   mult_db_connections;         /* set if multiple connections wanted */
 
    /* Methods */
@@ -289,6 +292,7 @@ public:
    alist *device;                     /* Alternate devices for this Storage */
    uint32_t MaxConcurrentJobs;        /* Maximume concurrent jobs */
    uint32_t NumConcurrentJobs;        /* number of concurrent jobs running */
+   uint32_t NumConcurrentReadJobs;    /* number of jobs reading */
    char *tls_ca_certfile;             /* TLS CA Certificate File */
    char *tls_ca_certdir;              /* TLS CA Certificate Directory */
    char *tls_certfile;                /* TLS Client Certificate File */
@@ -363,43 +367,37 @@ public:
    int   JobLevel;                    /* default backup/verify level */
    int   Priority;                    /* Job priority */
    int   RestoreJobId;                /* What -- JobId to restore */
+   int   RescheduleTimes;             /* Number of times to reschedule job */
+   int   replace;                     /* How (overwrite, ..) */
+   int   selection_type;
+
    char *RestoreWhere;                /* Where on disk to restore -- directory */
    char *RegexWhere;                  /* RegexWhere option */
    char *strip_prefix;                /* remove prefix from filename  */
    char *add_prefix;                  /* add prefix to filename  */
    char *add_suffix;                  /* add suffix to filename -- .old */
-   bool  where_use_regexp;            /* true if RestoreWhere is a BREGEXP */
    char *RestoreBootstrap;            /* Bootstrap file */
-   alist *RunScripts;                 /* Run {client} program {after|before} Job */
+   char *PluginOptions;               /* Options to pass to plugin */
    union {
       char *WriteBootstrap;           /* Where to write bootstrap Job updates */
       char *WriteVerifyList;          /* List of changed files */
    };
-   int   replace;                     /* How (overwrite, ..) */
    utime_t MaxRunTime;                /* max run time in seconds */
    utime_t MaxWaitTime;               /* max blocking time in seconds */
-   utime_t FullMaxWaitTime;           /* Max Full job wait time */
-   utime_t DiffMaxWaitTime;           /* Max Differential job wait time */
-   utime_t IncMaxWaitTime;            /* Max Incremental job wait time */
+   utime_t FullMaxRunTime;            /* Max Full job run time */
+   utime_t DiffMaxRunTime;            /* Max Differential job run time */
+   utime_t IncMaxRunTime;             /* Max Incremental job run time */
    utime_t MaxStartDelay;             /* max start delay in seconds */
+   utime_t MaxRunSchedTime;           /* max run time in seconds from Scheduled time*/
    utime_t RescheduleInterval;        /* Reschedule interval */
    utime_t JobRetention;              /* job retention period in seconds */
-   uint32_t MaxConcurrentJobs;        /* Maximum concurrent jobs */
+   utime_t MaxFullInterval;           /* Maximum time interval between Fulls */
+   utime_t MaxDiffInterval;           /* Maximum time interval between Diffs */
+   utime_t DuplicateJobProximity;     /* Permitted time between duplicicates */
    int64_t spool_size;                /* Size of spool file for this job */
-   int RescheduleTimes;               /* Number of times to reschedule job */
-   bool RescheduleOnError;            /* Set to reschedule on error */
-   bool PrefixLinks;                  /* prefix soft links with Where path */
-   bool PruneJobs;                    /* Force pruning of Jobs */
-   bool PruneFiles;                   /* Force pruning of Files */
-   bool PruneVolumes;                 /* Force pruning of Volumes */
-   bool SpoolAttributes;              /* Set to spool attributes in SD */
-   bool spool_data;                   /* Set to spool data in SD */
-   bool rerun_failed_levels;          /* Upgrade to rerun failed levels */
-   bool PreferMountedVolumes;         /* Prefer vols mounted rather than new one */
-   bool write_part_after_job;         /* Set to write part after job in SD */
-   bool enabled;                      /* Set if job enabled */
-   bool OptimizeJobScheduling;        /* Set if we should optimize Job scheduling */
-   
+   uint32_t MaxConcurrentJobs;        /* Maximum concurrent jobs */
+   uint32_t NumConcurrentJobs;        /* number of concurrent jobs running */
+
    MSGS      *messages;               /* How and where to send messages */
    SCHED     *schedule;               /* When -- Automatic schedule */
    CLIENT    *client;                 /* Who to backup */
@@ -410,13 +408,33 @@ public:
    POOL      *inc_pool;               /* Pool for Incremental backups */
    POOL      *diff_pool;              /* Pool for Differental backups */
    char      *selection_pattern;
-   int        selection_type;
    union {
-      JOB       *verify_job;          /* Job name to verify */
+      JOB    *verify_job;             /* Job name to verify */
    };
    JOB       *jobdefs;                /* Job defaults */
    alist     *run_cmds;               /* Run commands */
-   uint32_t NumConcurrentJobs;        /* number of concurrent jobs running */
+   alist *RunScripts;                 /* Run {client} program {after|before} Job */
+
+   bool where_use_regexp;             /* true if RestoreWhere is a BREGEXP */
+   bool RescheduleOnError;            /* Set to reschedule on error */
+   bool PrefixLinks;                  /* prefix soft links with Where path */
+   bool PruneJobs;                    /* Force pruning of Jobs */
+   bool PruneFiles;                   /* Force pruning of Files */
+   bool PruneVolumes;                 /* Force pruning of Volumes */
+   bool SpoolAttributes;              /* Set to spool attributes in SD */
+   bool spool_data;                   /* Set to spool data in SD */
+   bool rerun_failed_levels;          /* Upgrade to rerun failed levels */
+   bool PreferMountedVolumes;         /* Prefer vols mounted rather than new one */
+   bool write_part_after_job;         /* Set to write part after job in SD */
+   bool enabled;                      /* Set if job enabled */
+   bool OptimizeJobScheduling;        /* Set if we should optimize Job scheduling */
+   bool stats_enabled;                /* Keep job records in a table for long term statistics */
+   bool accurate;                     /* Set if it is an accurate backup job */
+   bool AllowDuplicateJobs;           /* Allow duplicate jobs */
+   bool AllowHigherDuplicates;        /* Permit Higher Level */
+   bool CancelQueuedDuplicates;       /* Cancel queued jobs */
+   bool CancelRunningDuplicates;      /* Cancel Running jobs */
+   
 
    /* Methods */
    char *name() const;
@@ -425,7 +443,7 @@ public:
 inline char *JOB::name() const { return hdr.name; }
 
 #undef  MAX_FOPTS
-#define MAX_FOPTS 34
+#define MAX_FOPTS 40
 
 /* File options structure */
 struct FOPTS {
@@ -442,6 +460,8 @@ struct FOPTS {
    alist drivetype;                   /* drive type limitation */
    char *reader;                      /* reader program */
    char *writer;                      /* writer program */
+   char *ignoredir;                   /* ignoredir string */
+   char *plugin;                      /* plugin program */
 };
 
 
@@ -451,6 +471,7 @@ struct INCEXE {
    FOPTS **opts_list;                 /* options list */
    int num_opts;                      /* number of options items */
    alist name_list;                   /* filename list -- holds char * */
+   alist plugin_list;                 /* filename list for plugins */
 };
 
 /*
@@ -541,7 +562,7 @@ public:
    bool  Recycle;                     /* default for media recycle yes/no */
    POOL  *RecyclePool;                /* RecyclePool destination when media is purged */
    alist *CopyPool;                   /* List of copy pools */
-   CAT *Catalog;                      /* Catalog to be used */
+   CAT *catalog;                      /* Catalog to be used */
    /* Methods */
    char *name() const;
 };