Commit Graph

1800 Commits

Author SHA1 Message Date
Zooko O'Whielacronx
cef24792e7 util: copy in nummedobj from pyutil 2008-11-04 13:55:50 -07:00
Zooko O'Whielacronx
fb85a6280f util: copy in dictutil from pyutil 2008-11-04 13:53:27 -07:00
Brian Warner
a2e195df3e debug catalog-shares: tolerate even more errors on bad files/directories 2008-10-30 14:54:47 -07:00
Brian Warner
ba019bfd3a #527: expire the cached files that are used to support Range: headers, every hour, when the file is unused and older than an hour 2008-10-30 13:39:09 -07:00
Brian Warner
c205a54965 util/cachedir.py: add a cache-directory manager class, which expires+deletes unused files after a while 2008-10-30 13:01:20 -07:00
Brian Warner
1419db6ac7 test_cli: try to fix windows again 2008-10-30 12:32:04 -07:00
Brian Warner
d97c34d622 debug/test_cli: fix error handling for catalog-shares, to make the test stop failing on windows 2008-10-30 12:06:51 -07:00
Brian Warner
b1db6d9ff2 web: add 'Repair' button to checker results when they indicate unhealthyness. Also add the object's uri to the CheckerResults instance. 2008-10-29 18:09:17 -07:00
Brian Warner
6a7d5b893b create_node.py: add 'web.static = public_html' to the initial tahoe.cfg 2008-10-29 17:13:36 -07:00
Brian Warner
d3f2df00be webapi: serve the /static URL tree from /public_html (configurable) 2008-10-29 15:34:31 -07:00
Brian Warner
a9101112a4 catalog-shares command: tolerate errors, log them to stderr, handle v2-immutable shares 2008-10-29 15:10:10 -07:00
Brian Warner
186b64b633 test_web.py: one more line of test coverage 2008-10-28 22:00:15 -07:00
Brian Warner
0350994133 test_web: improve test coverage of PUT DIRURL t=uri replace=false 2008-10-28 21:57:44 -07:00
Brian Warner
a5aebf0cbd web: test (and fix) PUT DIRURL t=uri, which replaces a directory in-place with some other cap 2008-10-28 21:54:46 -07:00
Brian Warner
e1d9169ba3 web/directory.py: slight shuffle to improve test coverage 2008-10-28 21:54:06 -07:00
Brian Warner
248033d78c test_client.py: improve test coverage a bit 2008-10-28 21:43:35 -07:00
Brian Warner
67ae5c1b2f node.py: remove unused old_log() function 2008-10-28 21:35:58 -07:00
Brian Warner
ba26239879 node.py: remove support for the old BASEDIR/authorized_keys.PORT file 2008-10-28 21:34:20 -07:00
Brian Warner
b73c380cdb move testutil into test/common_util.py, since it doesn't count as 'code under test' for our pyflakes numbers 2008-10-28 21:28:31 -07:00
Brian Warner
294e3fb682 util: move PollMixin to a separate file (pollmixin.py), so testutil can be moved into test/ 2008-10-28 21:15:48 -07:00
Brian Warner
3dd9b79e3f control.py: removed unused testutil.PollMixin 2008-10-28 21:03:59 -07:00
Brian Warner
4c2235fcef web/filenode: oops, fix test failures, not everything has a storage index 2008-10-28 18:17:20 -07:00
Brian Warner
6e1db34817 web/filenode: add Accept-Ranges and ETag (for immutable files) headers to GET responses 2008-10-28 18:01:03 -07:00
Brian Warner
b1ca238176 #527: respond to GETs with early ranges quickly, without waiting for the whole file to download. Fixes the alacrity problems with the earlier code. Still needs cache expiration. 2008-10-28 17:56:18 -07:00
Brian Warner
37e3d8e47c #527: support HTTP 'Range:' requests, using a cachefile. Adds filenode.read(consumer, offset, size) method. Still needs: cache expiration, reduced alacrity. 2008-10-28 13:41:04 -07:00
Brian Warner
2d4e895096 iputil.py: avoid a DNS lookup at startup (which may timeout tests when run on a partially-offline host) by using 198.41.0.4 instead of A.ROOT-SERVERS.NET 2008-10-28 13:36:46 -07:00
Brian Warner
914655c52b interfaces.py: promote immutable.encode.NotEnoughSharesError.. it isn't just for immutable files any more 2008-10-27 13:34:49 -07:00
Brian Warner
4b48d94c52 interfaces.IMutableFileNode.download_best_version(): fix return value 2008-10-27 13:20:46 -07:00
Brian Warner
fca158e83a dirnode lookup: use distinct NoSuchChildError instead of the generic KeyError when a child can't be found 2008-10-27 13:15:25 -07:00
Brian Warner
5fd6633289 storage: don't use colons in the corruption-advisory filename, since windows can't tolerate them 2008-10-25 19:46:33 -07:00
Brian Warner
9f21f7cf65 mutable: call remove_advise_corrupt_share when we see share corruption in mapupdate/download/check, tolerate servers that do not implement it 2008-10-24 13:21:28 -07:00
Brian Warner
db37c14ab7 storage: add remote_advise_corrupt_share, for clients to tell storage servers about share corruption that they've discovered. The server logs the report. 2008-10-24 11:52:48 -07:00
Brian Warner
6dbef907ac mutable/servermap.py: fix needs_merge(), it was incorrectly claiming that mixed shares with distinct seqnums needed a merge, causing repair(force=False) to fail 2008-10-23 21:00:24 -07:00
Brian Warner
0383ec5a49 test_web.test_POST_DIRURL_deepcheck: confirm that /operations/HANDLE/ works with or without the slash 2008-10-23 19:17:59 -07:00
Brian Warner
750ab8fa59 web/checker_results.py: remove dead code 2008-10-23 17:17:17 -07:00
Brian Warner
cadb045288 test_web: more test coverage 2008-10-23 17:11:18 -07:00
Brian Warner
a1cfac89f9 webapi: fix t=rename from==to, it used to delete the file 2008-10-23 16:32:36 -07:00
Brian Warner
d4b4cd8ab8 test_system: update test to match web checker results 2008-10-23 16:32:02 -07:00
Brian Warner
066aedcfa1 webapi deep-check: show the root as <root>, rather than an empty path string 2008-10-23 16:03:59 -07:00
Brian Warner
54c0ffd214 mutable/checker: announce the mapupdate op on the 'recent uploads+downloads' page 2008-10-23 16:03:19 -07:00
Brian Warner
7338440d86 scripts/create_node.py: remove empty-string defaults for --introducer= and --nickname= 2008-10-23 16:02:35 -07:00
Brian Warner
c455d52453 deep-check: add webapi links to detailed per-file/dir results 2008-10-23 16:00:31 -07:00
Brian Warner
819d6b3d03 interface.py: fix typo 2008-10-23 15:59:36 -07:00
Brian Warner
76b7b9d835 webapi: make the /operations/ 't=status' qualifier optional, remove it from examples 2008-10-23 15:56:58 -07:00
Brian Warner
4025f29b8a web/info.py: fix 'Check This Object' link, for files it was checking the parent directory by mistake 2008-10-22 10:10:56 -07:00
Brian Warner
0129e9931f #514: add meta-refresh=60 tag to t=status page for incomplete operations 2008-10-22 09:48:42 -07:00
Brian Warner
2ee6356c89 test_dirnode.py: oops, missed a Monitor(), unbreak tests 2008-10-22 01:50:54 -07:00
Brian Warner
1566a9474c immutable/filenode.py: add TODO note about the #514 monitor to check(), rather than going through the checker/verifier code and adding it, since Zooko is currently working on that code 2008-10-22 01:42:37 -07:00
Brian Warner
977c6ac510 more #514: pass a Monitor to all checker operations, make mutable-checker honor the cancel flag 2008-10-22 01:38:18 -07:00
Brian Warner
8178b10ef1 dirnode.py: check for cancel during deep-traverse operations, and don't initiate any new ones if we've been cancelled. Gets us closer to #514. 2008-10-22 00:55:52 -07:00
Brian Warner
34ab4e3de3 more #514 log-webop status/cancel: add handle-expiration, test coverage 2008-10-21 22:13:54 -07:00
Brian Warner
0f7c1fd6fd #514: improve test coverage 2008-10-21 17:52:56 -07:00
Brian Warner
ad3d9207a9 Change deep-size/stats/check/manifest to a start+poll model instead of a single long-running synchronous operation. No cancel or handle-expiration yet. #514. 2008-10-21 17:03:07 -07:00
Brian Warner
0832334c0d storage.py: assert that immutable share size will fit in the 4-byte v1 container (see #346). The struct module in py2.4 raises an error on overflow, but py2.5 merely emits a warning 2008-10-20 10:22:08 -07:00
robk-tahoe
4785299980 gui/macapp: minor bugfixes
though it seemed to work before the 'fstype' passed to fuse of 'allmydata' was
today throwing errors that len(fstype) must be at most 7.

fixed a typo in changes to 'mount_filesystem()' args

bumped the delay between mounting a filesystem and 'open'ing it in Finder to
4s, as it seems to take a little longer to mount now the client and server
fuse processes need to coordinate.
2008-10-16 09:30:52 -07:00
robk-tahoe
183dd587d5 gui/macapp: slew of code cleanup; unmount filesystems on quit
a handful of code cleanup, renaming and refactoring.  basically consolidating
'application logic' (mount/unmount fs) into the 'MacGuiApp' class (the wx.App)
and cleaning up various scoping things around that.  renamed all references to
'app' to refer more clearly to the 'AppContainer' or to the guiapp.

globally renamed basedir -> nodedir

also made the guiapp keep a note of each filesystem it mounts, and unmount
them upon 'quit' so as to cleanup the user's environment before the tahoe node
vanishes from out underneath the orphaned tahoe fuse processes
2008-09-25 16:32:35 -07:00
robk-tahoe
9b10f46374 gui/macapp: make submenu of aliases for 'webopen'
this changes the 'open webroot' menu item to be a submenu listing all aliases
defined in ~/.tahoe.  Note that the dock menu does not support submenus, so it
only offers a single 'open webroot' option for the default tahoe: alias.

I had trouble with this at first and concluded that the submenus didn't work,
and made it a distinct 'WebUI' menu in it's own right.  on further inspection,
there are still problems but they seem to be something like once the dock menu
has been used, sometimes the app's main menubar menus will cease to function,
and this happens regardless of whether submenus or plain simple menus are used.
I have no idea what the peoblem is, but it's not submenu specific.
2008-09-25 09:39:19 -07:00
Zooko O'Whielacronx
57d9f6beb6 repairer: fix flaw in testutil.flip_one_bit() that Brian pointed out 2008-10-16 12:48:48 -07:00
Zooko O'Whielacronx
8a6d1e5da6 repairer: test all different kinds of corruption that can happen to share files on disk 2008-10-14 16:09:20 -07:00
Brian Warner
b0a00e0f33 util/time_format.py: accept space separator, add unit tests 2008-10-13 15:52:58 -07:00
Brian Warner
46657b797f test_storage: use different filenames, poor stupid windows 2008-10-09 19:11:39 -07:00
Brian Warner
fd32d72b20 scripts/debug.py: emit the immutable-share version number, tolerate v2 2008-10-09 18:34:22 -07:00
Brian Warner
c289a9c31b storage.py: improve some precondition() error messages 2008-10-09 18:14:25 -07:00
Brian Warner
7031a69bee storage: introduce v2 immutable shares, with 8-byte offsets fields, to remove two of the three size limitations in #346. This code handles v2 shares but does not generate them. We'll make a release with this v2-tolerance, wait a while, then make a second release that actually generates v2 shares, to avoid compatibility problems. 2008-10-09 18:13:27 -07:00
Brian Warner
a0250e320b debug.py: oops, add missing import for ReadBucketProxy 2008-10-09 17:29:22 -07:00
Brian Warner
288d55825c storage: split WriteBucketProxy and ReadBucketProxy out into immutable/layout.py . No behavioral changes. 2008-10-09 17:08:00 -07:00
Zooko O'Whielacronx
86e22b8add interfaces: loosen a few max-size constraints which would limit us to a mere 1.09 TB maximum file size
These constraints were originally intended to protect against attacks on the
storage server protocol layer which exhaust memory in the peer.  However,
defending against that sort of DoS is hard -- probably it isn't completely
achieved -- and it costs development time to think about it, and it sometimes
imposes limits on legitimate users which we don't necessarily want to impose.
So, for now we forget about limiting the amount of RAM that a foolscap peer can
cause you to start using.
2008-10-09 12:13:57 -07:00
Brian Warner
93725a6935 util/limiter: add a repr 2008-10-07 13:19:45 -07:00
Brian Warner
9d4749d546 dirnode.build_manifest: include node.list in the limiter, that's the most important thing to slow down 2008-10-07 13:19:29 -07:00
Brian Warner
cd236efc68 web/directory: t=manifest output=html: make the caps into clickable hrefs 2008-10-07 13:18:45 -07:00
Brian Warner
f7edbc1536 web/directory: factor out the get_root function 2008-10-07 13:17:42 -07:00
Brian Warner
53c9867c5c web/directory.py: remove unused imports 2008-10-07 12:48:20 -07:00
Brian Warner
2edfe12b88 test_web: deep-size is more variable than I thought, so assert less 2008-10-06 22:11:47 -07:00
Brian Warner
3ffaded809 web: change t=manifest to return a list of (path,read/writecap) tuples, instead of a list of verifycaps. Add output=html,text,json. 2008-10-06 21:36:18 -07:00
Brian Warner
8e6d122ecf web: rewrite t=deep-size in terms of deep-stats, update test to match inclusion of directory sizes 2008-10-06 21:35:39 -07:00
Brian Warner
18a1070e66 ftpd: hush pyflakes 2008-10-06 18:45:13 -07:00
Brian Warner
701e5cd1da ftpd: make sure we're using a patched/fixed Twisted, to avoid confusion later 2008-10-06 18:14:11 -07:00
Brian Warner
05a8360177 ftp: change the twisted hack necessary for async-write-close, to one more agreeable to the twisted-dev folks, add a copy of the necessary patch to docs/ftp.txt 2008-10-06 18:06:05 -07:00
Brian Warner
70ae1bfc8e ftpd: remove debug messages 2008-10-06 16:16:20 -07:00
Brian Warner
bf3d09d430 ftpd: add native_client.php -based HTTP authentication scheme 2008-10-06 16:15:11 -07:00
Brian Warner
daf4af6699 ftpd: add ftp.accounts checker, remove InMemoryPasswordChecker 2008-10-06 15:51:24 -07:00
Brian Warner
d90a3ed7f8 test_system: add test coverage for immutable download.ConsumerAdapter, remove debug messages 2008-10-06 15:50:37 -07:00
Brian Warner
bc237b3956 ftp server: initial implementation. Still needs unit tests, custom Twisted patches. For #512 2008-10-06 12:52:36 -07:00
Brian Warner
934dc6aa77 test_cli.py: remove unused imports 2008-10-06 17:42:04 -07:00
Brian Warner
dbc2337639 CLI: remove 'tahoe admin generate-keypair', since the pycryptopp ecdsa API is about to change incompatibly. We'll undo this once pycryptopp is updated 2008-10-06 17:23:20 -07:00
Brian Warner
09341a969a dirnode: fix my remarkably-consistent 'metdadata' typo 2008-10-02 18:08:45 -07:00
Brian Warner
41bacca3f1 interfaces: fix minor typo 2008-10-02 17:52:49 -07:00
Brian Warner
d0bdf9a611 dirnode: add get_child_and_metadata_at_path 2008-10-02 17:52:03 -07:00
Brian Warner
9c505e49c2 stop using 'as' as an identifier: as with 'with', 'as' has become a reserved word in python 2.6 2008-10-02 17:27:49 -07:00
Brian Warner
034364c80b scripts/admin: split up generate_keypair code so that unit tests can use it more easily 2008-10-01 16:52:38 -07:00
Brian Warner
cd26f58305 #518: replace various BASEDIR/* config files with a single BASEDIR/tahoe.cfg, with backwards-compatibility of course 2008-09-30 16:21:49 -07:00
Brian Warner
935d185696 tolerate simplejson-2.0.0 and newer, which frequently return bytestrings instead of unicode objects. Closes #523 2008-09-30 15:21:06 -07:00
Brian Warner
78d58875a8 test_node: improve coverage of advertised_ip_addresses a bit 2008-09-29 23:08:16 -07:00
Brian Warner
1e3500ae5f testutil.PollMixin: set default timeout (to 100s), emit a more helpful error when the timeout is hit 2008-09-29 22:23:09 -07:00
Zooko O'Whielacronx
2e8b89e9e4 repair: fix test to map from storage index to directory structure properly (thanks, cygwin buildbot, for being so kloodgey that you won't accept random binary filenames and thus making me notice this bug) 2008-09-26 15:49:13 -07:00
Zooko O'Whielacronx
cd0af638f3 repairer: assert that the test code isn't accidentally allowing the repairer code which is being tested to do impossible things 2008-09-26 15:23:53 -07:00
Zooko O'Whielacronx
ebee8ee9f4 repairer: enhance the repairer tests
Make sure the file can actually be downloaded afterward, that it used one of the 
deleted and then repaired shares to do so, and that it repairs from multiple 
deletions at once (without using more than a reasonable amount of calls to 
storage server allocate).
2008-09-26 10:47:19 -07:00
Brian Warner
98c8e25709 netstring: add required_trailer= argument 2008-09-26 09:57:54 -07:00
Brian Warner
27a30b90d7 test_netstring.py: move netstring tests to a separate file 2008-09-26 09:55:26 -07:00
Brian Warner
e8cf581e3f move netstring() and split_netstring() into a separate util.netstring module 2008-09-25 21:38:24 -07:00