]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/kernstodo
Fix breaks in bextract + in restore print only volumes to be actually used
[bacula/bacula] / bacula / kernstodo
index 27cb30d5b820a0d029793f400a7db9f3d165514b..f6756b0334d8af4731674f3e3931ecebb0fb3beb 100644 (file)
@@ -1,5 +1,5 @@
                  Kern's ToDo List
-                  31 May  2003 
+                   6 July 2003 
 
 Documentation to do: (any release a little bit at a time)
 - Document running a test version.
@@ -16,50 +16,78 @@ Documentation to do: (any release a little bit at a time)
 - Document FInclude ...
 - Document need to add "-u root" to most of MySQL script calls
   (./create_mys... ./make_my...).
+- Document c:/working directory better than /working directory.
+- Document all the status codes JobLevel, JobType, JobStatus.
+- Document update volume: jobid, current, before, all
+- Document run "yes".
+- Document that bscan does not work with multiple simultaneous jobs.
+- Update Automatic Volume Labeling in disk.wml
 
           
 Testing to do: (painful)
 - that ALL console command line options work and are always implemented
 - blocksize recognition code.
-- multiple simultaneous Volumes
 - Test if rewind at end of tape waits for tape to rewind.
 - Test cancel at EOM.       
 - Test not zeroing Autochanger slot when it is wrong.
-- Test multiple simultaneous Volumes
-
+- Test of last block is correct in JobMedia when splitting file 
+  over two volumes.
+- Test recycling and purging (code changed in db_find_next_volume and
+  in recycle.c).
 - Figure out how to use ssh or stunnel to protect Bacula communications.
 
 For 1.31 release:
-- Instrument use_count on DEVICE packets and ensure that the device is
-  being close()ed at the appropriate time.
+- In Win portable restore the directory is not create    
+   27-Jun-2003 16:52 tibs-fd: kernsrestore.2003-06-27_16.52.20 Error:
+   create_file.c:175 Could not create
+   /tmp/bacula-restores/cygwin/home/kern/bacula/k/src/dird/dird_conf.o: 0
+   ERR=The system cannot find the path specified.
+- Finish Windows implementation (add setting of correct type on restore,
+  add Portable Data Format flag).
+- Maybe remove multiple simultaneous devices code in SD.
+- Increment DB version prior to releasing.
+- Turn off FULL_DEBUG prior to releasing.
+- On Windows with very long path names, it may be impossible to create 
+  a file (and thus restore it) because the total length is too long.
+  We must cd into the directory then create the file without the
+  full path name.
+- Move JobFiles and JobBytes to SD rather than FD -- more correct.
+- lstat() is not going to work on Win32 for testing date.
+- Implement a Recycle command
+- Something is not right in last block of fill command.
+- Implement List Volume Job=xxx  or List scheduled volumes or Status Director 
 - Check if Incremental is working correctly when it looks for the previous Job 
   (Phil's problem).
-- Add next Volume to be used to status output.
-- Add a recycle command.
-- Command to determine next volume needed for a particular job.
+
+
+For 1.32:
+- Add client name to cram-md5 challenge so Director can immediately
+  verify if it is the correct client.
+- Implement ClientRunBeforeJob and ClientRunAfterJob.
+- Implement new alist in FileSet scanning.
+- Add JobLevel in FD status (but make sure it is defined).
+- Audit all UA commands to ensure that we always prompt where possible.
+- Restrict characters permitted in a Resource name, and don't permit
+  duplicate names.
+- Prohibit backing up archive device (findlib/find_one.c:128)
+- Make | and < work on FD side.
+- Check Jmsg in bnet, may not work, must dup bsock.
+- Suppress Job Name in Jmsg for console
+- Create Pools that are referenced in a Run statement at startup if possible.
+- Use runbeforejob to unload, then reload a volume previously used,
+  then the next job run gets an error reading the drive.
 - Make bootstrap filename unique.
-- Implement FileSet VolIndex.
-- Sort JobIds entered into recover tree.
-- The bsr for Dan's job has file indexes covering the whole range rather
-  than only the range contained on the volume.
-  Constrain FileIndex to be within range for Volume.
-- Should Bacula make an Append tape as Purged when purging?
 - Test a second language e.g. french.
 - Start working on Base jobs.
 - Make "make binary-release" work from any directory.
-- Document c:/working directory better than /working directory.
-- Unsaved Flag in Job record.
+- Unsaved Flag in Job record (use JobMissingFiles).
 - Base Flag in Job record.
 - Implement UnsavedFiles DB record.
-- Use switch() in backup.c and restore.c in FD instead of giant if statement.
 - Implement argc/argv for daemon command line scanning using table driven
   stuff below.
 - Implement table driven single argc/argv scanner to pickup all arguments.
   Much like xxx_conf.c scan table.
   keyword, handler(store_routine), store_address, code, flags, default.
-- Make | and < work on FD side.
-- Pass prefix_links to FD.
-- Implement a M_SECURITY message class.
 - From Phil Stracchino:
   It would probably be a per-client option, and would be called
   something like, say, "Automatically purge obsoleted jobs".  What it
@@ -70,18 +98,14 @@ For 1.31 release:
   all Differential and Incremental jobs obsoleted by that Full backup.
   This would let people minimize the number of tapes they're keeping on
   hand without having to master the art of retention times.
-- Prohibit backing up archive device (findlib/find_one.c:128)
-- Make Restore report an error if FD or SD term codes are not OK.
-- Add JobLevel in FD status (but make sure it is defined).
-- Make Pool resource handle Counter resources.
-- Restrict characters permitted in a Resource name, and don't permit
-  duplicate names.
 - Implement new serialize subroutines
    send(socket, "string", &Vol, "uint32", &i, NULL)
-- Audit all UA commands to ensure that we always prompt where possible.
-
-
-After 1.31:
+- Scratch Pool where the volumes can be re-assigned to any Pool.
+- Implement a M_SECURITY message class.
+- Implement forward spacing block/file: position_device(bsr) --
+  just before read_block_from_device();
+- When doing a Backup send all attributes back to the Director, who
+  would then figure out what files have been deleted.
 - Currently in mount.c:236 the SD simply creates a Volume. It should have
   explicit permission to do so.  It should also mark the tape in error
   if there is an error.
@@ -102,7 +126,6 @@ After 1.31:
 
 - Add Progress command that periodically reports the progress of
   a job or all jobs.
-- Implement "Reschedule OnError=yes interval=nnn times=xxx"
 - One block was orphaned in the SD probably after cancel.
 - Add all command line arguments to "update", e.g. slot=nn volStatus=append, ...
 
@@ -255,6 +278,18 @@ After 1.31:
 - Make bcopy copy with a single tape drive.
 - Permit changing ownership during restore.
 
+- From Phil:
+  > My suggestion:  Add a feature on the systray menu-icon menu to request
+  > an immediate backup now.  This would be useful for laptop users who may
+  > not be on the network when the regular scheduled backup is run.
+  > 
+  > My wife's suggestion: Add a setting to the win32 client to allow it to
+  > shut down the machine after backup is complete (after, of course,
+  > displaying a "System will shut down in one minute, click here to cancel"
+  > warning dialog).  This would be useful for sites that want user
+  > woorkstations to be shut down overnight to save power.
+  > 
+
 - Autolabel should be specified by DIR instead of SD.
 - Storage daemon    
   - Add media capacity
@@ -376,7 +411,7 @@ Done -- Restore part needs better implementation to work correctly
 
 
 Item 2:   Make the Storage daemon use intermediate file storage to buffer data.
-Deferred -- not necessary yet.
+Deferred -- not necessary yet -- possibly implement with Migration.
 
   What:   If data is coming into the SD too fast, buffer it to 
           disk if the user has configured this option.
@@ -432,6 +467,7 @@ Item 4:   Implement Base jobs.
 
 
 Item 5:   Implement Label templates
+Done 
 
   What:   This is a mechanism whereby Bacula can automatically create
           a tape label for new tapes according to a detailed specification
@@ -485,7 +521,6 @@ Item 8:   GUI for interactive backup
 
 
 Item 9:   Add SSL to daemon communications.
-Inprogress as of version 1.31.
 
   What:   This provides for secure communications between the daemons.
 
@@ -923,3 +958,63 @@ Done: (see kernsdone for more)
 - The "List last 20 Jobs run" doesnt work correctly in restore.
   It doesnt show the last 20 jobs , but some older ones.
 - Fix Verify VolumeToCatalog to use BSRs -- it is broken.
+- Implement Release Storage=xxx
+- Fix restore on Win95/98  
+- Remove the Jmsg() in sql_find.c:102 or only print on hard error.
+- Implement FileSet VolIndex -- done, but must update old records.
+- Check this below from Phil.
+  This was SD reported data rather than FD data!
+  > When the job was done, Bacula reported 11084 files restored:
+  > 
+  > JobId:                  527                                                     
+  > Job:                    Zocalo_Restore.2003-06-05_16.42.01                      
+  > Client:                 Zocalo                                                  
+  > Start time:             05-Jun-2003 16:42                                       
+  > End time:               06-Jun-2003 01:21                                       
+  > Files Restored:         11,084                                                  
+  > Bytes Restored:         65,474,772                                              
+  > Rate:                   2.1 KB/s                                                
+  > FD termination status:  OK                                                      
+  > Termination:            Restore OK                                              
+  > 
+  > when it should probably have reported 11084 files scanned, 250 restored.
+  > The bytes restored count looks about right.
+  > 
+- Should Bacula make an Append tape as Purged when purging?
+- Use switch() in backup.c and restore.c in FD instead of giant if statement.
+- If during a restore, a hard linked file already exists (on option), delete
+  the file and re-link it.  This is to avoid the possibility that the
+  user had re-linked the file between the backup and the restore.
+  Do lstat() to see if it is already properly linked.
+  Same for symlinked file.
+  Make sure ifnewer, ifolder, never, ... apply correctly.
+- Flag so that no connect does not error, and Reschedule a job.
+- Implement "Reschedule OnError=yes interval=nnn times=xxx"
+- That restoring a hard link that already exists works correctly.
+  Same for soft link.
+- Make Pool resource handle Counter resources.
+- Fix first block number after label to be zero instead of 1 (reset after label).
+- Grep for Backup OK in regression script.
+- Do NOT reuse same JobId if tape written.
+- Implement non-blocking writes and bsock->terminate in heartbeat
+  thread, or set it in status.c cancel (used pthread_kill() instead of
+  non-blocking I/O.
+- Add restore to specific date.
+- Instrument use_count on DEVICE packets and ensure that the device is
+  being close()ed at the appropriate time.
+- Test long path names (>64 chars) in Windows -- crashes FD?
+- Implement fast block rejection: match_bsr_block().
+- Complain if record dropped in bnet_recv because too long.
+- Test multiple simultaneous Volumes
+- Document recycling algorithm.
+- Make Restore report an error if FD or SD term codes are not OK.
+- To link with mysqlclient_r may require -lssl -lcrypto
+- Document Heart beat code 
+- Non-fatal errors are not correct counting attribs.c:277
+- Check that Block number in JobMedia are correct.
+- The bsr for Dan's job has file indexes covering the whole range rather
+  than only the range contained on the volume.
+  Constrain FileIndex to be within range for Volume.
+- Pass prefix_links to FD.
+- Fix restore list of volumes if Volume not selected.
+