diff --git a/src/allmydata/scripts/tahoe_backup.py b/src/allmydata/scripts/tahoe_backup.py index 02044ede4..e796061e5 100644 --- a/src/allmydata/scripts/tahoe_backup.py +++ b/src/allmydata/scripts/tahoe_backup.py @@ -269,6 +269,7 @@ class BackerUpper(object): self.verboseprint("skipping %s.." % quote_local_unicode_path(childpath)) return False, bdb_results.was_uploaded(), metadata + def backup(options): bu = BackerUpper(options) return bu.run() @@ -306,7 +307,6 @@ def collect_backup_targets(root, listdir, filter_children): yield DirectoryTarget(root) - def run_backup( warn, upload_file, @@ -327,12 +327,10 @@ def run_backup( return progress.backup_finished() - class FileTarget(object): def __init__(self, path): self._path = path - def __repr__(self): return "".format(self._path) @@ -349,16 +347,13 @@ class FileTarget(object): return progress.reused_file(self._path, childcap, metadata) - class DirectoryTarget(object): def __init__(self, path): self._path = path - def __repr__(self): return "".format(self._path) - def backup(self, progress, upload_file, upload_directory): metadata = get_local_metadata(self._path) progress, create, compare = progress.consume_directory(self._path) @@ -368,7 +363,6 @@ class DirectoryTarget(object): return progress.reused_directory(self._path, dircap, metadata) - class _ErrorTarget(object): def __init__(self, path, isdir): self._path = path @@ -376,19 +370,16 @@ class _ErrorTarget(object): self._isdir = isdir - class PermissionDeniedTarget(_ErrorTarget): def backup(self, progress, upload_file, upload_directory): return progress.permission_denied(self._isdir, self._quoted_path) - class FilenameUndecodableTarget(_ErrorTarget): def backup(self, progress, upload_file, upload_directory): return progress.decoding_failed(self._isdir, self._quoted_path) - class LinkTarget(_ErrorTarget): def backup(self, progress, upload_file, upload_directory): return progress.unsupported_filetype( @@ -398,7 +389,6 @@ class LinkTarget(_ErrorTarget): ) - class SpecialTarget(_ErrorTarget): def backup(self, progress, upload_file, upload_directory): return progress.unsupported_filetype( @@ -408,7 +398,6 @@ class SpecialTarget(_ErrorTarget): ) - class BackupComplete(object): def __init__(self, start_timestamp, @@ -431,11 +420,9 @@ class BackupComplete(object): self._directories_skipped = directories_skipped self.dircap = dircap - def any_skips(self): return self._files_skipped or self._directories_skipped - def report(self, verbosity, files_checked, directories_checked): result = [] @@ -470,7 +457,6 @@ class BackupComplete(object): return "\n".join(result) - class BackupProgress(object): # Would be nice if this data structure were immutable and its methods were # transformations that created a new slightly different object. Not there @@ -489,7 +475,6 @@ class BackupProgress(object): self._create_contents = {} self._compare_contents = {} - def report(self, now): report_format = ( "Backing up {target_progress}/{target_total}... {elapsed} elapsed..." @@ -507,7 +492,6 @@ class BackupProgress(object): elapsed=self._format_elapsed(now - self._start_timestamp), ) - def _format_elapsed(self, elapsed): seconds = elapsed.total_seconds() hours = int(seconds / 3600) @@ -533,7 +517,6 @@ class BackupProgress(object): self.last_dircap, ) - def consume_directory(self, dirpath): return self, { os.path.basename(create_path): create_value @@ -547,7 +530,6 @@ class BackupProgress(object): if os.path.dirname(compare_path) == dirpath } - def created_directory(self, path, dircap, metadata): self._create_contents[path] = ("dirnode", dircap, metadata) self._compare_contents[path] = dircap @@ -555,7 +537,6 @@ class BackupProgress(object): self.last_dircap = dircap return self - def reused_directory(self, path, dircap, metadata): self._create_contents[path] = ("dirnode", dircap, metadata) self._compare_contents[path] = dircap @@ -563,21 +544,18 @@ class BackupProgress(object): self.last_dircap = dircap return self - def created_file(self, path, cap, metadata): self._create_contents[path] = ("filenode", cap, metadata) self._compare_contents[path] = cap self._files_created += 1 return self - def reused_file(self, path, cap, metadata): self._create_contents[path] = ("filenode", cap, metadata) self._compare_contents[path] = cap self._files_reused += 1 return self - def permission_denied(self, isdir, quoted_path): return self._skip( "WARNING: permission denied on {kind} {path}", @@ -585,7 +563,6 @@ class BackupProgress(object): path=quoted_path, ) - def decoding_failed(self, isdir, quoted_path): return self._skip( "WARNING: could not list {kind} {path} due to a filename encoding error", @@ -593,7 +570,6 @@ class BackupProgress(object): path=quoted_path, ) - def unsupported_filetype(self, isdir, quoted_path, filetype): return self._skip( "WARNING: cannot backup {filetype} {path}", @@ -602,7 +578,6 @@ class BackupProgress(object): filetype=filetype, ) - def _skip(self, message, isdir, **kw): if isdir: self._directories_skipped += 1