TODO:
    documentation:
    - add a UPGRADE section
    - write sample to read and parse the "status.txt" file, use  
    http://www.zedwood.com/article/124/batch-read-configini as a sample
    
    ghettovcb: 
    - add an option to cleanup remote vmware directory to avoid reusing old 
    specific VM configuration file 


2013-02-14 1.0.3
    all:
    - fix a bug that was added for debugging purpose in MyFormatter 
      I had wrongly disabled the line: t=t.encode(self.encoding, 'replace')

2013-01-24 1.0.2
    wbadmin:
    - support for Windows 2012, HRESULT is 0x0 instead of 0

    install:
    - can install ghettovcb from .zip or .tgz archive and find file in any 
    subfolder

2013-01-07 1.0.1
    ntbackup:
    - when "TAPE://TAPE NAME" is use for the target, /um must be added at the END 
    of the command line (not in the middle)


2013-01-04 1.0.0
    all:
    - no bugs for long time, released as 1.0
    
    ghettovcb:
    - include support for VMware ESX(i) 5.1 

2012-01-16 0.9.39b4
	all:
	- added command line option -s and --statusdir to generate "status" file per job
	to allow better integration with user scripts.
	
    ghettovcb:
    - ghettovcb-2011_11_19_1 is now accepted
    - added 'identity_file' option for public key authentication
    

2011-11-15 0.9.39b3
    ghettovcb:
    - scp upload don't copy the same file twice or more
    - order the files by date before to upload to reduce download failure and retry  

2011-11-15 0.9.39b2
    all:
    - option mail=fail should work now (used 'failed' instead of 'fail')

    ntbackup:
    - decode INSTEAD of encode, the path of the ntbackup log file 'logfile' in the status file


2011-10-24 0.9.39b1
    all:
    - added a Message-Id to the emails
    - bug: 'errmsg' lately initilialized in sendmail(), for MagiKmon
    - added option mail=fail, to send mail only when backup fail

    ntbackup
    - better error message when non ANSI chars from the .ini file
    are used in the "ntbackup.exe" command line
    - encode the path of the ntbackup log file 'logfile' in the status file
    - added limited support for tape backup using destination target: TAPE://TAPE_NAME
    when "TAPE://" is used, "/um" is added to the ntbackup command line
         
    wbadmin
    - bug: now handle volumeid ( \\?\Volume{3a453567-........} )
    - better error message when non ANSI chars from the .ini file
    are used in the "wbadmin.exe" command line
    

2011-08-24 0.9.38
    all:
    - swap SMTP and HTTP order when sending mail report. 
    - To avoid to receive the same report twice when mixing SMTP and HTTP 
    (magikmon/sendbackup), remove any recipients that match the HTTP address.
    Remove it only if HTTP request has succeeded.
    

2011-08-05 0.9.37
    all:
    - attache file even if file is empty 
    - substitute attachment too big, by error message included in 
      attachment ending by "-error.txt" 
    
    ghettoVCB:
    - BUG: ftp/ssh upload/download is starting too early, wait for "finished"
      before to report the error and retry one last time after end
    - built-in ftp server was not handling spaces in directories and filenames

2011-08-04 0.9.36
    Wrong release

     
2011-04-20 0.9.34
    ghettoVCB:
    - ftp/ssh upload/download was not handling well non "2gsparse" archive  

2011-04-18 0.9.32
    ghettoVCB:
    - completely rewrite of the ftp/ssh upload/download process to handle 2gsparse file
    and disk on multiple datastore.
    - handle COMPRESSED ghettoVCB backup
    - ftp upload generate the download script and attach it to the email
    - added support for list and mkdir in built-in ftp server
    - escape spaces in path name used with scp      

2011-04-14 0.9.31
    all:
    - added ftp command to run built-in ftp server standalone
     
    ghettoVCB:
    - bug in ftp upload, src and dest in the ftpput command line must be under ""
    - don't upload VMware lock file .lck-xxxxxxxxxx. 

    wbadmin:
    - correct bug in error handler for systemstate backup

2011-03-23 0.9.30
    all:
    - -i switch works on both Linux and Windows hosts to install 
      sample.ini as default mksbackup.ini, create default task in
      Cron or Task scheduler
    - now, "-i" switch can download and install ghettoVCB script in
      vmware sub directory
    - was using un-existing function ErrorDecoding instead of ErrorDecode
    - don't not "string_log.close()" anymore to avoid error messages at end
    
    ghettoVCB:
    - support for ftp upload
    - parameter "ftp_local" can be used to start built-in ftp server
    - scp copy and ftp upload start after first disk backup and run at the same time as ghettoVCB
    - support for new ghettoVCB >= 2001-03-14

    tar:
    - support for differential and incremental backup 

    esxmon:
    - skip unknown buggy instance


2011-02-28 0.9.22
    all:
    - Windows "install" become "modify" if already installed 
    - check last version POST -> GET
    - added logging.txt in mail_exception() ( traceback.txt ) 
    - added status.txt when an error on one parameter is detected 
      during the load()
      
    esxmon:
    - include pywbem library to reduce dependencies


2011-02-24 0.9.21
    all:
    - The release on PyPi was a failure because the win32.zip binary was
    used by pip and easy_install as a source file.   
    - cosmetic changes

2011-02-22 0.9.20
    all:
    - renamed to mksbackup
    - removed all references to old name mkbackup
    - mksbackup was returning an exit code=1 for success instead of 0
    - Uploaded on PyPI
    - New release easier to install using easy_install or pip.
    - release as a runnable .egg file
      
    ghettoVCB:
    - wrong start time when using scp (move, copy)
    - support for not yet released ghettoVCB
    - better support for ENABLE_NON_PERSISTENT_NFS=1, will be able to do a 
    listing of backup directories before the NFS share is unmounted 

    esxmon:
    - "property_exclude" can exclude fully qualified properties  
    - more explicit about the class, instance an property generating errors
    
    wbadmin:
    - added support for -vsscopy 

2010-11-19 0.9.12
    ghettoVCB:
    - display the version of the ghettoVCB script in the log
    - problem using cipher blowfish with ESXi 3.5 !  

    wbadmin
    - include wbadmin output in the log in debug mode or in case of error

    ntbackup
    - include ntbackup log in the log in debug mode or in case of error
    
2010-11-10 0.9.11
    esxmon:
    - bugfix about status change detection 

2010-11-10 0.9.10
    esxmon:
    - added 'never' to email_when
    - log output into logfile at DEB level
    - changed urlopen timeout to support python 2.4
    - bugfix when email_when=<integer>

2010-11-04 0.9.9
    all:
    - support for new option magikmon, allowing to send report via HTTP to
      magikmon monitoring service 
    - attachment_size default set to 1Mo, max=10Mo aka 10240 (value is in Ko) 
    - attachment_gzip default set to 100K, max=1Mo aka 1024 (value is in Ko)
    - smtp_login and smtp_password must be encoded because HMAC used 
    in CRAM_MD5 require non unicode string
    - generate a traceback for unexpected error in "sendmail"
    - didn't handle well empty attachment
    - added -q for quiet (no console logging), now verbose is the default
    - windows binaries are now generated using python 2.6.6
    - Under Windows use WindowsErrorDecode and ErrorDecode for other platform
    to decode local encoded error message
    - Make logging more robust to unicode error
    
    wbadmin:
    - check if wevtutil output is empty
    - make error handling more robust, WindowsError can contains char>128 
    in error message => unicode mismatch in _decode_ from ascii   
    
    ntbackup:
    - added the "options" parameter 
    - better handling of error if ntbackup.exe is not found
    
    esxmon: (new)
    - add vmware esx(i) monitoring
    - handle magikmon guard URL
     
2010-08-05 0.9.6
    all:
    - environment variables are available from inside the destination syntax


2010-07-28 0.9.5
    all:
    - use distutil for packaging and release
    - added smtp_mode, smtp_login, smtp_password 
    to allow SMTP SSL, TLS and authentication
    - The win32 package contains now a single .exe file
    
    ghettoVCB:
    - last ghettoVCB.sh bring better support for /tmp/ghettoVCB.lock
    management
    
2010-07-22 0.9.4
    ghettoVCB:
    	- mkbackup.exe was missing in the windows package

2010-07-22 0.9.3
    ghettoVCB:
	- include ghettoVCB-2010-07-20
	- ghettoVCB_asx.sh not needed anymore

2010-07-21 0.9.2
    all:
	- logging of any SMTP success and errors 

    ghettoVCB:
	- send a UNIQUE email per job, not a per VM email
	- added the "script" option to use a different ghettoVCB.sh script
	- renamed attachments "dir.txt" and "dir-up.txt" into "dir-${VM}.txt" 
	and "dirup-${VM}.txt"
	- renamed variable in 'status.ini': target -> target-${VM}, 
	scp_cmd -> scp_cmd${VM} and scp_exit_code -> scp_exit_code-${VM}
	- added 'ls_volumes.txt' attachment
        - include the custom ghettoVCB_asx.sh version of the script
    tar: 
        - added find_exit_code in status.txt
        - rename exit_code into tar_exit_code
        - check the find_exit_code for final status


2010-06-25 0.9.1
    ntbackup:
        - addedd option "snap" to match the "/SNAP" switch

2010-06-25 0.9.0
    all:
        - changed 'subject' in mail exception, 'CONFIG' vs 'BACKUP' in subject
        - use ascii encoding if sys.stderr.encoding is None 

    ntbackup:
        - bug about logging in windows.ReadEvLog, added 'log' parameter 
        - better support of "verify"
        - use CSIDL_LOCAL_APPDATA to find the NTBackup logdir
        
    wbadmin:
        - now dir_up.txt contains the listing of the parent of the target directory   
        

2010-05-24 0.8.10b

    ntbackup:
        - detect 32bit version of mkbackup running on 64bit and display a message 
        about the 64bits trick if ntbackup.exe is not found.

    wbadmin:
        - don't check if target exist if no backup today (type=='none') 


2010-05-21 0.8.9b
    all:
        - limit attachment size to 'attachment_size', if not truncate the file

    ghettoVCB:
        - exit_code returned by ssh is always wrong, use the workaround all the time
        
    tar:
        - added 'error_find' parameter

    wbadmin:
        - switch back to the full listing in "wbadmin get versions", 
        not only the related "backupTarget"  


2010-05-18 0.8.8b
    ghettoVCB:
        - ESXi3.5 don't return any exit_code, then use a workaround
        - Internal logging was raising an exception for multiple VM in vm_list
          now logging is correctly reopen
           
    wbadmin:
        - create target directory, using credential if required 
        

2010-05-16 0.8.7b

    ghettoVCB:
        removed the keepAlive
        now "destination" can contain ANSI char in windows
        
        

2010-05-14 0.8.6b
	all:
		bug: exit_code is now 0 when successful
		remove all passwords from report and log
		logging now replace char not in charset by a ? 
		better file and attachment encoding (attachment charset)  

	wbadmin:
		include "wbadmin get versions" in report
		detect 32bit version of mkbackup running on 64bit and set wbadmin_bin as appropriate 
		
	ghettovcb:
	    include destination directory listing when destination is set


2010-05-07 0.8.4b
	wbadmin:
		wbadmin was not running from inside task scheduler
			added wbadmin_bin and wevtutil_bin parameter to set
			full path to binary

2010-05-03 0.8.3b
	all:
		support for manager object
		added logging to mail report

	ghettovcb:
		support the -a option via an empty vm_list
		added vm_exclude when vm_list is empty


2010-04-29 0.8.2b 
	all:
		added manager object
	ghettovcb:
		try to create the target directory before to SCP
		bug: "local" directory, mix windows and un*x path 
	

2010-04-28 0.8.1b 
	added wbadmin frontend

	ghettovcb:
		added destination option, including "copy" and "move" type 
		to copy backup to host


2010-03-30 0.2.1b
	added tar frontend (beta)
	added ghettovcb frontend (beta)

	ntbackup:
		don't check anymore if the default ntbackup log directory
		exist

2010-03-17 0.1.7
	better command line argument checking
	better error reporting about missing target directory
	
2010-02-15 0.1.6
	beter diagnostic regarding the EventLog
	a bug about the verbose mode

2010-01-05 0.1.5
	beter unicode support
	support console and file logging
	option -l to specify a logfile

2009-12-31 0.1.4
	added console and file logging using -l option
	added 'none' backup type
	
2009-12-29 0.1.3
	first public release

