Zooko O'Whielacronx [Fri, 15 Feb 2008 03:20:19 +0000 (20:20 -0700)]
add unit test asserting that allmydata.util.base32 matches rfc 3548
Zooko O'Whielacronx [Fri, 15 Feb 2008 02:35:32 +0000 (19:35 -0700)]
merge patch which adds base32 to test_util with patch which removes bencode from test_util
robk-tahoe [Fri, 15 Feb 2008 01:35:10 +0000 (18:35 -0700)]
macfuse: another tahoe fuse implementation
This is the result of various experimentation done into using python-fuse
to provide access to tahoe on the mac. It's rough in quite a few places,
and is really the result of investigation more than a thorough
implemenation of the fuse api.
upon launch, it looks for the users root_dir by opening ~/.tahoe/node.url
and ~/.tahoe/private/root_dir.cap it then proceeds to cache the directory
structure found by walking the users tahoe drive (safely in the face of
directory loops) into memory and then mounts that filesystem.
when a file is read, it calls the tahoe node to first download the file
into a cache directory (~/.tahoe/_cache) and then serves up the file
from there.
when a file is written, a temporary file is allocated within the tmp dir
of the cache, and upon close() (specifically upon release()) the file is
uploaded to the tahoe node, and the new directory entry written.
note that while the durectory structure is cached into memory only when
the filesystem is mounted, that it is 'write through' i.e. changes made
via fuse are reflected into the underlying tahoe fs, even though changes
made to the tahoe fs otherwise show up only upon restart.
in addition to opening files for read and write, the mkdir() and rename()
calls are supported. most other file system operations are not yet
supported. notably stat() metadata is not currently tracked by tahoe,
and is variably reported by this fs depending on write cache files.
also note that this version does not fully support Finder. access through
normal unix commands such as cat, cp, mv, ls etc works fine, and read
access to file from within finder (including preview images and double-
click to open) work ok. but copies to the tahoe drive from within finder
may or may not succeed, but will always report an error. This is still
under investigation.
also note that this does not include any build integration. the included
_fusemodule.so was built on mac os 10.4 against macfuse 1.3.0, and is
known to not work against 10.5-1.3.1 it's possible it may also contain
dependencies upon parts of macports used to build the python that it was
built against. this will be cleaned up later.
usage:
python tahoefuse.py /Path/to/choice/of/mountpoint
or optionally
python tahoefuse.py -ovolicon=/Path/to/icon.icns /Path/to/mountpoint
upon startup, tahoefuse will walk the tahoe directory, then print a
summary of files and folders found, and then daemonise itself. to exit,
either eject the 'drive' (note: 10.5 doesn't show it as a drive, since
it considers fuse to be a connected server instead) or unmount it via
umount /Path/to/mountpoint etc.
robk-tahoe [Fri, 15 Feb 2008 00:36:10 +0000 (17:36 -0700)]
mac: fix a small bug in the 'tahoe' script
robk-tahoe [Fri, 15 Feb 2008 00:23:07 +0000 (17:23 -0700)]
idlib: make failures much clearer when encountering unicode
while investigating fuse related stuff, I spent quite a while staring at
very cryptic explosions I got from idlib. it turns out that unicode
objects and str objects have .translate() methods with differing signatures.
to save anyone else the headache, this makes it very clear if you accidentally
try to pass a unicode object in to a2b() etc.
Brian Warner [Fri, 15 Feb 2008 01:06:41 +0000 (18:06 -0700)]
remove bencode, yay
Brian Warner [Fri, 15 Feb 2008 00:59:29 +0000 (17:59 -0700)]
docs/uri.txt: update to reflect mutable files
Brian Warner [Thu, 14 Feb 2008 22:45:56 +0000 (15:45 -0700)]
unicode handling: declare dirnodes to contain unicode child names, update webish to match
Peter Secor [Thu, 14 Feb 2008 04:36:09 +0000 (21:36 -0700)]
updating installer for beta release
Brian Warner [Thu, 14 Feb 2008 03:20:43 +0000 (20:20 -0700)]
more minor architecture.txt changes
Brian Warner [Thu, 14 Feb 2008 03:14:29 +0000 (20:14 -0700)]
architecture.txt: fix some things that have changed a lot in recent releases
robk-tahoe [Thu, 14 Feb 2008 01:17:16 +0000 (18:17 -0700)]
windows installer: remove uninstall tracking, add welcome page
in justin's testing, the uninstall tracking was hanging the uninstall
process (on vista) for now, until we see enough need for it to warrant
more detailed testing/debugging/tweaks, I'm simply disabling the call
to confwiz --uninstall
also this adds a 'welcome page' to the install process. once the user
has installed the windows build, then the installer will open a web
browser to the 'welcome page' on the website ('/welcome_install')
Brian Warner [Thu, 14 Feb 2008 00:41:20 +0000 (17:41 -0700)]
mutable.py: add comments to justify initial-read size choices
Brian Warner [Thu, 14 Feb 2008 00:40:45 +0000 (17:40 -0700)]
docs/dirnodes.txt: add notes on dirnode sizes
Brian Warner [Thu, 14 Feb 2008 00:39:06 +0000 (17:39 -0700)]
mutable.txt: fix offset math in the SDMF layout
Zooko O'Whielacronx [Fri, 15 Feb 2008 02:27:47 +0000 (19:27 -0700)]
switch from base62 to base32 for storage indices, switch from z-base-32 to rfc 3548 base-32 for everything, separate out base32 encoding from idlib
Zooko O'Whielacronx [Thu, 14 Feb 2008 18:54:14 +0000 (11:54 -0700)]
docs: link straight to the release tar.gz in install.html
Zooko O'Whielacronx [Thu, 14 Feb 2008 16:00:26 +0000 (09:00 -0700)]
docs: update relnotes.txt for v0.8.0!
Zooko O'Whielacronx [Thu, 14 Feb 2008 15:54:34 +0000 (08:54 -0700)]
docs: update relnotes, running.html
Zooko O'Whielacronx [Thu, 14 Feb 2008 00:43:02 +0000 (17:43 -0700)]
docs: beginning of update to relnotes.txt for v0.8
Zooko O'Whielacronx [Wed, 13 Feb 2008 23:17:14 +0000 (16:17 -0700)]
mac: shebang usr bin env python
This makes it so that I can run "./setup.py" on the command-line, instead of "python ./setup.py".
Brian Warner [Wed, 13 Feb 2008 22:12:06 +0000 (15:12 -0700)]
'tahoe catalog-shares': add SDMF filesize to the output, update misc/find-share-anomalies.py to match
Brian Warner [Wed, 13 Feb 2008 20:57:39 +0000 (13:57 -0700)]
add test coverage for the /stats web page
Brian Warner [Wed, 13 Feb 2008 20:34:20 +0000 (13:34 -0700)]
mutable.py: reject shares with different k/N than we expect. Quick fix for #312: avoids data corruption but has availability problems.
Brian Warner [Wed, 13 Feb 2008 20:08:26 +0000 (13:08 -0700)]
test_web: remove test_GET_DIRURL_large, it failed to exercise the problem in #237 and consumes a disproportionate amount of time
Zooko O'Whielacronx [Wed, 13 Feb 2008 22:23:15 +0000 (15:23 -0700)]
setup: remove older bundled pycryptopp-0.2.10
Zooko O'Whielacronx [Wed, 13 Feb 2008 21:57:15 +0000 (14:57 -0700)]
setup: bundle pycryptopp-0.3.0
amber [Wed, 13 Feb 2008 11:57:19 +0000 (04:57 -0700)]
docs: 10 blocks by default, not 12
Brian Warner [Wed, 13 Feb 2008 04:28:52 +0000 (21:28 -0700)]
webish.py: fix for #237: when listing large directories, insert a turn break once every 100 children, to work around non-optimized tail recursion Deferreds
Zooko O'Whielacronx [Wed, 13 Feb 2008 17:24:52 +0000 (10:24 -0700)]
docs: edits and updates to architecture.txt, with Amber
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:03:40 +0000 (08:03 -0700)]
setup: remove older bundled version of setuptools_darcs
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:01:40 +0000 (08:01 -0700)]
setup: remove another older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:59:24 +0000 (07:59 -0700)]
setup: remove older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:57:22 +0000 (07:57 -0700)]
setup: remove older bundled version of darcsver
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:38:08 +0000 (07:38 -0700)]
fix a few unused imports and suchlike, discovered by pyflakes
Brian Warner [Wed, 13 Feb 2008 02:32:33 +0000 (19:32 -0700)]
webish: flogify the remaining log messages
Brian Warner [Wed, 13 Feb 2008 02:31:23 +0000 (19:31 -0700)]
webish: censor all caps before logging the HTTP request, to preserve user privacy
Brian Warner [Wed, 13 Feb 2008 02:01:03 +0000 (19:01 -0700)]
download status: refactor into a separate object, so we don't need to keep the Download itself around for a long time
Brian Warner [Wed, 13 Feb 2008 01:59:54 +0000 (18:59 -0700)]
introducer: remove encoding-parameter config, for now
Zooko O'Whielacronx [Wed, 13 Feb 2008 03:48:37 +0000 (20:48 -0700)]
use base62 encoding for storage indexes, on disk and in verifier caps, and in logging and diagnostic tools
base62 encoding fits more information into alphanumeric chars while avoiding the troublesome non-alphanumeric chars of base64 encoding. In particular, this allows us to work around the ext3 "32,000 entries in a directory" limit while retaining the convenient property that the intermediate directory names are leading prefixes of the storage index file names.
Brian Warner [Tue, 12 Feb 2008 22:40:05 +0000 (15:40 -0700)]
webish: add /status page to display current uploads/downloads
Brian Warner [Tue, 12 Feb 2008 22:39:45 +0000 (15:39 -0700)]
make current upload/download status objects available from the client
Brian Warner [Tue, 12 Feb 2008 22:38:39 +0000 (15:38 -0700)]
add download-status objects, to track download progress
Brian Warner [Tue, 12 Feb 2008 22:36:05 +0000 (15:36 -0700)]
add upload-status objects, to track upload progress
Brian Warner [Tue, 12 Feb 2008 02:53:36 +0000 (19:53 -0700)]
misc/find-share-anomalies.py: tool to analyze 'tahoe catalog-shares' output and look for problems
Brian Warner [Tue, 12 Feb 2008 02:14:10 +0000 (19:14 -0700)]
webish: add edge metadata to t=json output, including timestamps
Brian Warner [Tue, 12 Feb 2008 01:44:54 +0000 (18:44 -0700)]
catalog-shares: add expiration time to output
Brian Warner [Tue, 12 Feb 2008 01:17:01 +0000 (18:17 -0700)]
add 'tahoe catalog-shares' tool, to make a one-line summary of each share file. This can help do cross-server correlation of sharefiles, looking for anomalies
Brian Warner [Tue, 12 Feb 2008 00:37:51 +0000 (17:37 -0700)]
test_dirnode.py: improve error messages in case timestamp tests fail
Brian Warner [Tue, 12 Feb 2008 00:35:17 +0000 (17:35 -0700)]
test_dirnode.py: simplejson-1.7.1 incorrectly rounds floats to two decimal places. Don't let this bug flunk the timestamp test.
Brian Warner [Mon, 11 Feb 2008 22:26:58 +0000 (15:26 -0700)]
test_system.py: refactor bounce_client, probably make it stop failing on cygwin
Brian Warner [Mon, 11 Feb 2008 22:13:18 +0000 (15:13 -0700)]
webish: display timestamps
Brian Warner [Mon, 11 Feb 2008 22:12:55 +0000 (15:12 -0700)]
test_dirnode.py: assert that we update mtime and preserve ctime
Brian Warner [Mon, 11 Feb 2008 21:53:28 +0000 (14:53 -0700)]
dirnode.py: add metadata= to add_file(), add tests
Brian Warner [Mon, 11 Feb 2008 21:13:07 +0000 (14:13 -0700)]
test_dirnode.py: add diag output to test-ctime/mtime tests
Brian Warner [Sat, 9 Feb 2008 01:43:47 +0000 (18:43 -0700)]
dirnode: add ctime/mtime to metadata, update metadata-modifying APIs. Needs more testing and sanity checking.
Brian Warner [Fri, 8 Feb 2008 04:50:04 +0000 (21:50 -0700)]
docs/install-details.html: wrap to 80 cols, no content changes
Brian Warner [Fri, 8 Feb 2008 03:15:37 +0000 (20:15 -0700)]
test_system: remove the hackish debug_interrupt= attribute magic used to exercise interrupted-upload resumption, instead just make the Uploadable bounce the helper halfway through the upload
Brian Warner [Fri, 8 Feb 2008 03:14:05 +0000 (20:14 -0700)]
dirnodes.txt: update docs a bit, we don't yet do choose-latest-version, just choose-any-version
Brian Warner [Fri, 8 Feb 2008 03:10:28 +0000 (20:10 -0700)]
webapi.txt: document POST /uri?t=mkdir
Brian Warner [Fri, 8 Feb 2008 00:27:30 +0000 (17:27 -0700)]
test_system.py: remove that ugly debug_stash_RemoteencryptedUploadable hack, now that UploadResults give us a better approach
Brian Warner [Fri, 8 Feb 2008 00:26:59 +0000 (17:26 -0700)]
upload: if we lose the helper, go back to doing direct-to-server uploads instead of causing all subsequent uploads to fail
Brian Warner [Fri, 8 Feb 2008 00:10:13 +0000 (17:10 -0700)]
upload.EncryptAnUploadable: use 50KiB read chunks (instead of 50KB), to match the chunksize requested by the upload helper
Brian Warner [Thu, 7 Feb 2008 03:04:31 +0000 (20:04 -0700)]
test_upload.py: hush pyflakes
Brian Warner [Thu, 7 Feb 2008 03:03:35 +0000 (20:03 -0700)]
test_upload.py: add test to exercise CHK hashing variations
Brian Warner [Thu, 7 Feb 2008 02:58:53 +0000 (19:58 -0700)]
test_cli: oops, need to update this when the CHK hash changes
Brian Warner [Thu, 7 Feb 2008 02:50:47 +0000 (19:50 -0700)]
change encryption-key hash to include encoding parameters. This is a minor compatibility break: CHK files encoded (with convergence) before and after this will have different keys and ciphertexts. Also switched to SHA-256d for both the data-to-key hash and the key-to-storageindex hash
Brian Warner [Thu, 7 Feb 2008 02:36:43 +0000 (19:36 -0700)]
hashutil: add tagged_hash_256d and tagged_hasher_256d
Brian Warner [Thu, 7 Feb 2008 01:39:03 +0000 (18:39 -0700)]
upload: rework passing of default encoding parameters: move more responsibility into BaseUploadable
Brian Warner [Thu, 7 Feb 2008 00:51:11 +0000 (17:51 -0700)]
offloaded: oops, need more tricks to make the unit tests pass
Brian Warner [Thu, 7 Feb 2008 00:30:58 +0000 (17:30 -0700)]
helper: return full uri-extension data to the client, so it can compare encoding parameters
Brian Warner [Wed, 6 Feb 2008 23:41:26 +0000 (16:41 -0700)]
interfaces: remove spurious line that counted against the figleaf coverage
Brian Warner [Wed, 6 Feb 2008 23:41:04 +0000 (16:41 -0700)]
test_util: add full coverage for allmydata.util.deferredutil
robk-tahoe [Wed, 6 Feb 2008 21:12:49 +0000 (14:12 -0700)]
windows: track uninstalls
the confwiz and the native_client backend both gained hooks to track
uninstall events. however that somehow didn't make it to the uninstaller :-)
Brian Warner [Wed, 6 Feb 2008 21:15:33 +0000 (14:15 -0700)]
tahoe dump-share: remove --filename option, just take it from argv
Brian Warner [Wed, 6 Feb 2008 21:05:11 +0000 (14:05 -0700)]
test_system: deferred-handling logic in test_upload_and_download was broken
Brian Warner [Wed, 6 Feb 2008 20:37:43 +0000 (13:37 -0700)]
dump-share: tweak formatting a little bit, to make dumping multiple shares in a row easier to read
Brian Warner [Wed, 6 Feb 2008 20:19:51 +0000 (13:19 -0700)]
add 'tahoe find-shares' command, to locate share files on a local node's disk
Brian Warner [Wed, 6 Feb 2008 19:48:19 +0000 (12:48 -0700)]
dump-cap: include UEB_hash in output
Brian Warner [Wed, 6 Feb 2008 09:50:34 +0000 (02:50 -0700)]
download.py: make logging safe in ValidatedBucket
Brian Warner [Wed, 6 Feb 2008 09:39:01 +0000 (02:39 -0700)]
webish: more upload stats: total encode-and-push rate, already-in-grid existence check time
Brian Warner [Wed, 6 Feb 2008 09:38:16 +0000 (02:38 -0700)]
webish: add when_done= to POST /uri?t=upload . I did not add a 'recent uploads' section to the welcome page, but I think the new upload-results page provides the desired data
Brian Warner [Wed, 6 Feb 2008 09:12:35 +0000 (02:12 -0700)]
UploadResults: add more helper timing stats (ciphertext fetch times)
Brian Warner [Wed, 6 Feb 2008 08:52:25 +0000 (01:52 -0700)]
add upload-results timing info for helper uploads. This changes the Helper protocol, and introduces a compatibility break
Brian Warner [Wed, 6 Feb 2008 07:41:51 +0000 (00:41 -0700)]
add upload timings and rates to the POST /uri?t=upload results page
Brian Warner [Wed, 6 Feb 2008 06:01:37 +0000 (23:01 -0700)]
webish: make POST /uri?t=upload deposit you on an 'Upload Results' page
Brian Warner [Wed, 6 Feb 2008 05:38:20 +0000 (22:38 -0700)]
webish.py: refactor /uri handlers, one rend.Page class per operation
Brian Warner [Wed, 6 Feb 2008 05:37:51 +0000 (22:37 -0700)]
test_web.py: hush pyflakes
Brian Warner [Wed, 6 Feb 2008 05:18:02 +0000 (22:18 -0700)]
webish: add PUT /uri?mutable=true
Brian Warner [Wed, 6 Feb 2008 05:10:22 +0000 (22:10 -0700)]
webish: add POST /uri?t=upload&mutable=true
Brian Warner [Wed, 6 Feb 2008 04:44:40 +0000 (21:44 -0700)]
webish: add upload/view-uri forms (not associated with any particular directory) to the welcome page. Document POST /uri?t=upload .
Brian Warner [Wed, 6 Feb 2008 04:01:38 +0000 (21:01 -0700)]
upload: return an UploadResults instance (with .uri) instead of just a URI
Brian Warner [Wed, 6 Feb 2008 03:29:39 +0000 (20:29 -0700)]
webish: add storage-consumed estimate on welcome page
Brian Warner [Wed, 6 Feb 2008 03:28:59 +0000 (20:28 -0700)]
storage: change service name from 'storageserver' to 'storage'
Brian Warner [Wed, 6 Feb 2008 03:08:49 +0000 (20:08 -0700)]
webish: display tahoe import path on the welcome page, to help figure out where the code is coming from
Brian Warner [Wed, 6 Feb 2008 02:58:38 +0000 (19:58 -0700)]
refactor node startup, remove tub_ready()
Zooko O'Whielacronx [Wed, 6 Feb 2008 19:35:29 +0000 (12:35 -0700)]
setup: fix the md5sum of the bundled setuptools egg
Brian Warner [Wed, 6 Feb 2008 01:48:26 +0000 (18:48 -0700)]
docs/testgrid/introducer.furl: update to new introducer
Brian Warner [Wed, 6 Feb 2008 01:29:28 +0000 (18:29 -0700)]
webish: condense display of nickname a little bit
Brian Warner [Wed, 6 Feb 2008 01:26:05 +0000 (18:26 -0700)]
webish: show nickname too