rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/Main.py


From: Andrew Ferguson
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/Main.py
Date: Mon, 09 Mar 2009 14:27:19 +0000

CVSROOT:        /sources/rdiff-backup
Module name:    rdiff-backup
Changes by:     Andrew Ferguson <owsla> 09/03/09 14:27:19

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : Main.py 

Log message:
        Suppress traceback if permission error during restore

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.366&r2=1.367
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/Main.py?cvsroot=rdiff-backup&r1=1.135&r2=1.136

Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.366
retrieving revision 1.367
diff -u -b -r1.366 -r1.367
--- CHANGELOG   8 Mar 2009 19:51:33 -0000       1.366
+++ CHANGELOG   9 Mar 2009 14:27:18 -0000       1.367
@@ -1,6 +1,9 @@
 New in v1.3.3 (????/??/??)
 ---------------------------
 
+Improve handling of incorrect permissions on backup repository during restore
+operation. Closes Ubuntu bug #329722. (Andrew Ferguson)
+
 Don't crash on zlib errors. Closes Debian bug #518531. (Andrew Ferguson)
 
 Make sticky bit warnings quieter while determining file system abilities.

Index: rdiff_backup/Main.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/Main.py,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -b -r1.135 -r1.136
--- rdiff_backup/Main.py        8 Mar 2009 18:51:14 -0000       1.135
+++ rdiff_backup/Main.py        9 Mar 2009 14:27:18 -0000       1.136
@@ -20,7 +20,7 @@
 """Start (and end) here - read arguments, set global settings, etc."""
 
 from __future__ import generators
-import getopt, sys, re, os, cStringIO, tempfile, time
+import getopt, sys, re, os, cStringIO, tempfile, time, errno
 from log import Log, LoggerError, ErrorLog
 import Globals, Time, SetConnections, selection, robust, rpath, \
           manage, backup, connection, restore, FilenameMapping, \
@@ -429,8 +429,12 @@
        global incdir
        try:
                incdir = Globals.rbdir.append_path("increments")
-       except (OSError, IOError), exc:
+       except IOError, exc:
+               if exc.errno == errno.EACCES:
+                       print "\n"
                Log.FatalError("Could not begin backup due to\n%s" % exc)
+               else:
+                       raise
 
        assert rpout.lstat(), (rpout.path, rpout.lstat())
        if rpout.isdir() and not rpout.listdir(): # rpout is empty dir
@@ -564,9 +568,12 @@
        restore_check_paths(src_rp, dest_rp, restore_as_of)
        try:
                dest_rp.conn.fs_abilities.restore_set_globals(dest_rp)
-       except (OSError, IOError), exc:
+       except IOError, exc:
+               if exc.errno == errno.EACCES:
                print "\n"
                Log.FatalError("Could not begin restore due to\n%s" % exc)
+               else:
+                       raise
        init_user_group_mapping(dest_rp.conn)
        src_rp = restore_init_quoting(src_rp)
        restore_check_backup_dir(restore_root, src_rp, restore_as_of)
@@ -577,8 +584,16 @@
        else: time = src_rp.getinctime()
        restore_set_select(restore_root, dest_rp)
        restore_start_log(src_rp, dest_rp, time)
+       try:
        restore.Restore(restore_root.new_index(restore_index),
                                        inc_rpath, dest_rp, time)
+       except IOError, exc:
+               if exc.errno == errno.EACCES:
+                       print "\n"
+                       Log.FatalError("Could not complete restore due to\n%s" 
% exc)
+               else:
+                       raise
+       else:
        Log("Restore finished", 4)
 
 def restore_init_quoting(src_rp):




reply via email to

[Prev in Thread] Current Thread [Next in Thread]