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