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 [r1-2


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

CVSROOT:        /sources/rdiff-backup
Module name:    rdiff-backup
Branch:         r1-2
Changes by:     Andrew Ferguson <owsla> 09/03/09 14:26:58

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&only_with_tag=r1-2&r1=1.338.2.15&r2=1.338.2.16
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/Main.py?cvsroot=rdiff-backup&only_with_tag=r1-2&r1=1.127.2.1&r2=1.127.2.2

Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.338.2.15
retrieving revision 1.338.2.16
diff -u -b -r1.338.2.15 -r1.338.2.16
--- CHANGELOG   8 Mar 2009 19:51:20 -0000       1.338.2.15
+++ CHANGELOG   9 Mar 2009 14:26:57 -0000       1.338.2.16
@@ -1,6 +1,9 @@
 New in v1.2.8 (????/??/??)
 ---------------------------
 
+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.127.2.1
retrieving revision 1.127.2.2
diff -u -b -r1.127.2.1 -r1.127.2.2
--- rdiff_backup/Main.py        8 Mar 2009 18:51:07 -0000       1.127.2.1
+++ rdiff_backup/Main.py        9 Mar 2009 14:26:58 -0000       1.127.2.2
@@ -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
+import getopt, sys, re, os, cStringIO, tempfile, errno
 from log import Log, LoggerError, ErrorLog
 import Globals, Time, SetConnections, selection, robust, rpath, \
           manage, backup, connection, restore, FilenameMapping, \
@@ -426,8 +426,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
@@ -548,9 +552,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)
@@ -561,8 +568,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]