summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/commontest.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/testing/commontest.py')
-rw-r--r--rdiff-backup/testing/commontest.py49
1 files changed, 22 insertions, 27 deletions
diff --git a/rdiff-backup/testing/commontest.py b/rdiff-backup/testing/commontest.py
index 3636d9f..769187a 100644
--- a/rdiff-backup/testing/commontest.py
+++ b/rdiff-backup/testing/commontest.py
@@ -88,35 +88,30 @@ def InternalBackup(source_local, dest_local, src_dir, dest_dir,
Main.Backup(rpin, rpout)
Main.cleanup()
-def InternalMirror(source_local, dest_local, src_dir, dest_dir,
- write_data = None):
- """Mirror src to dest internally, like InternalBackup"""
- remote_schema = '%s'
+def InternalMirror(source_local, dest_local, src_dir, dest_dir):
+ """Mirror src to dest internally
- if not source_local:
- src_dir = "cd test1; python ../server.py ../%s::../%s" % \
- (SourceDir, src_dir)
- if not dest_local:
- dest_dir = "cd test2/tmp; python ../../server.py ../../%s::../../%s" \
- % (SourceDir, dest_dir)
+ like InternalBackup, but only mirror. Do this through
+ InternalBackup, but then delete rdiff-backup-data directory.
- rpin, rpout = cmd_schemas2rps([src_dir, dest_dir], remote_schema)
- Main.misc_setup([rpin, rpout])
- Main.backup_init_select(rpin, rpout)
- if not rpout.lstat(): rpout.mkdir()
- if write_data: # use rdiff-backup-data dir to checkpoint
- data_dir = rpout.append("rdiff-backup-data")
- if not data_dir.lstat(): data_dir.mkdir()
- SetConnections.UpdateGlobal('rbdir', data_dir)
- else: # just use root directory to hold checkpoints
- SetConnections.UpdateGlobal('rbdir', rpout)
- SetConnections.BackupInitConnections(rpin.conn, rpout.conn)
-
- if write_data:
- SaveState.init_filenames()
- HighLevel.Mirror(rpin, rpout, Globals.rbdir.append("increments"))
- else: HighLevel.Mirror(rpin, rpout)
- Main.cleanup()
+ """
+ # Save attributes of root to restore later
+ src_root = RPath(Globals.local_connection, src_dir)
+ dest_root = RPath(Globals.local_connection, dest_dir)
+ dest_rbdir = dest_root.append("rdiff-backup-data")
+ dest_incdir = dest_rbdir.append("increments")
+
+ # We need to create these directories or else failure because
+ # --force option not given.
+ if not dest_root.lstat(): dest_root.mkdir()
+ if not dest_rbdir.lstat(): dest_rbdir.mkdir()
+ if not dest_incdir.lstat(): dest_incdir.mkdir()
+
+ InternalBackup(source_local, dest_local, src_dir, dest_dir)
+ dest_root.setdata()
+ dest_rbdir.delete()
+ # Restore old attributes
+ RPathStatic.copy_attribs(src_root, dest_root)
def InternalRestore(mirror_local, dest_local, mirror_dir, dest_dir, time):
"""Restore mirror_dir to dest_dir at given time