summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/Main.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/rdiff_backup/Main.py')
-rw-r--r--rdiff-backup/rdiff_backup/Main.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/rdiff-backup/rdiff_backup/Main.py b/rdiff-backup/rdiff_backup/Main.py
index cec625d..b8968db 100644
--- a/rdiff-backup/rdiff_backup/Main.py
+++ b/rdiff-backup/rdiff_backup/Main.py
@@ -683,7 +683,7 @@ def restore_set_root(rpin):
def ListIncrements(rp):
"""Print out a summary of the increments and their times"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
restore_check_backup_dir(restore_root)
mirror_rp = restore_root.new_index(restore_index)
inc_rpath = Globals.rbdir.append_path('increments', restore_index)
@@ -693,7 +693,7 @@ def ListIncrements(rp):
print manage.describe_incs_parsable(incs, mirror_time, mirror_rp)
else: print manage.describe_incs_human(incs, mirror_time, mirror_rp)
-def require_root_set(rp):
+def require_root_set(rp, readonly = None):
"""Make sure rp is or is in a valid rdiff-backup dest directory.
Also initializes fs_abilities and quoting and return quoted rp if
@@ -703,11 +703,11 @@ def require_root_set(rp):
if not restore_set_root(rp):
Log.FatalError(("Bad directory %s.\n" % (rp.path,)) +
"It doesn't appear to be an rdiff-backup destination dir")
- single_set_fs_globals(Globals.rbdir)
+ single_set_fs_globals(Globals.rbdir, readonly)
if Globals.chars_to_quote: return restore_init_quoting(rp)
else: return rp
-def single_set_fs_globals(rbdir):
+def single_set_fs_globals(rbdir, readonly = None):
"""Use fs_abilities to set globals that depend on filesystem.
This is appropriate for listing increments, or any other operation
@@ -724,8 +724,10 @@ def single_set_fs_globals(rbdir):
SetConnections.UpdateGlobal(write_attr, 1)
rbdir.conn.Globals.set_local(conn_attr, 1)
- fsa = rbdir.conn.fs_abilities.get_fsabilities_readwrite('archive',
- rbdir, 1, Globals.chars_to_quote)
+ if readonly: fsa = rbdir.conn.fs_abilities.get_fsabilities_readonly(
+ 'archive', rbdir, Globals.chars_to_quote)
+ else: fsa = rbdir.conn.fs_abilities.get_fsabilities_readwrite(
+ 'archive', rbdir, 1, Globals.chars_to_quote)
Log(str(fsa), 4)
update_triple(fsa.eas, ('eas_active', 'eas_write', 'eas_conn'))
@@ -806,7 +808,7 @@ def rot_require_rbdir_base(rootrp):
def ListChangedSince(rp):
"""List all the files under rp that have changed since restoretime"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
try: rest_time = Time.genstrtotime(restore_timestr)
except Time.TimeException, exc: Log.FatalError(str(exc))
mirror_rp = restore_root.new_index(restore_index)
@@ -818,7 +820,7 @@ def ListChangedSince(rp):
def ListAtTime(rp):
"""List files in archive under rp that are present at restoretime"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
try: rest_time = Time.genstrtotime(restore_timestr)
except Time.TimeException, exc: Log.FatalError(str(exc))
mirror_rp = restore_root.new_index(restore_index)