diff options
author | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-12-20 05:43:37 +0000 |
---|---|---|
committer | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-12-20 05:43:37 +0000 |
commit | 5d3974dcd81e009293afe2372364983ad3810568 (patch) | |
tree | 64a99f5130cdd780eb1898861c6d200737cbd2a4 /rdiff-backup/rdiff_backup | |
parent | ea85480d1d7482802d213ee35624211f31b8ace5 (diff) | |
download | rdiff-backup-5d3974dcd81e009293afe2372364983ad3810568.tar.gz |
Removed --mirror-only feature and most checkpointing/recovery code
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@250 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup')
-rw-r--r-- | rdiff-backup/rdiff_backup/Main.py | 54 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/highlevel.py | 45 |
2 files changed, 22 insertions, 77 deletions
diff --git a/rdiff-backup/rdiff_backup/Main.py b/rdiff-backup/rdiff_backup/Main.py index 67141e1..2b3d497 100644 --- a/rdiff-backup/rdiff_backup/Main.py +++ b/rdiff-backup/rdiff_backup/Main.py @@ -48,23 +48,22 @@ def parse_cmdlineoptions(arglist): try: return open(filename, "r") except IOError: Log.FatalError("Error opening file %s" % filename) - try: optlist, args = getopt.getopt(arglist, "blmr:sv:V", - ["backup-mode", "calculate-average", - "change-source-perms", "chars-to-quote=", - "checkpoint-interval=", "current-time=", "exclude=", - "exclude-device-files", "exclude-filelist=", + try: optlist, args = getopt.getopt(arglist, "blr:sv:V", + ["backup-mode", "calculate-average", "change-source-perms", + "chars-to-quote=", "checkpoint-interval=", "current-time=", + "exclude=", "exclude-device-files", "exclude-filelist=", "exclude-filelist-stdin", "exclude-globbing-filelist=", "exclude-mirror=", "exclude-other-filesystems", "exclude-regexp=", "exclude-special-files", "force", "include=", "include-filelist=", "include-filelist-stdin", "include-globbing-filelist=", "include-regexp=", - "list-changed-since=", "list-increments", "mirror-only", - "no-compression", "no-compression-regexp=", "no-hard-links", - "no-resume", "null-separator", "parsable-output", - "print-statistics", "quoting-char=", "remote-cmd=", - "remote-schema=", "remove-older-than=", "restore-as-of=", - "restrict=", "restrict-read-only=", "restrict-update-only=", - "resume", "resume-window=", "server", "sleep-ratio=", + "list-changed-since=", "list-increments", "no-compression", + "no-compression-regexp=", "no-hard-links", "no-resume", + "null-separator", "parsable-output", "print-statistics", + "quoting-char=", "remote-cmd=", "remote-schema=", + "remove-older-than=", "restore-as-of=", "restrict=", + "restrict-read-only=", "restrict-update-only=", "resume", + "resume-window=", "server", "sleep-ratio=", "ssh-no-compression", "terminal-verbosity=", "test-server", "verbosity=", "version", "windows-mode", "windows-time-format"]) @@ -115,7 +114,6 @@ def parse_cmdlineoptions(arglist): restore_timestr, action = arg, "list-changed-since" elif opt == "-l" or opt == "--list-increments": action = "list-increments" - elif opt == "-m" or opt == "--mirror-only": action = "mirror" elif opt == "--no-compression": Globals.set("compression", None) elif opt == "--no-compression-regexp": Globals.set("no_compression_regexp_string", arg) @@ -185,8 +183,7 @@ def set_action(): commandline_error("No arguments given") if l > 0 and action == "server": commandline_error("Too many arguments given") - if l < 2 and (action == "backup" or action == "mirror" or - action == "restore-as-of"): + if l < 2 and (action == "backup" or action == "restore-as-of"): commandline_error("Two arguments are required (source, destination).") if l == 2 and (action == "list-increments" or action == "remove-older-than" or @@ -228,7 +225,6 @@ def take_action(rps): elif action == "backup": Backup(rps[0], rps[1]) elif action == "restore": restore(*rps) elif action == "restore-as-of": RestoreAsOf(rps[0], rps[1]) - elif action == "mirror": Mirror(rps[0], rps[1]) elif action == "test-server": SetConnections.TestConnections() elif action == "list-changed-since": ListChangedSince(rps[0]) elif action == "list-increments": ListIncrements(rps[0]) @@ -254,37 +250,15 @@ def Main(arglist): cleanup() -def Mirror(src_rp, dest_rp): - """Turn dest_path into a copy of src_path""" - Log("Mirroring %s to %s" % (src_rp.path, dest_rp.path), 5) - mirror_check_paths(src_rp, dest_rp) - # Since no "rdiff-backup-data" dir, use root of destination. - SetConnections.UpdateGlobal('rbdir', dest_rp) - SetConnections.BackupInitConnections(src_rp.conn, dest_rp.conn) - backup_init_select(src_rp, dest_rp) - HighLevel.Mirror(src_rp, dest_rp) - -def mirror_check_paths(rpin, rpout): - """Check paths and return rpin, rpout""" - if not rpin.lstat(): - Log.FatalError("Source directory %s does not exist" % rpin.path) - if rpout.lstat() and not force: Log.FatalError( -"""Destination %s exists so continuing could mess it up. Run -rdiff-backup with the --force option if you want to mirror anyway.""" % - rpout.path) - - def Backup(rpin, rpout): """Backup, possibly incrementally, src_path to dest_path.""" SetConnections.BackupInitConnections(rpin.conn, rpout.conn) backup_init_select(rpin, rpout) backup_init_dirs(rpin, rpout) - RSI = Globals.backup_writer.Resume.ResumeCheck() - SaveState.init_filenames() if prevtime: Time.setprevtime(prevtime) - HighLevel.Mirror_and_increment(rpin, rpout, incdir, RSI) - else: HighLevel.Mirror(rpin, rpout, incdir, RSI) + HighLevel.Mirror_and_increment(rpin, rpout, incdir) + else: HighLevel.Mirror(rpin, rpout, incdir) rpout.conn.Main.backup_touch_curmirror_local(rpin, rpout) def backup_init_select(rpin, rpout): diff --git a/rdiff-backup/rdiff_backup/highlevel.py b/rdiff-backup/rdiff_backup/highlevel.py index 48cb123..eb3628f 100644 --- a/rdiff-backup/rdiff_backup/highlevel.py +++ b/rdiff-backup/rdiff_backup/highlevel.py @@ -40,7 +40,7 @@ class HighLevel: accompanying diagram. """ - def Mirror(src_rpath, dest_rpath, inc_rpath = None, session_info = None): + def Mirror(src_rpath, dest_rpath, inc_rpath): """Turn dest_rpath into a copy of src_rpath If inc_rpath is true, then this is the initial mirroring of an @@ -51,14 +51,10 @@ class HighLevel: SourceS = src_rpath.conn.HLSourceStruct DestS = dest_rpath.conn.HLDestinationStruct - SourceS.set_session_info(session_info) - DestS.set_session_info(session_info) src_init_dsiter = SourceS.split_initial_dsiter() dest_sigiter = DestS.get_sigs(dest_rpath, src_init_dsiter) diffiter = SourceS.get_diffs_and_finalize(dest_sigiter) - if inc_rpath: - DestS.patch_w_datadir_writes(dest_rpath, diffiter, inc_rpath) - else: DestS.patch_and_finalize(dest_rpath, diffiter) + DestS.patch_w_datadir_writes(dest_rpath, diffiter, inc_rpath) dest_rpath.setdata() @@ -68,9 +64,6 @@ class HighLevel: SourceS = src_rpath.conn.HLSourceStruct DestS = dest_rpath.conn.HLDestinationStruct - SourceS.set_session_info(session_info) - DestS.set_session_info(session_info) - if not session_info: dest_rpath.conn.SaveState.touch_last_file() src_init_dsiter = SourceS.split_initial_dsiter() dest_sigiter = DestS.get_sigs(dest_rpath, src_init_dsiter) diffiter = SourceS.get_diffs_and_finalize(dest_sigiter) @@ -84,19 +77,9 @@ MakeStatic(HighLevel) class HLSourceStruct: """Hold info used by HL on the source side""" - _session_info = None # set to si if resuming - def set_session_info(cls, session_info): - cls._session_info = session_info - - def iterate_from(cls): - """Supply more aruments to DestructiveStepping.Iterate_from""" - if cls._session_info is None: Globals.select_source.set_iter() - else: Globals.select_source.set_iter(cls._session_info.last_index, 1) - return Globals.select_source - def split_initial_dsiter(cls): """Set iterators of all dsrps from rpath, returning one""" - dsiter = cls.iterate_from() + dsiter = Globals.select_source.set_iter() initial_dsiter1, cls.initial_dsiter2 = Iter.multiplex(dsiter, 2) return initial_dsiter1 @@ -133,18 +116,10 @@ MakeClass(HLSourceStruct) class HLDestinationStruct: """Hold info used by HL on the destination side""" _session_info = None # set to si if resuming - def set_session_info(cls, session_info): - cls._session_info = session_info - - def iterate_from(cls): - """Return selection iterator to iterate all the mirror files""" - if cls._session_info is None: Globals.select_mirror.set_iter() - else: Globals.select_mirror.set_iter(cls._session_info.last_index) - return Globals.select_mirror - def split_initial_dsiter(cls): """Set initial_dsiters (iteration of all dsrps from rpath)""" - result, cls.initial_dsiter2 = Iter.multiplex(cls.iterate_from(), 2) + result, cls.initial_dsiter2 = \ + Iter.multiplex(Globals.select_mirror.set_iter(), 2) return result def get_dissimilar(cls, baserp, src_init_iter, dest_init_iter): @@ -287,7 +262,6 @@ class HLDestinationStruct: if diff_rorp and diff_rorp.isplaceholder(): diff_rorp = None ITR(dsrp.index, diff_rorp, dsrp) finalizer(dsrp.index, dsrp) - SaveState.checkpoint(ITR, finalizer, dsrp) finished_dsrp = dsrp ITR.Finish() finalizer.Finish() @@ -296,7 +270,6 @@ class HLDestinationStruct: if Globals.preserve_hardlinks: Hardlink.final_writedata() MiscStats.close_dir_stats_file() MiscStats.write_session_statistics(ITR.root_branch) - SaveState.checkpoint_remove() def patch_increment_and_finalize(cls, dest_rpath, diffs, inc_rpath): """Apply diffs, write increment if necessary, and finalize""" @@ -314,7 +287,6 @@ class HLDestinationStruct: if diff_rorp and diff_rorp.isplaceholder(): diff_rorp = None ITR(index, diff_rorp, dsrp) finalizer(index, dsrp) - SaveState.checkpoint(ITR, finalizer, dsrp) finished_dsrp = dsrp ITR.Finish() finalizer.Finish() @@ -323,15 +295,14 @@ class HLDestinationStruct: if Globals.preserve_hardlinks: Hardlink.final_writedata() MiscStats.close_dir_stats_file() MiscStats.write_session_statistics(ITR.root_branch) - SaveState.checkpoint_remove() def handle_last_error(cls, dsrp, finalizer, ITR): """If catch fatal error, try to checkpoint before exiting""" Log.exception(1, 2) TracebackArchive.log() - SaveState.checkpoint(ITR, finalizer, dsrp, 1) - if Globals.preserve_hardlinks: Hardlink.final_checkpoint(Globals.rbdir) - SaveState.touch_last_file_definitive() + #SaveState.checkpoint(ITR, finalizer, dsrp, 1) + #if Globals.preserve_hardlinks: Hardlink.final_checkpoint(Globals.rbdir) + #SaveState.touch_last_file_definitive() raise MakeClass(HLDestinationStruct) |