2009-12-04 11:26  petersp

	* wombat.pl:	I'm notoriously sloppy about mixxing up "eq" and
	  "==" for
	  integer comparisons, snd this bad habit finally bit me! It's
	  possible for the config file to specify an integer like "05"
	  which is numerically the same as "5", but using the 'eq' function
	  will cast the 5 into a string and the comparison fails. I've
	  fixed this, and cleaned up my interger comparisons to all use ==
	  instead.

2009-02-23 14:27  petersp

	* wombat.pl: BugFix: There was a major bug in check_interval -
	  basically, it was   checking that the month fell between 1 and 12
	  instead of 0 and 11,	 which means that January images were never
	  pruned.  BugFix: when creating dbix_sequence_state for "jobid" in
	  mysql, if there   are no entries in jobdata (from a migration)
	  then mysql returns an   empty set which does gives a NULL with
	  the +1 operator.  BugFix: adding $dbi->quote() calls to strings
	  that come back from rsync   since they may contain quotes
	  Feature: adding --run-pruner to simulate a successfuly backup run
	  and then   run the pruner. This is useful for cleaning up a
	  writeto after changing the   pruner rules without having to wait
	  for a successfuly image first. Also	--run-pruner can take a
	  configuration file as an option, and only those   images will be
	  pruned.

2009-01-09 10:20  petersp

	* wombat.pl: Bug: When the preserve list is empty, wombat is
	  supposed to remove nothing.  In retrospect, this is somewhat
	  counter-intuituve, which is probably how I ended up documenting
	  it one way and coding it the other (after all, if the command is
	  "preserve" then the default is "remove"). This change adds a
	  block of code the checks the preserve list and if it's empty then
	  we remove nothing.

2008-12-10 16:48  petersp

	* wombat.pl: Bug: after migrating old jobdata, the jobid in
	  dbix_sequence_state needs   to be updated.

	  Removing all support for DBD::DBM. The problems that were just to
	  onerous   to overcome are:	     1) "select count" not
	  supported	    2) DBIx not supported	  3) transcations
	  not supported 	4) every table has to have a unique key
	  (schedmap does not)

2008-11-06 02:40  petersp

	* wombat.pl: Simplifying the logic that build the rcmd and adding a
	  "rcmd_key" option for specifying an ssh identity key-file

2008-11-04 22:31  petersp

	* wombat.pl: Argh - another more missing code block. I think I've
	  got them all this time.

2008-11-04 13:41  petersp

	* wombat.pl: So, this is a pretty major bug and I'm really, really
	  surprised that no one has ever noticed it! The problem is in the
	  image_list subroutine: basically wombat was failing to list
	  existing images if it was the first week of the month since the
	  regex required [1-3] instead of [0-3]. This causes wombat to
	  repeatedly perform backups when re-run and also to not create
	  hard-links since it can't find the old image. Wow

	  I'm also adding a dbh statement to mark the time in jobid{pruned}
	  when a job is pruned from the filesystem.

2008-11-03 16:46  petersp

	* wombat.pl: Rev'ing the CVS version in the top info

2008-11-03 16:45  petersp

	* wombat.pl: Hmmm - at some point I accidentaly delete a bunch of
	  code. Here I'm replacing the block that removes the target_lock
	  after the backup is done or fails. Strange. I'll have to audit
	  the whole script at some point and make sure nothing else is
	  missing - ugh.

2008-10-30 14:59  petersp

	* wombat.pl: Switch to DBIx::Sequence for generating unique jobid -
	  the previous code   didn't really work at all. I'm using
	  DBIx::Sequence so that the code is   independent of the DBD used
	  (pgsql, mysql, DBM, etc) Turn AutoCommit on and instead use
	  dbh->begin_work and dbh->commit where   appropriate Update schema
	  to 101 to support DBIx::Sequence

2008-10-29 11:41  petersp

	* wombat.pl: More dereferencing fixes...

2008-10-28 17:44  petersp

	* wombat.pl: This is a bugfix... For some reason, recent versions
	  of perl don't allow this style of dereferencing:

	  Let $foo be an array reference, then these no longer work:

	  ${@{$foo}}[0] 	  #the 0 element $#{@{$foo}}
	  #the size

	  Instead, I switched to:

	  @{$foo}->[0] scalar @{$foo}

	  Of course, I had to update code that relies on $# since this is
	  the index of the last element, which is -1 the scalar value
	  (length)

2008-10-28 17:37  petersp

	* wombat.pl: This is a major revision. All of the MLDBM code has
	  been removed (except for what is needed to perform upgrades).
	  Persistent data that was previously stored in /var/lib/wombat is
	  now stored using DBI. The DBD drivers currently supported are:
	  mysql pgsql DBM  (/var/lib/wombat2)

	  There might be some bug fixed hiding in here :)

2008-02-25 17:19  petersp

	* wombat.pl: Adding "--numeric-ids" to the default rsync options

2007-10-26 14:26  petersp

	* wombat.pl: Changing the mirror process so that jobs are split up
	  into 1-1 mirror jobs and placed back on the archiveQ. This also
	  handles the case where writeto and mirror lists have different
	  numbers of elements.	Also adding a mirror_opts to over-ride the
	  settings for mirror jobs.

2007-05-20 13:59  petersp

	* wombat.pl: Changing the default image directory format to
	  YYYY-MM-DD_HH-MM instead of YYYY-MM-DD_HH:MM. I'm leaving code
	  that should keep the old format compatible with the pruner, but
	  new images will be named appropriately. This is necessary to
	  allow using a Windows machine as a backup server (or a mirror
	  server, etc) since Windows does not allow ":"s in directory names

2006-11-13 15:24  petersp

	* wombat.pl: Truncating the rsync errstring to 10,000 characters

2006-10-19 07:19  petersp

	* wombat.pl: No functional changes, I just want to start keeping
	  the CVS version at the top of the file so it's easier to track on
	  my backup hosts.

2006-10-19 00:26  petersp

	* wombat.pl: Adding support for the mirror() option.  Fixing a bug
	  in that the pruner was calling "exit" to return from a   thread
	  instead of return. This was causing main to exit prematurely.

2006-08-31 00:34  petersp

	* wombat.pl: target_lock now records the parent wombat pid

	  Feature: each worker now adds a record to a special shared hash
	  of hashes called rsync_jobs before calling rsync->exec. This
	  allow the main thread to monitor the rsync process and determine
	  if it has hung, died, disappeared, etc and take appropriate
	  action.

	  Feature: added support for a new option called "synctimeout" that
	  forcibly times out a rsync job

	  Feature: The main thread now verifies that each target_lock not
	  owned by it is valid. This is achieved by checking for the
	  presence of both the owning wombat pid specified in target_lock
	  and the actual rsync processes for the specific target. This
	  allows for cleanup of the target_locks after a crash.

	  Change: Previously, if a target was locked, the worker would
	  immediately give up on the job and substitute a previous image.
	  The worker now takes the same action if the target is locked as
	  if the maxconnect is reached: first it places the job back on the
	  queue to try again, and then it goes into a wait loop.

2006-08-26 23:41  petersp

	* wombat.pl: Fixing a "bug" in word_extract. Basically, we need to
	  eat trailing white space after a quoted string to avoid falsely
	  creating a second list item.	For example, ( "foo" ) was
	  returning the list ('foo',' ') because of the whitespace after
	  the quote and before the right paren.

2006-08-25 11:35  petersp

	* wombat.pl: Bug: Previously, block_extract placed {} back in the
	  buffer using push, but this causes future parsing to fail because
	  we often look for "keyword {", that is, the "{" needs to be on
	  the same line as the keyword.

	  Bug: reporting sub was showing all errors as jobs were displayed
	  instead of just the errors for jobs that were selected.

	  Feature: parse_set now assigns a hash value to a variable when
	  parsing a block assignment.

	  Feature: "rsync_opts" is a hash that can be used to over-ride or
	  set any parameter that File::Rsync understands.

2006-08-24 22:26  petersp

	* wombat.pl: Strange - I could have sworn I had coded the report
	  generator to print out "errstring" if status was non-zero, but I
	  guess I didn't.  Oh well, now it reports errors!

2006-08-24 09:31  petersp

	* wombat.pl: Fix the --run [conf] parsing so that it actually works
	  and can generate an error if the file is missing

2006-08-23 09:38  petersp

	* wombat.pl: Silly typo

2006-08-18 01:32  petersp

	* wombat.pl: Add rcmd_user ability for rcmd=rsh instead of only for
	  ssh

2006-08-15 12:45  petersp

	* wombat.pl: Adding a few extra notes.	Fixing the job sorting so
	  that it sorts numerically

2006-07-31 01:09  petersp

	* wombat.pl: Add support for logging job information to jobdata
	  DBM! Add support for command line options:	  IMPORTANT -
	  wombat will now only process backups if     started with --run
	  Added --run [conf] and --report [hours] options Added report
	  generator to process jobdata DBM into a pretty "report" Added a
	  usage screen if not options are specified

2006-07-30 23:01  petersp

	* wombat.pl: Switching to MLDBM driver to handle multi-dimensional
	  DBM constructs.  Fixup the DBM lock code so it won't make you cry
	  to look at it.  Added rsync defaults:      hard-links
	  preserve hard-links	  sparse	  treat sparse files
	  sparsely     timeout=1800    Timeout a job after 1800 seconds
	  without any			 data transfer

2006-01-08 01:50  petersp

	* wombat.pl: Fixing a bug in the smbmount code wherein the
	  sharename was not correctly being seperated from the target.

2006-01-08 01:46  petersp

	* wombat.pl: Initial files

