From: Kern Sibbald Date: Sun, 18 Apr 2010 17:08:13 +0000 (+0200) Subject: Update plugin API and 5.1.x New Features X-Git-Tag: Release-5.2.1~122 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=cc28204ec45cb2f9bb1437deb8ab04b3d858e969;p=bacula%2Fdocs Update plugin API and 5.1.x New Features --- diff --git a/docs/home-page/en/pages/documentation.php b/docs/home-page/en/pages/documentation.php index 36ac3d3c..6e946a05 100644 --- a/docs/home-page/en/pages/documentation.php +++ b/docs/home-page/en/pages/documentation.php @@ -60,7 +60,7 @@ HTML
  • New Features in Development Version - HTML + HTML

  • Bacula Main Reference Guide PDF diff --git a/docs/manuals/en/main/newfeatures.tex b/docs/manuals/en/main/newfeatures.tex index e64da567..d90350a7 100644 --- a/docs/manuals/en/main/newfeatures.tex +++ b/docs/manuals/en/main/newfeatures.tex @@ -1,3 +1,172 @@ +\chapter{New Features in 5.1.x} +This chapter presents the new features that have been added to the +current version of Bacula that is under development. This version will be +released at some later date, probably near the end of 2010. + +\section{Additions to the Plugin API} +The bfuncs structure has been extended to include a number of +new entrypoints. + +\subsection{bfuncs} +The bFuncs structure defines the callback entry points within Bacula +that the plugin can use register events, get Bacula values, set +Bacula values, and send messages to the Job output or debug output. + +The exact definition as of this writing is: +\begin{verbatim} +typedef struct s_baculaFuncs { + uint32_t size; + uint32_t version; + bRC (*registerBaculaEvents)(bpContext *ctx, ...); + bRC (*getBaculaValue)(bpContext *ctx, bVariable var, void *value); + bRC (*setBaculaValue)(bpContext *ctx, bVariable var, void *value); + bRC (*JobMessage)(bpContext *ctx, const char *file, int line, + int type, utime_t mtime, const char *fmt, ...); + bRC (*DebugMessage)(bpContext *ctx, const char *file, int line, + int level, const char *fmt, ...); + void *(*baculaMalloc)(bpContext *ctx, const char *file, int line, + size_t size); + void (*baculaFree)(bpContext *ctx, const char *file, int line, void *mem); + + /* New functions follow */ + bRC (*AddExclude)(bpContext *ctx, const char *file); + bRC (*AddInclude)(bpContext *ctx, const char *file); + bRC (*AddIncludeOptions)(bpContext *ctx, const char *opts); + bRC (*AddRegexToInclude)(bpContext *ctx, const char *item, int type); + bRC (*AddWildToInclude)(bpContext *ctx, const char *item, int type); + +} bFuncs; +\end{verbatim} + +\begin{description} +\item [AddExclude] can be called to exclude a file. The file + string passed may include wildcards that will be interpreted by + the {\bf fnmatch} subroutine. This function can be called + multiple times, and each time the file specified will be added + to the list of files to be excluded. Note, this function only + permits adding excludes of specific file or directory names, + or files matched by the rather simple fnmatch mechanism. + See below for information on doing wild-card and regex excludes. + +\item [NewInclude] can be called to create a new Include block. This + block will be added before any user defined Include blocks. This + function can be called multiple times, but each time, it will create + a new Include section (not normally needed). This function should + be called only if you want to add an entirely new Include block. + +\item [AddInclude] can be called to add new files/directories to + be included. They are added to the current Include block. If + NewInclude has not been included, the current Include block is + the last one that the user created. This function + should be used only if you want to add totally new files/directories + to be included in the backup. + +\item [NewOptions] adds a new Options block to the current Include + in front of any other Options blocks. This permits the plugin to + add exclude directives (wild-cards and regexes) in front of the + user Options, and thus prevent certain files from being backed up. + This can be useful if the plugin backs up files, and they should + not be also backed up by the main Bacula code. This function + may be called multiple times, and each time, it creates a new + prepended Options block. Note: normally you want to call this + entry point prior to calling AddOptions, AddRegex, or AddWild. + +\item [AddOptions] allows the plugin it set options in + the current Options block, which is normally created with the + NewOptions call just prior to adding Include Options. + The permitted options are passed as a character string, where + each character has a specific meaning as defined below: + + \begin{description} + \item [a] always replace files (default). + \item [e] exclude rather than include. + \item [h] no recursion into subdirectories. + \item [H] do not handle hard links. + \item [i] ignore case in wildcard and regex matches. + \item [M] compute an MD5 sum. + \item [p] use a portable data format on Windows (not recommended). + \item [R] backup resource forks and Findr Info. + \item [r] read from a fifo + \item [S1] compute an SHA1 sum. + \item [S2] compute an SHA256 sum. + \item [S3] comput an SHA512 sum. + \item [s] handle sparse files. + \item [m] use st\_mtime only for file differences. + \item [k] restore the st\_atime after accessing a file. + \item [A] enable ACL backup. + \item [Vxxx:] specify verify options. Must terminate with : + \item [Cxxx:] specify accurate options. Must terminate with : + \item [Jxxx:] specify base job Options. Must terminate with : + \item [Pnnn:] specify integer nnn paths to strip. Must terminate with : + \item [w] if newer + \item [Zn] specify gzip compression level n. + \item [K] do not use st\_atime in backup decision. + \item [c] check if file changed during backup. + \item [N] honor no dump flag. + \item [X] enable backup of extended attributes. + \end{description} + +\item [AddRegex] adds a regex expression to the current Options block. + The fillowing options are permitted: + \begin{description} + \item [ ] (a blank) regex applies to whole path and filename. + \item [F] regex applies only to the filename (directory or path stripped). + \item [D] regex applies only to the directory (path) part of the name. + \end{description} + +\item [AddWild] adds a wildcard expression to the current Options block. + The fillowing options are permitted: + \begin{description} + \item [ ] (a blank) regex applies to whole path and filename. + \item [F] regex applies only to the filename (directory or path stripped). + \item [D] regex applies only to the directory (path) part of the name. + \end{description} + +\end{description} + + +\subsection{Bacula events} +The list of events has been extended to include: + +\begin{verbatim} +typedef enum { + bEventJobStart = 1, + bEventJobEnd = 2, + bEventStartBackupJob = 3, + bEventEndBackupJob = 4, + bEventStartRestoreJob = 5, + bEventEndRestoreJob = 6, + bEventStartVerifyJob = 7, + bEventEndVerifyJob = 8, + bEventBackupCommand = 9, + bEventRestoreCommand = 10, + bEventLevel = 11, + bEventSince = 12, + + /* New events */ + bEventCancelCommand = 13, + bEventVssBackupAddComponents = 14, + bEventVssRestoreLoadComponentMetadata = 15, + bEventVssRestoreSetComponentsSelected = 16, + bEventRestoreObject = 17, + bEventEndFileSet = 18 + +} bEventType; +\end{verbatim} + +\begin{description} +\item [bEventCancelCommand] is called whenever the currently + running Job is cancelled */ + +\item [bEventVssBackupAddComponents] + +\end{description} + + + +%% +%% + \chapter{New Features in 5.0.1} This chapter presents the new features that are in the released Bacula version