Permalink
Switch branches/tags
Nothing to show
Commits on Mar 17, 2012
Commits on Jul 29, 2011
  1. 2011-07-29 Erwann Chenede - <erwann.chenede@oracle.com>

      * var/*: moved to lib for 6939144
      * VERSION: bumped to 0.2.99
    
    --HG--
    rename : var/svc/manifest/application/time-slider-plugin.xml => lib/svc/manifest/application/time-slider-plugin.xml
    rename : var/svc/manifest/application/time-slider.xml => lib/svc/manifest/application/time-slider.xml
    rename : var/svc/manifest/system/filesystem/auto-snapshot.xml => lib/svc/manifest/system/filesystem/auto-snapshot.xml
    erwannc@loc committed Jul 29, 2011
Commits on Jun 24, 2011
  1. 2011-06-24 Erwann Chenede - <erwann.chenede@oracle.com>

      * usr/share/time-slider/lib/time_slider/zfs.py:
        fix for d.o.o 18302, 7046724. Fix by Julian Wiesener
    Erwann Chenede committed Jun 24, 2011
Commits on Apr 27, 2011
  1. 2011-04-27 Erwann Chenede - <erwann.chenede@oracle.com>

      * VERSION: Bump to 0.2.98
      * usr/share/time-slider/lib/time_slider/applet.py
        usr/share/time-slider/lib/time_slider/deletegui.py
        usr/share/time-slider/lib/time_slider/setupgui.py
        usr/share/time-slider/lib/time_slider/snapnowui.py
        usr/share/time-slider/lib/time_slider/timesliderd.py :
        Fix for 7038498 removed Primary Administrator references
    
      * usr/share/time-slider/lib/time_slider/util.py
        usr/share/time-slider/lib/time_slider/zfs.py :
        Fix for 6996354 gracefully handle snapshot failure
    Erwann Chenede committed Apr 27, 2011
Commits on Jul 30, 2010
  1. 2010-07-29 Niall Power - <niall.power@oracle.com>

            * VERSION: Bump to 0.2.97
    NiallPower committed Jul 30, 2010
Commits on Jul 8, 2010
  1. 2010-07-08 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/timesliderd.py:
              Fix typo when raising exception. Defect #16361
              RunTimeError -> RuntimeError
    NiallPower committed Jul 8, 2010
Commits on Jul 5, 2010
  1. 2010-07-05 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Don't set filesystem tree view size request based on
              number of filesystems: Doesn't scale well. Set fixed
              initial size instead. Fixes defect  #16319
              Correct misspellings of "writable and "administrator".
              Fixes defect #16388
    
            * usr/share/time-slider/lib/time_slider/zfs.py:
              Check returned value of bisect.bisect_left() is within
              index range of list before trying to dereference it and
              causing IndexError exceptions. Fixes defect #16377.
              Thanks to Tim Foster for this fix.
    NiallPower committed Jul 5, 2010
Commits on Jun 16, 2010
  1. 2010-06-16 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Remove accidental clobbering of tempSchedule list so
              that non-archived backups can be expired as per normal
              schedule retention rules. Opensolaris defect #16280
    NiallPower committed Jun 16, 2010
Commits on Jun 3, 2010
  1. 2010-06-04 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/applet.py:
              Register menu callback in Note class instantiation to
              avoid multiple registration of same callback.
    NiallPower committed Jun 3, 2010
Commits on May 24, 2010
  1. 2010-05-24 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Fix minor function spelling typo
    NiallPower committed May 24, 2010
  2. 2010-05-24 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/glade/time-slider-setup.glade:
              Replace GtkFileChooser combo widget with standard
              GtkComboBox
    
            * usr/share/time-slider/lib/time_slider/applet.py:
              User path_tol_volume() from util library instead of
              private copy
    
            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Replace standard GtkFileChooser logic with custom combo
              box implementation that is more tailored towards selecting
              a backup device rather than a generic path. Is able to
              handle an offline/unmounted previously configured backup
              device gracefully (impossible with stock widget). Doesn't
              show meaningless shortcuts like Home, Documents, etc. either
              Cleanup of code, renamed variables to use camel case and
              made unnecessarily public class variables private.
              Changed order of target validation tests to check if the
              device supports posix style links before checking if it's
              empty. Means user doesn't have to delete everything on a
              PCFS/FAT32 device only then to find out it's still unsuitable.
    
            * usr/share/time-slider/lib/time_slider/util.py: Move previously
              private function path_to_volume(path) here so it can be shared.
    NiallPower committed May 24, 2010
Commits on May 14, 2010
  1. 2010-04-14 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/applet.py:
              Use icon list hinted by gio.Volume instead of hardcoded
              harddisk icon when possible when displaying notifications.
              Makes icon more context specific to type of backup device.
    NiallPower committed May 14, 2010
  2. 2010-05-14 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/applet.py:
              Determine volume name of rsync target if available and
              display that instead of the raw mount point in
              notifications. More user friendly.
    NiallPower committed May 14, 2010
  3. 2010-05-14 Erwann Chenede - <erwann.chenede@sun.com>

      * usr/share/time-slider/glade/time-slider-delete.glade:
        Added Type combobox
      * usr/share/time-slider/lib/plugin/pluginsmf.py:
        fix import to call this class from a non standard
        location
      * usr/share/time-slider/lib/time_slider/deletegui.py:
        implemented rsync backup visualization and deletion
      * usr/share/time-slider/lib/time_slider/zfs.py:
        renamed member function destroy_snapshot to
        destroy to reflect allow polymorphic call in
        deletegui.py as the list of backup to
        delete can now be snapshots or rsync backups.
      * usr/share/time-slider/lib/time_slider/timesliderd.py:
        propagated member function destroy name change.
    Erwann Chenede committed May 14, 2010
  4. 2010-05-14 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Fix list ValueError in list_pending_snapshots() caused
              when rsync plugin is enabled but no fileystems are
              selected for backup. Check that zfs returns something
              more than a blank in such cases.
    NiallPower committed May 14, 2010
  5. 2010-05-04 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/glade/time-slider-setup.glade:
              Fix resizing issue that prevented list view from expanding
              to occupy all extra space when window gets vertically
              extended.
    NiallPower committed May 14, 2010
Commits on May 13, 2010
  1. 2010-05-14 Niall Power - <niall.power@oracle.com>

            * etc/dbus-1/system.d/time-slider.conf:
              Add service and policy definitions for TimSlider.config
              service.
    
            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Deal with backup device being mounted under variable
              removable media mount points if not found in it's expected
              location. Find and validate alternate mount points.
    
            * usr/share/time-slider/lib/time_slider/applet.py:
              Refactored to allow more modular notification management.
              Improved rsync device monitoring by implementing both gio.File
              and gio.Volume monitors so we can track mounting/unmounting of
              static mounts like nfs/zfs and variable mount points for
              hotpluggable devices. Validate rsync target is correct using
              SMF configuration key. Listen to TimeSlider.Config D-Bus events
              and refresh configuration when D-Bus notification is received.
              Add menu item to enable launching of setup GUI from the applet.
    
            * usr/share/time-slider/lib/time_slider/dbussvc.py:
              Add class and method definition for TimeSlider Config service
              notifications.
    
            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Register with system D-Bus and send notification of changes
              to time-slider and rsync plugin services so the applet can
              refresh.
    NiallPower committed May 13, 2010
  2. 2010-05-13 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Fix list IndexError exception caused by looking
              for non-existent backups on an empty device.
    NiallPower committed May 13, 2010
Commits on May 11, 2010
  1. 2010-05-11 Niall Power - <niall.power@oracle.com>

        * usr/share/time-slider/lib/plugin/rsync/backup.py:
          Tweak the space management of the rsync device for better
          performance:
          - don't scan for deleteables unless the device starts to
            exceed threshhold capacity.
          - Rescan capacity periodically during rsync backup thread
            lifecycle and rescan for deleteable backups only if
            device exceeds threshold capacity level.
    NiallPower committed May 11, 2010
  2. 2010-05-11 Niall Power - <niall.power@oracle.com>

    	* var/svc/manifest/system/filesystem/auto-snapshot.xml:
    	  Update service bundle name and version number to
    	  SUNWtime-slider and 0.2.96 respectively.
    
    	* var/svc/manifest/application/time-slider-plugin.xml:
    	  Add 2 new properties to define cleanup threshhold level of
    	  rsync backup device and verbosity of rsync output for
    	  debugging purposes.
    
    	* usr/share/time-slider/lib/time_slider/util.py: Adjust
    	  signature of util.debug() to make the verbose argument
    	  mandatory instead of automatic.
    
    	* usr/share/time-slider/lib/plugin/rsync/rsyncsmf.py:
    	  Add 2 new methods to retrieve cleanup threshhold and rsync
    	  verbosity properties from the rsync SMF service instance.
    
    	* usr/share/time-slider/lib/plugin/rsync/backup.py:
    	  Cleanup variable naming, making class private variables
    	  actually private using leading "_" character.
    	  Rename RsyncBackup class to RsyncProcess to me more descriptive.
    	  Add support for rsync verbosity in RsyncProcess class.
    	  Implement better cleanup and space management mechanism:
    	  - Removes old backups in parallel to new rsync backups running
    	    in a separate thread if space falls below threshhold level.
    	  - Identifies what backups can and can't be deleted for a given
    	    new rsync backup based on age and number of backups left for
    	    the associated filesystem.
    	  - Cleanup threshhold tuneable via SMF atic.
    
    	* usr/share/time-slider/lib/plugin/rsync/rsyncsmf.py:
    	  Add 2 new methods to retrieve cleanup threshhold and rsync
    	  verbosity properties from the rsync SMF service instance.
    
    	* usr/share/time-slider/lib/plugin/rsync/backup.py:
    	  Add check to make sure config key on target device matches that
    	  stored in SMF before commencing backups.
    	  Cleanup variable naming, making class private variables
    	  actually private using leading "_" character.
    	  Rename RsyncBackup class to RsyncProcess to me more descriptive.
    	  Add support for rsync verbosity in RsyncProcess class.
    	  Implement better cleanup and space management mechanism:
    	  - Removes old backups in parallel to new rsync backups running
    	    in a separate thread if space falls below threshhold level.
    	    Avoids having to make rough, inaccurate guesses about size
    	    required for new backups because it responds in real time.
    	  - Identifies what backups can and can't be deleted for a given
    	    new rsync backup based on age and number of backups left for
    	    the associated filesystem.
    	  - Cleanup threshhold tuneable via SMF.
    	  - Doesn't try to backup snapshots older than what's already on
    	    the backup device if device is almost full.
    NiallPower committed May 11, 2010
Commits on May 5, 2010
  1. 2010-05-05 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Redesigned queue management and backlog mechanism. Backs up
              most recent snapshot set first, then works backwards through
              the queue. Stops backup mechanism falling too far behind while
              still allowing backup of older snapshots to take place if
              time and space permit.
              Enhancements to filesystem layout of backups - added seperate
              folders for partial transfers, log files, trash folder and lock
              files. Added file locking mechanism to prevent deletion by other
              tools of backups in use (eg during incremental backups).
              Added trash mechanism, replaces in place deletion of snapshots
              which messes up directory mtimes and incremental backups.
              Instead, expired backups are moved to a .trash folder and a new
              method: empty_trash_folders() cleans it up after before starting
              the next snapshot set backup.
              Fix bug in list_pending_snapshots() where ctime of snapshots was
              returned as a string instead of a long.
    
            * usr/share/time-slider/lib/plugin/rsync/rsyncsmf.py: Add new
              filesystem suffix definitions for partial backups, trash
              folders, backup lock files and backup log files.
    NiallPower committed May 5, 2010
Commits on May 3, 2010
  1. 2010-05-03 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/timesliderd.py:
              Determine if <zpool/remedial-cleanup> SMF property is set to true.
              Do not perform remedial cleanups if it's value is false.
    
            * usr/share/time-slider/lib/time_slider/timeslidersmf.py:
              Add new method: get_remedial_cleanup() to indicate the value of
              property <zpool/remedial-cleanup>
    
            * var/svc/manifest/application/time-slider.xml:
              Add new SMF property: <zpool/remedial-cleanup> as boolean with
              default value of 'true'. Indicates that time-sliderd should
              perform remedial cleanups when snapshotted pool runs low on
              space.
    NiallPower committed May 3, 2010
  2. 2010-05-03 Niall Power - <niall.power@oracle.com>

            * Makefile:
              Install/uninstall time-slider.desktop into
              $(DESTDIR)/usr/share/applications/
    NiallPower committed May 3, 2010
Commits on May 2, 2010
  1. 2010-05-02 Niall Power - <niall.power@oracle.com>

            * lib/svc/method/time-slider:
              Remove any legacy zfs-auto-snapshot cron jobs in
              zfssnap's crontab that may not have been removed
              if the old auto-snapshot services were not stopped
              cleanly.
    NiallPower committed May 2, 2010
Commits on May 1, 2010
  1. 2010-05-02 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/timesliderd.py:
              Fix incorrect invocation of util.debug() that caused
              unconditional verbose output.
    NiallPower committed May 1, 2010
  2. 2010-05-02 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/timesliderd.py:
              Fix small typo in monthly calculation.
    NiallPower committed May 1, 2010
  3. 2010-05-02 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Instantiate RsyncBackup objects with verbose flag
              passed through. Remove "--progress" argument from
              rsync and add "-vv" argument instead if verbose
              flag is set.
    NiallPower committed May 1, 2010
  4. 2010-05-01 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/plugin.py: Fix some
              incorrect invocations that didn't pass verbose
              parameter (and were therefore no-ops)
    
            * usr/share/time-slider/lib/time_slider/timesliderd.py:
              Fix monthly period calculation. Now handles period
              increments > 12 months and period increments that
              land on december (originally logged as bugster
              CR #6904417)
    NiallPower committed May 1, 2010
  5. 2010-05-01 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Cache all GUI configuration values at startup and
              use them later to compare changes in configuration
              state. Only apply the minimum set of configuration
              changes necessary instead of previous method of
              blindly applying everything, even if unchanged.
              Configuration is much much faster now, especially
              for minor configuration changes.
              Recognise previously configured backup devices and
              ask the user if they want to start using it again
              instead of rejecting it as belonging to another
              system.
              Remove duplicate import of os.path modules.
    NiallPower committed May 1, 2010
Commits on Apr 28, 2010
  1. 2010-04-28 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Add removal of partial backups missing a  matching
              snapshot in the backup queue. They are zombies.
              When catching an rsync exception, change directory
              to "/" so that pfexec doesn't freak out when trying
              to release the snapshot. pfexec bails out when it
              tries to add cwd to it's path if cwd is non-existent
              which can be the case if the backup device suddenly
              goes offline.
    NiallPower committed Apr 28, 2010
Commits on Apr 27, 2010
  1. 2010-04-27 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Remember to also delete log files when deleting backups.
    NiallPower committed Apr 27, 2010
  2. 2010-04-27 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Exit if effective UID of process is not 0 (root)
    NiallPower committed Apr 27, 2010
  3. 2010-04-27 Niall Power - <niall.power@oracle.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py:
              Send rsync loggint to individual log files on the backup
              device. Delete log files when corresponding backup gets
              deleted.
              Create rsync backups in a temporary directory first and
              move to permanent location when completed. Prevents
              incomplete backups appearing in backup view in Nautilus.
              Also use "--inplace" rsync option to allow resumption of
              partial (interrupted) backups.
    
            * usr/share/time-slider/lib/plugin/rsync/rsyncsmf.py:
              Add shared key get/set methods for rsync SMF instance.
              Use new "set_string_prop" Smf class method for setting
              rsync target directory so that path names containing
              spaces can be correctly set. Conversely, strip out '\ '
              space formatting characters returned by SMF in
              get_target_dir() method.
    
            * usr/share/time-slider/lib/plugin/rsync/trigger.py:
              Don't tag new snapshots whose filesystems are not mounted
              Prevents piling up of snapshots from unmounted BEs. Might
              be best to make this behaviour configurable via SMF.
    
            * usr/share/time-slider/lib/time_slider/setupgui.py:
              Clean up OK button clicked callback by farming out several
              validation checks to separate methods. Add rsync config
              checking method to chek configuration/selection of rsync
              target device. Implement shared key checking to validate/
              identify pre-configured backup devices. Rejects devices
              configured for use on other systems. Add checks to ensure
              target device is writable by root and supports hard links
              as required for rsync incremental backups. Add a random
              key generation function. Perform basic space checking on
              rsync target device to see if it's big enough.
    
            * usr/share/time-slider/lib/time_slider/smf.py:
              Implement set_string_prop() method that allows white space
              string characters.
    
            * var/svc/manifest/application/time-slider-plugin.xml:
              Remove rsync plugin's property override of
              <plugin/trigger_on> and inherit defaults instead. Backing
              up frequent snapshots caused near constant backup disk
              churn.
    NiallPower committed Apr 27, 2010
Commits on Apr 17, 2010
  1. 2010-04-16 Niall Power - <niall.power@sun.com>

            * usr/share/time-slider/lib/time_slider/zfs.py: Fix bug in
              method "create_auto_snapshot_set() where it would skip
              the entire pool if the root of the pool was tagged and
              all datastets under the root inherited from it. Also,
              use sorted lists and binary searching to speed up the
              operation and avoid making repeated unnecessary calls
              to Dataset.list_children() (the data is already provided)
    NiallPower committed Apr 17, 2010
Commits on Apr 15, 2010
  1. 2010-04-15 Niall Power - <niall.power@sun.com>

            * usr/share/time-slider/lib/plugin/rsync/backup.py: Clean up
              dangling holds on snapshots left by abnormally terminated
              rsync transfers from previous invocations. Also, release
              snapshot holds if an Rsync exception is caught during
              transfer. Allows time-sliderd to delete snapshots when they
              naturally expire.
    Niall Power committed Apr 15, 2010