diff options
author | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-09-28 18:36:51 +0000 |
---|---|---|
committer | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-09-28 18:36:51 +0000 |
commit | 9da6efdb9f5a84a4463e1587d5c02b19c9c7a17a (patch) | |
tree | 5490ededb80d725185b3490559b7e48ab4365359 /rdiff-backup/rdiff_backup/regress.py | |
parent | 0845027e12bcb65389d28bb87e3a2ba5f862a78d (diff) | |
download | rdiff-backup-9da6efdb9f5a84a4463e1587d5c02b19c9c7a17a.tar.gz |
Mostly another unreadable regress fix
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@463 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/regress.py')
-rw-r--r-- | rdiff-backup/rdiff_backup/regress.py | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/rdiff-backup/rdiff_backup/regress.py b/rdiff-backup/rdiff_backup/regress.py index b508138..acee41f 100644 --- a/rdiff-backup/rdiff_backup/regress.py +++ b/rdiff-backup/rdiff_backup/regress.py @@ -114,27 +114,23 @@ def remove_rbdir_increments(): def iterate_raw_rfs(mirror_rp, inc_rp): """Iterate all RegressFile objects in mirror/inc directory - Also changes permissions of unreadable files to allow access and - then changes them back later. + Also changes permissions of unreadable files. We don't have to + change them back later because regress will do that for us. """ root_rf = RegressFile(mirror_rp, inc_rp, restore.get_inclist(inc_rp)) def helper(rf): mirror_rp = rf.mirror_rp - if (Globals.process_uid != 0 and - ((mirror_rp.isreg() and not mirror_rp.readable()) or - (mirror_rp.isdir() and not mirror_rp.hasfullperms()))): - unreadable, old_perms = 1, mirror_rp.getperms() - if mirror_rp.isreg(): mirror_rp.chmod(0400 | old_perms) - else: mirror_rp.chmod(0700 | old_perms) - else: unreadable = 0 + if Globals.process_uid != 0: + if mirror_rp.isreg() and not mirror_rp.readable(): + mirror_rp.chmod(0400 | mirror_rp.getperms()) + elif mirror_rp.isdir() and not mirror_rp.hasfullperms(): + mirror_rp.chmod(0700 | mirror_rp.getperms()) yield rf - if unreadable and mirror_rp.isreg(): mirror_rp.chmod(old_perms) if rf.mirror_rp.isdir() or rf.inc_rp.isdir(): for sub_rf in rf.yield_sub_rfs(): for sub_sub_rf in helper(sub_rf): yield sub_sub_rf - if unreadable and mirror_rp.isdir(): mirror_rp.chmod(old_perms) return helper(root_rf) def yield_metadata(): @@ -248,14 +244,14 @@ class RegressITRB(rorpiter.ITRBranch): if rf.mirror_rp.isreg(): tf = TempFile.new(rf.mirror_rp) tf.write_from_fileobj(rf.get_restore_fp()) - rpath.copy_attribs(rf.metadata_rorp, tf) tf.fsync_with_dir() # make sure tf fully written before move + rpath.copy_attribs(rf.metadata_rorp, tf) rpath.rename(tf, rf.mirror_rp) # move is atomic else: if rf.mirror_rp.lstat(): rf.mirror_rp.delete() rf.mirror_rp.write_from_fileobj(rf.get_restore_fp()) rpath.copy_attribs(rf.metadata_rorp, rf.mirror_rp) - rf.mirror_rp.fsync_with_dir() # require move before inc delete + rf.mirror_rp.get_parent_rp().fsync() # require move before inc delete def start_process(self, index, rf): """Start processing directory""" |