]> git.sur5r.net Git - bacula/bacula/blob - bacula/projects
Add Swedish sv.po file
[bacula/bacula] / bacula / projects
1                 
2 Projects:
3                      Bacula Projects Roadmap 
4                     Status updated 14 April 2007
5                    After re-ordering in vote priority
6
7 Items Completed:
8 Item:  18   Quick release of FD-SD connection after backup.
9 Item:  40   Include JobID in spool file name
10 Item:  25   Implement huge exclude list support using dlist   
11 Item:  41   Enable to relocate files and directories when restoring
12
13 Summary:
14 Item:   1   Accurate restoration of renamed/deleted files
15 Item:   2   Implement a Bacula GUI/management tool.
16 Item:   3   Allow FD to initiate a backup
17 Item:   4   Merge multiple backups (Synthetic Backup or Consolidation).
18 Item:   5   Deletion of Disk-Based Bacula Volumes
19 Item:   6   Implement Base jobs.
20 Item:   7   Implement creation and maintenance of copy pools
21 Item:   8   Directive/mode to backup only file changes, not entire file
22 Item:   9   Implement a server-side compression feature
23 Item:  10   Improve Bacula's tape and drive usage and cleaning management.
24 Item:  11   Allow skipping execution of Jobs
25 Item:  12   Add a scheduling syntax that permits weekly rotations
26 Item:  13   Archival (removal) of User Files to Tape
27 Item:  14   Cause daemons to use a specific IP address to source communications
28 Item:  15   Multiple threads in file daemon for the same job
29 Item:  16   Add Plug-ins to the FileSet Include statements.
30 Item:  17   Restore only file attributes (permissions, ACL, owner, group...)
31 Item:  18*  Quick release of FD-SD connection after backup.
32 Item:  19   Implement a Python interface to the Bacula catalog.
33 Item:  20   Archive data
34 Item:  21   Split documentation
35 Item:  22   Implement support for stacking arbitrary stream filters, sinks.
36 Item:  23   Implement from-client and to-client on restore command line.
37 Item:  24   Add an override in Schedule for Pools based on backup types.
38 Item:  25*  Implement huge exclude list support using hashing.
39 Item:  26   Implement more Python events in Bacula.
40 Item:  27   Incorporation of XACML2/SAML2 parsing
41 Item:  28   Filesystem watch triggered backup.
42 Item:  29   Allow inclusion/exclusion of files in a fileset by creation/mod times
43 Item:  30   Tray monitor window cleanups
44 Item:  31   Implement multiple numeric backup levels as supported by dump
45 Item:  32   Automatic promotion of backup levels
46 Item:  33   Clustered file-daemons
47 Item:  34   Commercial database support
48 Item:  35   Automatic disabling of devices
49 Item:  36   An option to operate on all pools with update vol parameters
50 Item:  37   Add an item to the restore option where you can select a pool
51 Item:  38   Include timestamp of job launch in "stat clients" output
52 Item:  39   Message mailing based on backup types
53 Item:  40*  Include JobID in spool file name
54 Item:  41*  Enable to relocate files and directories when restoring
55
56 Item  1:  Accurate restoration of renamed/deleted files
57   Date:   28 November 2005
58   Origin: Martin Simmons (martin at lispworks dot com)
59   Status: Robert Nelson will implement this
60
61   What:   When restoring a fileset for a specified date (including "most
62           recent"), Bacula should give you exactly the files and directories
63           that existed at the time of the last backup prior to that date.
64
65           Currently this only works if the last backup was a Full backup.
66           When the last backup was Incremental/Differential, files and
67           directories that have been renamed or deleted since the last Full
68           backup are not currently restored correctly.  Ditto for files with
69           extra/fewer hard links than at the time of the last Full backup.
70
71   Why:    Incremental/Differential would be much more useful if this worked.
72
73   Notes:  Merging of multiple backups into a single one seems to
74           rely on this working, otherwise the merged backups will not be
75           truly equivalent to a Full backup.  
76
77           Kern: notes shortened. This can be done without the need for 
78           inodes. It is essentially the same as the current Verify job,
79           but one additional database record must be written, which does 
80           not need any database change.
81
82           Kern: see if we can correct restoration of directories if
83           replace=ifnewer is set.  Currently, if the directory does not
84           exist, a "dummy" directory is created, then when all the files
85           are updated, the dummy directory is newer so the real values
86           are not updated.
87
88 Item  2:  Implement a Bacula GUI/management tool.
89   Origin: Kern
90   Date:   28 October 2005
91   Status: In progress
92
93   What:   Implement a Bacula console, and management tools
94           probably using Qt3 and C++.
95
96   Why:    Don't we already have a wxWidgets GUI?  Yes, but
97           it is written in C++ and changes to the user interface
98           must be hand tailored using C++ code. By developing
99           the user interface using Qt designer, the interface
100           can be very easily updated and most of the new Python       
101           code will be automatically created.  The user interface
102           changes become very simple, and only the new features
103           must be implement.  In addition, the code will be in
104           Python, which will give many more users easy (or easier)
105           access to making additions or modifications.
106
107  Notes:   There is a partial Python-GTK implementation
108           Lucas Di Pentima <lucas at lunix dot com dot ar> but
109           it is no longer being developed.
110
111 Item  3:  Allow FD to initiate a backup
112   Origin: Frank Volf (frank at deze dot org)
113   Date:   17 November 2005
114   Status:
115
116    What:  Provide some means, possibly by a restricted console that
117           allows a FD to initiate a backup, and that uses the connection
118           established by the FD to the Director for the backup so that
119           a Director that is firewalled can do the backup.
120
121    Why:   Makes backup of laptops much easier.
122
123
124 Item  4:  Merge multiple backups (Synthetic Backup or Consolidation).
125   Origin: Marc Cousin and Eric Bollengier 
126   Date:   15 November 2005
127   Status: Waiting implementation. Depends on first implementing 
128           project Item 2 (Migration) which is now done.
129
130   What:   A merged backup is a backup made without connecting to the Client.
131           It would be a Merge of existing backups into a single backup.
132           In effect, it is like a restore but to the backup medium.
133
134           For instance, say that last Sunday we made a full backup.  Then
135           all week long, we created incremental backups, in order to do
136           them fast.  Now comes Sunday again, and we need another full.
137           The merged backup makes it possible to do instead an incremental
138           backup (during the night for instance), and then create a merged
139           backup during the day, by using the full and incrementals from
140           the week.  The merged backup will be exactly like a full made
141           Sunday night on the tape, but the production interruption on the
142           Client will be minimal, as the Client will only have to send
143           incrementals.
144
145           In fact, if it's done correctly, you could merge all the
146           Incrementals into single Incremental, or all the Incrementals
147           and the last Differential into a new Differential, or the Full,
148           last differential and all the Incrementals into a new Full
149           backup.  And there is no need to involve the Client.
150
151   Why:    The benefit is that :
152           - the Client just does an incremental ;
153           - the merged backup on tape is just as a single full backup,
154             and can be restored very fast.
155
156           This is also a way of reducing the backup data since the old
157           data can then be pruned (or not) from the catalog, possibly
158           allowing older volumes to be recycled
159
160 Item  5:  Deletion of Disk-Based Bacula Volumes
161   Date:   Nov 25, 2005
162   Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (edited
163           by Kern)
164   Status:         
165
166    What:  Provide a way for Bacula to automatically remove Volumes
167           from the filesystem, or optionally to truncate them.
168           Obviously, the Volume must be pruned prior removal.
169
170   Why:    This would allow users more control over their Volumes and
171           prevent disk based volumes from consuming too much space.
172
173   Notes:  The following two directives might do the trick:
174
175           Volume Data Retention = <time period>
176           Remove Volume After = <time period>
177
178           The migration project should also remove a Volume that is
179           migrated. This might also work for tape Volumes.
180
181 Item  6:  Implement Base jobs.
182   Date:   28 October 2005
183   Origin: Kern
184   Status: 
185   
186   What:   A base job is sort of like a Full save except that you 
187           will want the FileSet to contain only files that are
188           unlikely to change in the future (i.e.  a snapshot of
189           most of your system after installing it).  After the
190           base job has been run, when you are doing a Full save,
191           you specify one or more Base jobs to be used.  All
192           files that have been backed up in the Base job/jobs but
193           not modified will then be excluded from the backup.
194           During a restore, the Base jobs will be automatically
195           pulled in where necessary.
196
197   Why:    This is something none of the competition does, as far as
198           we know (except perhaps BackupPC, which is a Perl program that
199           saves to disk only).  It is big win for the user, it
200           makes Bacula stand out as offering a unique
201           optimization that immediately saves time and money.
202           Basically, imagine that you have 100 nearly identical
203           Windows or Linux machine containing the OS and user
204           files.  Now for the OS part, a Base job will be backed
205           up once, and rather than making 100 copies of the OS,
206           there will be only one.  If one or more of the systems
207           have some files updated, no problem, they will be
208           automatically restored.
209
210   Notes:  Huge savings in tape usage even for a single machine.
211           Will require more resources because the DIR must send
212           FD a list of files/attribs, and the FD must search the
213           list and compare it for each file to be saved.
214
215 Item  7:  Implement creation and maintenance of copy pools
216   Date:   27 November 2005
217   Origin: David Boyes (dboyes at sinenomine dot net)
218   Status:
219
220   What:   I would like Bacula to have the capability to write copies
221           of backed-up data on multiple physical volumes selected
222           from different pools without transferring the data
223           multiple times, and to accept any of the copy volumes
224           as valid for restore.
225
226   Why:    In many cases, businesses are required to keep offsite
227           copies of backup volumes, or just wish for simple
228           protection against a human operator dropping a storage
229           volume and damaging it. The ability to generate multiple
230           volumes in the course of a single backup job allows
231           customers to simple check out one copy and send it
232           offsite, marking it as out of changer or otherwise
233           unavailable. Currently, the library and magazine
234           management capability in Bacula does not make this process
235           simple.
236
237           Restores would use the copy of the data on the first
238           available volume, in order of copy pool chain definition.
239
240           This is also a major scalability issue -- as the number of
241           clients increases beyond several thousand, and the volume
242           of data increases, transferring the data multiple times to
243           produce additional copies of the backups will become
244           physically impossible due to transfer speed
245           issues. Generating multiple copies at server side will
246           become the only practical option. 
247
248   How:    I suspect that this will require adding a multiplexing
249           SD that appears to be a SD to a specific FD, but 1-n FDs
250           to the specific back end SDs managing the primary and copy
251           pools.  Storage pools will also need to acquire parameters
252           to define the pools to be used for copies. 
253
254   Notes:  I would commit some of my developers' time if we can agree
255           on the design and behavior. 
256
257 Item  8:  Directive/mode to backup only file changes, not entire file
258   Date:   11 November 2005
259   Origin: Joshua Kugler <joshua dot kugler at uaf dot edu>
260           Marek Bajon <mbajon at bimsplus dot com dot pl>
261   Status: 
262
263   What:   Currently when a file changes, the entire file will be backed up in
264           the next incremental or full backup.  To save space on the tapes
265           it would be nice to have a mode whereby only the changes to the
266           file would be backed up when it is changed.
267
268   Why:    This would save lots of space when backing up large files such as 
269           logs, mbox files, Outlook PST files and the like.
270
271   Notes:  This would require the usage of disk-based volumes as comparing 
272           files would not be feasible using a tape drive.
273
274 Item  9:  Implement a server-side compression feature
275   Date:   18 December 2006
276   Origin: Vadim A. Umanski , e-mail umanski@ext.ru
277   Status:
278   What:   The ability to compress backup data on server receiving data
279           instead of doing that on client sending data.
280   Why:    The need is practical. I've got some machines that can send
281           data to the network 4 or 5 times faster than compressing
282           them (I've measured that). They're using fast enough SCSI/FC
283           disk subsystems but rather slow CPUs (ex. UltraSPARC II).
284           And the backup server has got a quite fast CPUs (ex. Dual P4
285           Xeons) and quite a low load. When you have 20, 50 or 100 GB
286           of raw data - running a job 4 to 5 times faster - that
287           really matters. On the other hand, the data can be
288           compressed 50% or better - so losing twice more space for
289           disk backup is not good at all. And the network is all mine
290           (I have a dedicated management/provisioning network) and I
291           can get as high bandwidth as I need - 100Mbps, 1000Mbps...
292           That's why the server-side compression feature is needed!
293   Notes:
294
295 Item 10:  Improve Bacula's tape and drive usage and cleaning management.
296   Date:   8 November 2005, November 11, 2005
297   Origin: Adam Thornton <athornton at sinenomine dot net>,
298           Arno Lehmann <al at its-lehmann dot de>
299   Status:
300
301   What:   Make Bacula manage tape life cycle information, tape reuse
302           times and drive cleaning cycles.
303
304   Why:    All three parts of this project are important when operating
305           backups.
306           We need to know which tapes need replacement, and we need to
307           make sure the drives are cleaned when necessary.  While many
308           tape libraries and even autoloaders can handle all this
309           automatically, support by Bacula can be helpful for smaller
310           (older) libraries and single drives.  Limiting the number of
311           times a tape is used might prevent tape errors when using
312           tapes until the drives can't read it any more.  Also, checking
313           drive status during operation can prevent some failures (as I
314           [Arno] had to learn the hard way...)
315
316   Notes:  First, Bacula could (and even does, to some limited extent)
317           record tape and drive usage.  For tapes, the number of mounts,
318           the amount of data, and the time the tape has actually been
319           running could be recorded.  Data fields for Read and Write
320           time and Number of mounts already exist in the catalog (I'm
321           not sure if VolBytes is the sum of all bytes ever written to
322           that volume by Bacula).  This information can be important
323           when determining which media to replace.  The ability to mark
324           Volumes as "used up" after a given number of write cycles
325           should also be implemented so that a tape is never actually
326           worn out.  For the tape drives known to Bacula, similar
327           information is interesting to determine the device status and
328           expected life time: Time it's been Reading and Writing, number
329           of tape Loads / Unloads / Errors.  This information is not yet
330           recorded as far as I [Arno] know.  A new volume status would
331           be necessary for the new state, like "Used up" or "Worn out".
332           Volumes with this state could be used for restores, but not
333           for writing. These volumes should be migrated first (assuming
334           migration is implemented) and, once they are no longer needed,
335           could be moved to a Trash pool.
336
337           The next step would be to implement a drive cleaning setup.
338           Bacula already has knowledge about cleaning tapes.  Once it
339           has some information about cleaning cycles (measured in drive
340           run time, number of tapes used, or calender days, for example)
341           it can automatically execute tape cleaning (with an
342           autochanger, obviously) or ask for operator assistance loading
343           a cleaning tape.
344
345           The final step would be to implement TAPEALERT checks not only
346           when changing tapes and only sending the information to the
347           administrator, but rather checking after each tape error,
348           checking on a regular basis (for example after each tape
349           file), and also before unloading and after loading a new tape.
350           Then, depending on the drives TAPEALERT state and the known
351           drive cleaning state Bacula could automatically schedule later
352           cleaning, clean immediately, or inform the operator.
353
354           Implementing this would perhaps require another catalog change
355           and perhaps major changes in SD code and the DIR-SD protocol,
356           so I'd only consider this worth implementing if it would
357           actually be used or even needed by many people.
358
359           Implementation of these projects could happen in three distinct
360           sub-projects: Measuring Tape and Drive usage, retiring
361           volumes, and handling drive cleaning and TAPEALERTs.
362
363 Item 11:  Allow skipping execution of Jobs
364   Date:   29 November 2005
365   Origin: Florian Schnabel <florian.schnabel at docufy dot de>
366   Status:
367
368     What: An easy option to skip a certain job  on a certain date.
369      Why: You could then easily skip tape backups on holidays.  Especially
370           if you got no autochanger and can only fit one backup on a tape
371           that would be really handy, other jobs could proceed normally
372           and you won't get errors that way.
373
374 Item 12:  Add a scheduling syntax that permits weekly rotations
375    Date:  15 December 2006
376   Origin: Gregory Brauer (greg at wildbrain dot com)
377   Status:
378
379    What:  Currently, Bacula only understands how to deal with weeks of the
380           month or weeks of the year in schedules.  This makes it impossible
381           to do a true weekly rotation of tapes.  There will always be a
382           discontinuity that will require disruptive manual intervention at
383           least monthly or yearly because week boundaries never align with
384           month or year boundaries.
385
386           A solution would be to add a new syntax that defines (at least)
387           a start timestamp, and repetition period.
388
389    Why:   Rotated backups done at weekly intervals are useful, and Bacula
390           cannot currently do them without extensive hacking.
391
392    Notes: Here is an example syntax showing a 3-week rotation where full
393           Backups would be performed every week on Saturday, and an
394           incremental would be performed every week on Tuesday.  Each
395           set of tapes could be removed from the loader for the following
396           two cycles before coming back and being reused on the third
397           week.  Since the execution times are determined by intervals
398           from a given point in time, there will never be any issues with
399           having to adjust to any sort of arbitrary time boundary.  In
400           the example provided, I even define the starting schedule
401           as crossing both a year and a month boundary, but the run times
402           would be based on the "Repeat" value and would therefore happen
403           weekly as desired.
404
405
406           Schedule {
407               Name = "Week 1 Rotation"
408               #Saturday.  Would run Dec 30, Jan 20, Feb 10, etc.
409               Run {
410                   Options {
411                       Type   = Full
412                       Start  = 2006-12-30 01:00
413                       Repeat = 3w
414                   }
415               }
416               #Tuesday.  Would run Jan 2, Jan 23, Feb 13, etc.
417               Run {
418                   Options {
419                       Type   = Incremental
420                       Start  = 2007-01-02 01:00
421                       Repeat = 3w
422                   }
423               }
424           }
425
426           Schedule {
427               Name = "Week 2 Rotation"
428               #Saturday.  Would run Jan 6, Jan 27, Feb 17, etc.
429               Run {
430                   Options {
431                       Type   = Full
432                       Start  = 2007-01-06 01:00
433                       Repeat = 3w
434                   }
435               }
436               #Tuesday.  Would run Jan 9, Jan 30, Feb 20, etc.
437               Run {
438                   Options {
439                       Type   = Incremental
440                       Start  = 2007-01-09 01:00
441                       Repeat = 3w
442                   }
443               }
444           }
445
446           Schedule {
447               Name = "Week 3 Rotation"
448               #Saturday.  Would run Jan 13, Feb 3, Feb 24, etc.
449               Run {
450                   Options {
451                       Type   = Full
452                       Start  = 2007-01-13 01:00
453                       Repeat = 3w
454                   }
455               }
456               #Tuesday.  Would run Jan 16, Feb 6, Feb 27, etc.
457               Run {
458                   Options {
459                       Type   = Incremental
460                       Start  = 2007-01-16 01:00
461                       Repeat = 3w
462                   }
463               }
464           }
465
466 Item 13:  Archival (removal) of User Files to Tape
467   Date:   Nov. 24/2005 
468   Origin: Ray Pengelly [ray at biomed dot queensu dot ca
469   Status: 
470
471   What:   The ability to archive data to storage based on certain parameters
472           such as age, size, or location.  Once the data has been written to
473           storage and logged it is then pruned from the originating
474           filesystem. Note! We are talking about user's files and not
475           Bacula Volumes.
476
477   Why:    This would allow fully automatic storage management which becomes
478           useful for large datastores.  It would also allow for auto-staging
479           from one media type to another.
480
481           Example 1) Medical imaging needs to store large amounts of data.
482           They decide to keep data on their servers for 6 months and then put
483           it away for long term storage.  The server then finds all files
484           older than 6 months writes them to tape.  The files are then removed
485           from the server.
486
487           Example 2) All data that hasn't been accessed in 2 months could be
488           moved from high-cost, fibre-channel disk storage to a low-cost
489           large-capacity SATA disk storage pool which doesn't have as quick of
490           access time.  Then after another 6 months (or possibly as one
491           storage pool gets full) data is migrated to Tape.
492
493 Item 14:  Cause daemons to use a specific IP address to source communications
494  Origin:  Bill Moran <wmoran@collaborativefusion.com>
495  Date:    18 Dec 2006
496  Status:
497  What:    Cause Bacula daemons (dir, fd, sd) to always use the ip address
498           specified in the [DIR|DF|SD]Addr directive as the source IP
499           for initiating communication.
500  Why:     On complex networks, as well as extremely secure networks, it's
501           not unusual to have multiple possible routes through the network.
502           Often, each of these routes is secured by different policies
503           (effectively, firewalls allow or deny different traffic depending
504           on the source address)
505           Unfortunately, it can sometimes be difficult or impossible to
506           represent this in a system routing table, as the result is
507           excessive subnetting that quickly exhausts available IP space.
508           The best available workaround is to provide multiple IPs to
509           a single machine that are all on the same subnet.  In order
510           for this to work properly, applications must support the ability
511           to bind outgoing connections to a specified address, otherwise
512           the operating system will always choose the first IP that
513           matches the required route.
514  Notes:   Many other programs support this.  For example, the following
515           can be configured in BIND:
516           query-source address 10.0.0.1;
517           transfer-source 10.0.0.2;
518           Which means queries from this server will always come from
519           10.0.0.1 and zone transfers will always originate from
520           10.0.0.2.
521
522 Item 15:  Multiple threads in file daemon for the same job
523   Date:   27 November 2005
524   Origin: Ove Risberg (Ove.Risberg at octocode dot com)
525   Status:
526
527   What:   I want the file daemon to start multiple threads for a backup
528           job so the fastest possible backup can be made.
529
530           The file daemon could parse the FileSet information and start
531           one thread for each File entry located on a separate
532           filesystem.
533
534           A confiuration option in the job section should be used to
535           enable or disable this feature. The confgutration option could
536           specify the maximum number of threads in the file daemon.
537
538           If the theads could spool the data to separate spool files
539           the restore process will not be much slower.
540
541   Why:    Multiple concurrent backups of a large fileserver with many
542           disks and controllers will be much faster.
543
544 Item 16:  Add Plug-ins to the FileSet Include statements.
545   Date:   28 October 2005
546   Origin:
547   Status: Partially coded in 1.37 -- much more to do.
548
549   What:   Allow users to specify wild-card and/or regular
550           expressions to be matched in both the Include and
551           Exclude directives in a FileSet.  At the same time,
552           allow users to define plug-ins to be called (based on
553           regular expression/wild-card matching).
554
555   Why:    This would give the users the ultimate ability to control
556           how files are backed up/restored.  A user could write a
557           plug-in knows how to backup his Oracle database without
558           stopping/starting it, for example.
559
560 Item 17:  Restore only file attributes (permissions, ACL, owner, group...)
561   Origin: Eric Bollengier
562   Date:   30/12/2006
563   Status:
564
565   What:   The goal of this project is to be able to restore only rights
566           and attributes of files without crushing them.
567
568   Why:    Who have never had to repair a chmod -R 777, or a wild update
569           of recursive right under Windows? At this time, you must have
570           enough space to restore data, dump attributes (easy with acl,
571           more complex with unix/windows rights) and apply them to your 
572           broken tree. With this options, it will be very easy to compare
573           right or ACL over the time.
574
575   Notes:  If the file is here, we skip restore and we change rights.
576           If the file isn't here, we can create an empty one and apply
577           rights or do nothing.
578
579 Item 18:  Quick release of FD-SD connection after backup.
580   Origin: Frank Volf (frank at deze dot org)
581   Date:   17 November 2005
582   Status: Done -- implemented by Kern -- in CVS 26Jan07
583
584    What:  In the Bacula implementation a backup is finished after all data
585           and attributes are successfully written to storage.  When using a
586           tape backup it is very annoying that a backup can take a day,
587           simply because the current tape (or whatever) is full and the
588           administrator has not put a new one in.  During that time the
589           system cannot be taken off-line, because there is still an open
590           session between the storage daemon and the file daemon on the
591           client.
592
593           Although this is a very good strategy for making "safe backups"
594           This can be annoying for e.g.  laptops, that must remain
595           connected until the backup is completed.
596
597           Using a new feature called "migration" it will be possible to
598           spool first to harddisk (using a special 'spool' migration
599           scheme) and then migrate the backup to tape.
600
601           There is still the problem of getting the attributes committed.
602           If it takes a very long time to do, with the current code, the
603           job has not terminated, and the File daemon is not freed up.  The
604           Storage daemon should release the File daemon as soon as all the
605           file data and all the attributes have been sent to it (the SD).
606           Currently the SD waits until everything is on tape and all the
607           attributes are transmitted to the Director before signaling
608           completion to the FD. I don't think I would have any problem
609           changing this.  The reason is that even if the FD reports back to
610           the Dir that all is OK, the job will not terminate until the SD
611           has done the same thing -- so in a way keeping the SD-FD link
612           open to the very end is not really very productive ...
613
614    Why:   Makes backup of laptops much faster.
615
616 Item 19:  Implement a Python interface to the Bacula catalog.
617   Date:   28 October 2005
618   Origin: Kern
619   Status: 
620
621   What:   Implement an interface for Python scripts to access
622           the catalog through Bacula.
623
624   Why:    This will permit users to customize Bacula through
625           Python scripts.
626
627 Item 20:  Archive data
628   Date:   15/5/2006
629   Origin: calvin streeting calvin at absentdream dot com
630   Status:
631
632   What:   The abilty to archive to media (dvd/cd) in a uncompressed format
633           for dead filing (archiving not backing up)
634
635     Why:  At my works when jobs are finished and moved off of the main file
636           servers (raid based systems) onto a simple linux file server (ide based
637           system) so users can find old information without contacting the IT
638           dept.
639
640           So this data dosn't realy change it only gets added to,
641           But it also needs backing up.  At the moment it takes
642           about 8 hours to back up our servers (working data) so
643           rather than add more time to existing backups i am trying
644           to implement a system where we backup the acrhive data to
645           cd/dvd these disks would only need to be appended to
646           (burn only new/changed files to new disks for off site
647           storage).  basialy understand the differnce between
648           achive data and live data.
649
650   Notes:  Scan the data and email me when it needs burning divide
651           into predifind chunks keep a recored of what is on what
652           disk make me a label (simple php->mysql=>pdf stuff) i
653           could do this bit ability to save data uncompresed so
654           it can be read in any other system (future proof data)
655           save the catalog with the disk as some kind of menu
656           system 
657
658 Item 21:  Split documentation
659   Origin: Maxx <maxxatworkat gmail dot com>
660   Date:   27th July 2006
661   Status:
662
663   What:   Split documentation in several books
664
665   Why:    Bacula manual has now more than 600 pages, and looking for
666           implementation details is getting complicated.  I think
667           it would be good to split the single volume in two or
668           maybe three parts:
669
670           1) Introduction, requirements and tutorial, typically
671              are useful only until first installation time
672
673           2) Basic installation and configuration, with all the
674              gory details about the directives supported 3)
675              Advanced Bacula: testing, troubleshooting, GUI and
676              ancillary programs, security managements, scripting,
677              etc.
678
679
680 Item 22:  Implement support for stacking arbitrary stream filters, sinks.
681 Date:     23 November 2006
682 Origin:   Landon Fuller <landonf@threerings.net>
683 Status:   Planning. Assigned to landonf.
684
685   What:   Implement support for the following:
686           - Stacking arbitrary stream filters (eg, encryption, compression,  
687             sparse data handling))
688           - Attaching file sinks to terminate stream filters (ie, write out  
689             the resultant data to a file)
690           - Refactor the restoration state machine accordingly
691
692    Why:   The existing stream implementation suffers from the following:
693            - All state (compression, encryption, stream restoration), is  
694              global across the entire restore process, for all streams. There are  
695              multiple entry and exit points in the restoration state machine, and  
696              thus multiple places where state must be allocated, deallocated,  
697              initialized, or reinitialized. This results in exceptional complexity  
698              for the author of a stream filter.
699            - The developer must enumerate all possible combinations of filters  
700              and stream types (ie, win32 data with encryption, without encryption,  
701              with encryption AND compression, etc).
702
703   Notes:  This feature request only covers implementing the stream filters/ 
704           sinks, and refactoring the file daemon's restoration implementation  
705           accordingly. If I have extra time, I will also rewrite the backup  
706           implementation. My intent in implementing the restoration first is to  
707           solve pressing bugs in the restoration handling, and to ensure that  
708           the new restore implementation handles existing backups correctly.
709
710           I do not plan on changing the network or tape data structures to  
711           support defining arbitrary stream filters, but supporting that  
712           functionality is the ultimate goal.
713
714           Assistance with either code or testing would be fantastic.
715
716 Item 23:  Implement from-client and to-client on restore command line.
717    Date:  11 December 2006
718   Origin: Discussion on Bacula-users entitled 'Scripted restores to
719           different clients', December 2006 
720   Status: New feature request
721  
722   What:   While using bconsole interactively, you can specify the client
723           that a backup job is to be restored for, and then you can
724           specify later a different client to send the restored files
725           back to. However, using the 'restore' command with all options
726           on the command line, this cannot be done, due to the ambiguous
727           'client' parameter. Additionally, this parameter means different
728           things depending on if it's specified on the command line or
729           afterwards, in the Modify Job screens.
730  
731      Why: This feature would enable restore jobs to be more completely
732           automated, for example by a web or GUI front-end.
733  
734    Notes: client can also be implied by specifying the jobid on the command
735           line
736
737 Item 24:  Add an override in Schedule for Pools based on backup types.
738 Date:     19 Jan 2005
739 Origin:   Chad Slater <chad.slater@clickfox.com>
740 Status: 
741                                                 
742   What:   Adding a FullStorage=BigTapeLibrary in the Schedule resource
743           would help those of us who use different storage devices for different
744           backup levels cope with the "auto-upgrade" of a backup.
745
746   Why:    Assume I add several new device to be backed up, i.e. several
747           hosts with 1TB RAID.  To avoid tape switching hassles, incrementals are
748           stored in a disk set on a 2TB RAID.  If you add these devices in the
749           middle of the month, the incrementals are upgraded to "full" backups,
750           but they try to use the same storage device as requested in the
751           incremental job, filling up the RAID holding the differentials.  If we
752           could override the Storage parameter for full and/or differential
753           backups, then the Full job would use the proper Storage device, which
754           has more capacity (i.e. a 8TB tape library.
755
756 Item 25:  Implement huge exclude list support using hashing (dlists).
757   Date:   28 October 2005
758   Origin: Kern
759   Status: Done in 2.1.2 but was done with dlists (doubly linked lists
760           since hashing will not help. The huge list also supports
761           large include lists).
762
763   What:   Allow users to specify very large exclude list (currently
764           more than about 1000 files is too many).
765
766   Why:    This would give the users the ability to exclude all
767           files that are loaded with the OS (e.g. using rpms
768           or debs). If the user can restore the base OS from
769           CDs, there is no need to backup all those files. A
770           complete restore would be to restore the base OS, then
771           do a Bacula restore. By excluding the base OS files, the
772           backup set will be *much* smaller.
773
774 Item 26:  Implement more Python events in Bacula.
775   Date:   28 October 2005
776   Origin: Kern
777   Status: 
778
779   What:   Allow Python scripts to be called at more places 
780           within Bacula and provide additional access to Bacula
781           internal variables.
782
783   Why:    This will permit users to customize Bacula through
784           Python scripts.
785
786   Notes:  Recycle event
787           Scratch pool event
788           NeedVolume event
789           MediaFull event
790            
791           Also add a way to get a listing of currently running
792           jobs (possibly also scheduled jobs).
793
794
795 Item 27:  Incorporation of XACML2/SAML2 parsing
796    Date:   19 January 2006
797    Origin: Adam Thornton <athornton@sinenomine.net>
798    Status: Blue sky
799
800    What:   XACML is "eXtensible Access Control Markup Language" and  
801           "SAML is the "Security Assertion Markup Language"--an XML standard  
802           for making statements about identity and authorization.  Having these  
803           would give us a framework to approach ACLs in a generic manner, and  
804           in a way flexible enough to support the four major sorts of ACLs I  
805           see as a concern to Bacula at this point, as well as (probably) to  
806           deal with new sorts of ACLs that may appear in the future.
807
808    Why:    Bacula is beginning to need to back up systems with ACLs  
809           that do not map cleanly onto traditional Unix permissions.  I see  
810           four sets of ACLs--in general, mutually incompatible with one  
811           another--that we're going to need to deal with.  These are: NTFS  
812           ACLs, POSIX ACLs, NFSv4 ACLS, and AFS ACLS.  (Some may question the  
813           relevance of AFS; AFS is one of Sine Nomine's core consulting  
814           businesses, and having a reputable file-level backup and restore  
815           technology for it (as Tivoli is probably going to drop AFS support  
816           soon since IBM no longer supports AFS) would be of huge benefit to  
817           our customers; we'd most likely create the AFS support at Sine Nomine  
818           for inclusion into the Bacula (and perhaps some changes to the  
819           OpenAFS volserver) core code.)
820
821           Now, obviously, Bacula already handles NTFS just fine.  However, I  
822           think there's a lot of value in implementing a generic ACL model, so  
823           that it's easy to support whatever particular instances of ACLs come  
824           down the pike: POSIX ACLS (think SELinux) and NFSv4 are the obvious  
825           things arriving in the Linux world in a big way in the near future.   
826           XACML, although overcomplicated for our needs, provides this  
827           framework, and we should be able to leverage other people's  
828           implementations to minimize the amount of work *we* have to do to get  
829           a generic ACL framework.  Basically, the costs of implementation are  
830           high, but they're largely both external to Bacula and already sunk.
831
832 Item 28:  Filesystem watch triggered backup.
833   Date:   31 August 2006
834   Origin: Jesper Krogh <jesper@krogh.cc>
835   Status: Unimplemented, depends probably on "client initiated backups"
836
837   What:   With inotify and similar filesystem triggeret notification
838           systems is it possible to have the file-daemon to monitor
839           filesystem changes and initiate backup.
840
841   Why:    There are 2 situations where this is nice to have.
842           1) It is possible to get a much finer-grained backup than
843              the fixed schedules used now.. A file created and deleted
844              a few hours later, can automatically be caught.
845
846           2) The introduced load on the system will probably be
847              distributed more even on the system.
848
849   Notes:  This can be combined with configration that specifies
850           something like: "at most every 15 minutes or when changes
851           consumed XX MB".
852
853 Kern Notes: I would rather see this implemented by an external program
854           that monitors the Filesystem changes, then uses the console
855           to start the appropriate job.
856
857 Item 29:  Allow inclusion/exclusion of files in a fileset by creation/mod times
858   Origin: Evan Kaufman <evan.kaufman@gmail.com>
859   Date:   January 11, 2006
860   Status:
861
862   What:   In the vein of the Wild and Regex directives in a Fileset's
863           Options, it would be helpful to allow a user to include or exclude
864           files and directories by creation or modification times.
865
866           You could factor the Exclude=yes|no option in much the same way it
867           affects the Wild and Regex directives.  For example, you could exclude
868           all files modified before a certain date:
869
870    Options {
871      Exclude = yes
872      Modified Before = ####
873    }
874
875            Or you could exclude all files created/modified since a certain date:
876
877    Options {
878       Exclude = yes
879      Created Modified Since = ####
880    }
881
882            The format of the time/date could be done several ways, say the number
883            of seconds since the epoch:
884            1137008553 = Jan 11 2006, 1:42:33PM   # result of `date +%s`
885
886            Or a human readable date in a cryptic form:
887            20060111134233 = Jan 11 2006, 1:42:33PM   # YYYYMMDDhhmmss
888
889   Why:    I imagine a feature like this could have many uses. It would
890           allow a user to do a full backup while excluding the base operating
891           system files, so if I installed a Linux snapshot from a CD yesterday,
892           I'll *exclude* all files modified *before* today.  If I need to
893           recover the system, I use the CD I already have, plus the tape backup.
894           Or if, say, a Windows client is hit by a particularly corrosive
895           virus, and I need to *exclude* any files created/modified *since* the
896           time of infection.
897
898   Notes:  Of course, this feature would work in concert with other
899           in/exclude rules, and wouldnt override them (or each other).
900
901   Notes:  The directives I'd imagine would be along the lines of
902           "[Created] [Modified] [Before|Since] = <date>".
903           So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
904            or 'since'.
905
906
907 Item 30:  Tray monitor window cleanups
908   Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
909   Date:   24 July 2006
910   Status:
911   What:   Resizeable and scrollable windows in the tray monitor.
912
913   Why:    With multiple clients, or with many jobs running, the displayed
914           window often ends up larger than the available screen, making
915           the trailing items difficult to read.
916
917
918 Item 31:  Implement multiple numeric backup levels as supported by dump
919 Date:     3 April 2006
920 Origin:   Daniel Rich <drich@employees.org>
921 Status:
922 What:     Dump allows specification of backup levels numerically instead of just
923           "full", "incr", and "diff".  In this system, at any given level, all
924           files are backed up that were were modified since the last backup of a
925           higher level (with 0 being the highest and 9 being the lowest).  A
926           level 0 is therefore equivalent to a full, level 9 an incremental, and
927           the levels 1 through 8 are varying levels of differentials.  For
928           bacula's sake, these could be represented as "full", "incr", and
929           "diff1", "diff2", etc.
930
931 Why:      Support of multiple backup levels would provide for more advanced backup
932           rotation schemes such as "Towers of Hanoi".  This would allow better
933           flexibility in performing backups, and can lead to shorter recover
934           times.
935
936 Notes:    Legato Networker supports a similar system with full, incr, and 1-9 as
937           levels.
938         
939 Item 32:  Automatic promotion of backup levels
940    Date:  19 January 2006
941   Origin: Adam Thornton <athornton@sinenomine.net>
942   Status: 
943
944     What: Amanda has a feature whereby it estimates the space that a  
945           differential, incremental, and full backup would take.  If the  
946           difference in space required between the scheduled level and the next  
947           level up is beneath some user-defined critical threshold, the backup  
948           level is bumped to the next type.  Doing this minimizes the number of  
949           volumes necessary during a restore, with a fairly minimal cost in  
950           backup media space.
951
952     Why:  I know at least one (quite sophisticated and smart) user  
953           for whom the absence of this feature is a deal-breaker in terms of  
954           using Bacula; if we had it it would eliminate the one cool thing  
955           Amanda can do and we can't (at least, the one cool thing I know of).
956
957 Item 33:  Clustered file-daemons
958   Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
959   Date:   24 July 2006
960   Status:
961   What:   A "virtual" filedaemon, which is actually a cluster of real ones.
962
963   Why:    In the case of clustered filesystems (SAN setups, GFS, or OCFS2, etc)
964           multiple machines may have access to the same set of filesystems
965
966           For performance reasons, one may wish to initate backups from
967           several of these machines simultaneously, instead of just using
968           one backup source for the common clustered filesystem.
969
970           For obvious reasons, normally backups of $A-FD/$PATH and
971           B-FD/$PATH are treated as different backup sets. In this case
972           they are the same communal set.
973
974           Likewise when restoring, it would be easier to just specify
975           one of the cluster machines and let bacula decide which to use.
976
977           This can be faked to some extent using DNS round robin entries
978           and a virtual IP address, however it means "status client" will
979           always give bogus answers. Additionally there is no way of
980           spreading the load evenly among the servers.
981
982           What is required is something similar to the storage daemon
983           autochanger directives, so that Bacula can keep track of
984           operating backups/restores and direct new jobs to a "free"
985           client.
986
987    Notes:
988
989 Item 34:  Commercial database support
990   Origin: Russell Howe <russell_howe dot wreckage dot org>
991   Date:   26 July 2006
992   Status:
993
994   What:   It would be nice for the database backend to support more 
995           databases. I'm thinking of SQL Server at the moment, but I guess Oracle, 
996           DB2, MaxDB, etc are all candidates. SQL Server would presumably be 
997           implemented using FreeTDS or maybe an ODBC library?
998
999   Why:    We only really have one database server, which is MS SQL Server 
1000           2000. Maintaining a second one for the backup software (we grew out of 
1001           SQLite, which I liked, but which didn't work so well with our database 
1002           size). We don't really have a machine with the resources to run 
1003           postgres, and would rather only maintain a single DBMS. We're stuck with 
1004           SQL Server because pretty much all the company's custom applications 
1005           (written by consultants) are locked into SQL Server 2000. I can imagine 
1006           this scenario is fairly common, and it would be nice to use the existing 
1007           properly specced database server for storing Bacula's catalog, rather 
1008           than having to run a second DBMS.
1009
1010 Item 35:  Automatic disabling of devices
1011    Date:  2005-11-11
1012   Origin: Peter Eriksson <peter at ifm.liu dot se>
1013   Status:
1014
1015    What:  After a configurable amount of fatal errors with a tape drive
1016           Bacula should automatically disable further use of a certain
1017           tape drive. There should also be "disable"/"enable" commands in
1018           the "bconsole" tool.
1019
1020    Why:   On a multi-drive jukebox there is a possibility of tape drives
1021           going bad during large backups (needing a cleaning tape run,
1022           tapes getting stuck). It would be advantageous if Bacula would
1023           automatically disable further use of a problematic tape drive
1024           after a configurable amount of errors has occurred.
1025
1026           An example: I have a multi-drive jukebox (6 drives, 380+ slots)
1027           where tapes occasionally get stuck inside the drive. Bacula will
1028           notice that the "mtx-changer" command will fail and then fail
1029           any backup jobs trying to use that drive. However, it will still
1030           keep on trying to run new jobs using that drive and fail -
1031           forever, and thus failing lots and lots of jobs... Since we have
1032           many drives Bacula could have just automatically disabled
1033           further use of that drive and used one of the other ones
1034           instead.
1035
1036 Item 36:  An option to operate on all pools with update vol parameters
1037   Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
1038    Date:  16 August 2006
1039   Status:
1040
1041    What:  When I do update -> Volume parameters -> All Volumes
1042           from Pool, then I have to select pools one by one.  I'd like
1043           console to have an option like "0: All Pools" in the list of
1044           defined pools.
1045
1046    Why:   I have many pools and therefore unhappy with manually
1047           updating each of them using update -> Volume parameters -> All
1048           Volumes from Pool -> pool #.
1049
1050 Item 37:  Add an item to the restore option where you can select a pool
1051   Origin: kshatriyak at gmail dot com
1052     Date: 1/1/2006
1053   Status:
1054
1055     What: In the restore option (Select the most recent backup for a
1056           client) it would be useful to add an option where you can limit
1057           the selection to a certain pool.
1058
1059      Why: When using cloned jobs, most of the time you have 2 pools - a
1060           disk pool and a tape pool.  People who have 2 pools would like to
1061           select the most recent backup from disk, not from tape (tape
1062           would be only needed in emergency).  However, the most recent
1063           backup (which may just differ a second from the disk backup) may
1064           be on tape and would be selected.  The problem becomes bigger if
1065           you have a full and differential - the most "recent" full backup
1066           may be on disk, while the most recent differential may be on tape
1067           (though the differential on disk may differ even only a second or
1068           so).  Bacula will complain that the backups reside on different
1069           media then.  For now the only solution now when restoring things
1070           when you have 2 pools is to manually search for the right
1071           job-id's and enter them by hand, which is a bit fault tolerant.
1072
1073 Item 38:  Include timestamp of job launch in "stat clients" output
1074   Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
1075   Date:   Tue Aug 22 17:13:39 EDT 2006
1076   Status:
1077
1078   What:   The "stat clients" command doesn't include any detail on when
1079           the active backup jobs were launched.
1080
1081   Why:    Including the timestamp would make it much easier to decide whether
1082           a job is running properly. 
1083
1084   Notes:  It may be helpful to have the output from "stat clients" formatted 
1085           more like that from "stat dir" (and other commands), in a column
1086           format. The per-client information that's currently shown (level,
1087           client name, JobId, Volume, pool, device, Files, etc.) is good, but
1088           somewhat hard to parse (both programmatically and visually), 
1089           particularly when there are many active clients.
1090
1091
1092 Item 39:  Message mailing based on backup types
1093  Origin:  Evan Kaufman <evan.kaufman@gmail.com>
1094    Date:  January 6, 2006
1095  Status:
1096
1097    What:  In the "Messages" resource definitions, allowing messages
1098           to be mailed based on the type (backup, restore, etc.) and level
1099           (full, differential, etc) of job that created the originating
1100           message(s).
1101
1102  Why:     It would, for example, allow someone's boss to be emailed
1103           automatically only when a Full Backup job runs, so he can
1104           retrieve the tapes for offsite storage, even if the IT dept.
1105           doesn't (or can't) explicitly notify him.  At the same time, his
1106           mailbox wouldnt be filled by notifications of Verifies, Restores,
1107           or Incremental/Differential Backups (which would likely be kept
1108           onsite).
1109
1110  Notes:   One way this could be done is through additional message types, for example:
1111
1112    Messages {
1113      # email the boss only on full system backups
1114      Mail = boss@mycompany.com = full, !incremental, !differential, !restore, 
1115             !verify, !admin
1116      # email us only when something breaks
1117      MailOnError = itdept@mycompany.com = all
1118    }
1119
1120
1121 Item 40:  Include JobID in spool file name ****DONE****
1122   Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
1123   Date:   Tue Aug 22 17:13:39 EDT 2006
1124   Status: Done. (patches/testing/project-include-jobid-in-spool-name.patch)
1125           No need to vote for this item.
1126
1127   What:   Change the name of the spool file to include the JobID
1128
1129   Why:    JobIDs are the common key used to refer to jobs, yet the 
1130           spoolfile name doesn't include that information. The date/time
1131           stamp is useful (and should be retained).
1132
1133 ============= New Freature Requests after vote of 26 Jan 2007 ========
1134 Item  41: Enable to relocate files and directories when restoring
1135   Date:   2007-03-01
1136   Origin: Eric Bollengier <eric@eb.homelinux.org>
1137   Status: Done.
1138
1139   What:   The where= option is not powerful enough. It will be
1140           a great feature if bacula can restore a file in the
1141           same directory, but with a different name, or in 
1142           an other directory without recreating the full path.
1143
1144   Why:    When i want to restore a production environment to a
1145           development environment, i just want change the first
1146           directory. ie restore /prod/data/file.dat to /rect/data/file.dat.
1147           At this time, i have to move by hand files. You must have a big
1148           dump space to restore and move data after.
1149
1150           When i use Linux or SAN snapshot, i mount them to /mnt/snap_xxx
1151           so, when a restore a file, i have to move by hand
1152           from /mnt/snap_xxx/file to /xxx/file. I can't replace a file
1153           easily.
1154
1155           When a user ask me to restore a file in its personal folder,
1156           (without replace the existing one), i can't restore from
1157           my_file.txt to my_file.txt.old witch is very practical.
1158
1159           
1160   Notes:  I think we can enhance the where= option very easily by
1161           allowing regexp expression. 
1162
1163           Since, many users think that regexp are not user friendly, i think
1164           that bat, bconsole or brestore must provide a simple way to
1165           configure where= option (i think to something like in
1166           openoffice "search and replace").
1167
1168           Ie, if user uses where=/tmp/bacula-restore, we keep the old
1169           fashion.
1170
1171           If user uses something like where=s!/prod!/test!, files will
1172           be restored from /prod/xxx to /test/xxx.
1173
1174           If user uses something like where=s/$/.old/, files will
1175           be restored from /prod/xxx.txt to /prod/xxx.txt.old.
1176
1177           If user uses something like where=s/txt$/old.txt/, files will
1178           be restored from /prod/xxx.txt to /prod/xxx.old.txt
1179
1180           if user uses something like where=s/([a-z]+)$/old.$1/, files will
1181           be restored from /prod/xxx.ext to /prod/xxx.old.ext
1182
1183 Item n:   Implement Catalog directive for Pool resource in Director
1184 configuration 
1185   Origin: Alan Davis adavis@ruckus.com
1186   Date:   6 March 2007
1187   Status: Submitted
1188  
1189   What:   The current behavior is for the director to create all pools
1190           found in the configuration file in all catalogs.  Add a
1191           Catalog directive to the Pool resource to specify which
1192           catalog to use for each pool definition.
1193  
1194   Why:    This allows different catalogs to have different pool
1195           attributes and eliminates the side-effect of adding
1196           pools to catalogs that don't need/use them.
1197  
1198   Notes:  
1199
1200
1201 Item n:   Implement NDMP protocol support
1202   Origin: Alan Davis
1203   Date:   06 March 2007
1204   Status: Submitted
1205
1206   What:   Network Data Management Protocol is implemented by a number of
1207           NAS filer vendors to enable backups using third-party
1208           software.
1209
1210   Why:    This would allow NAS filer backups in Bacula without incurring
1211           the overhead of NFS or SBM/CIFS.
1212
1213   Notes:  Further information is available:
1214           http://www.ndmp.org
1215           http://www.ndmp.org/wp/wp.shtml
1216           http://www.traakan.com/ndmjob/index.html
1217
1218           There are currently no viable open-source NDMP
1219           implementations.  There is a reference SDK and example
1220           app available from ndmp.org but it has problems
1221           compiling on recent Linux and Solaris OS'.  The ndmjob
1222           reference implementation from Traakan is known to
1223           compile on Solaris 10.
1224
1225   Notes (Kern): I am not at all in favor of this until NDMP becomes
1226           an Open Standard or until there are Open Source libraries
1227           that interface to it.
1228
1229 Item n: make changing "spooldata=yes|no" possible for
1230         manual/interactive jobs
1231
1232 Origin: Marc Schiffbauer <marc@schiffbauer.net>
1233
1234 Date:   12 April 2007)
1235
1236 Status: NEW
1237
1238 What:   Make it possible to modify the spooldata option
1239         for a job when being run from within the console.
1240         Currently it is possible to modify the backup level
1241         and the spooldata setting in a Schedule resource.
1242         It is also possible to modify the backup level when using
1243         the "run" command in the console. 
1244         But it is currently not possible to to the same 
1245         with "spooldata=yes|no" like:
1246
1247         run job=MyJob level=incremental spooldata=yes
1248
1249 Why:    In some situations it would be handy to be able to switch
1250         spooldata on or off for interactive/manual jobs based on
1251         which data the admin expects or how fast the LAN/WAN
1252         connection currently is.
1253
1254 Notes:  ./.
1255
1256 ============= Empty Feature Request form ===========
1257 Item  n:  One line summary ...
1258   Date:   Date submitted 
1259   Origin: Name and email of originator.
1260   Status: 
1261
1262   What:   More detailed explanation ...
1263
1264   Why:    Why it is important ...
1265
1266   Notes:  Additional notes or features (omit if not used)
1267 ============== End Feature Request form ==============