]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commit
immutable repairer
authorZooko O'Whielacronx <zooko@zooko.com>
Mon, 12 Jan 2009 18:00:22 +0000 (11:00 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Mon, 12 Jan 2009 18:00:22 +0000 (11:00 -0700)
commit25063688b4b31834dcc6f801ab2b67b9cd19050c
treeb0ac036a1901d2fd7902d5335b5891151c156bc4
parente449052a177ff3efc94f2ee0d8ce6f3ead7a83ec
immutable repairer
This implements an immutable repairer by marrying a CiphertextDownloader to a CHKUploader.  It extends the IDownloadTarget interface so that the downloader can provide some metadata that the uploader requires.
The processing is incremental -- it uploads the first segments before it finishes downloading the whole file.  This is necessary so that you can repair large files without running out of RAM or using a temporary file on the repairer.
It requires only a verifycap, not a readcap.  That is: it doesn't need or use the decryption key, only the integrity check codes.
There are several tests marked TODO and several instances of XXX in the source code.  I intend to open tickets to document further improvements to functionality and testing, but the current version is probably good enough for Tahoe-1.3.0.
src/allmydata/immutable/checker.py
src/allmydata/immutable/download.py
src/allmydata/immutable/filenode.py
src/allmydata/immutable/repairer.py
src/allmydata/immutable/upload.py
src/allmydata/interfaces.py
src/allmydata/test/common.py
src/allmydata/test/test_immutable.py
src/allmydata/test/test_repairer.py [new file with mode: 0644]