robk-org
cacc9ac7b1
include the filename on URI-link urls for files
...
this is likely to induce browsers to do more useful things with the result
than they would when given neither content-type nor filename. (i.e. they
can guess that a .jpg file is an image, even with a bogus content type)
2007-07-11 15:26:47 -07:00
Brian Warner
798b714bef
webish.DirnodeWalkerMixin: comment out the code that demonstrates what we
...
would do if we could just use generators, since we don't use it.
2007-07-12 23:28:09 -07:00
Brian Warner
b0c65ed232
note that setting k=1 is equivalent to replication
2007-07-12 16:22:12 -07:00
Brian Warner
ba7e14a870
fix several methods to handle LIT URIs correctly, rather than assuming that all filenodes are CHK URIs
2007-07-12 16:17:49 -07:00
Brian Warner
53cf757be3
make it possible to download LIT uris. oops.
2007-07-12 16:16:59 -07:00
Brian Warner
5399395c27
allow the introducer to set default encoding parameters. Closes #84 .
...
By writing something like "25 75 100" into a file named 'encoding_parameters'
in the central Introducer's base directory, all clients which use that
introducer will be advised to use 25-out-of-100 encoding for files (i.e.
100 shares will be produced, 25 are required to reconstruct, and the upload
process will be happy if it can find homes for at least 75 shares). The
default values are "3 7 10". For small meshes, the defaults are probably
good, but for larger ones it may be appropriate to increase the number of
shares.
2007-07-12 15:33:30 -07:00
Brian Warner
def63d193e
implement URI:LIT, which stores small (<55B) files inside the URI itself. Fixes #81 .
2007-07-12 13:22:36 -07:00
Brian Warner
b62252183d
interfaces.py: increase RIVirtualDriveServer.list constraint from 100 entries to 1000, for now
2007-07-12 13:23:52 -07:00
Brian Warner
9238c61224
cli: implement 'get'
2007-07-11 10:26:19 -07:00
Zooko O'Whielacronx
32166c360a
tahoe_ls: remove a couple of vestigial or debugging bits
2007-07-10 19:46:40 -07:00
Brian Warner
b419b853ea
cli: implement 'allmydata-tahoe ls'
2007-07-10 19:37:37 -07:00
Brian Warner
d8a878da86
startstop_node.py: refactor find_twistd() out so it is only run when you need to start a node
2007-07-10 19:13:55 -07:00
Brian Warner
f22801aa33
runner.py: further refactoring
2007-07-10 19:05:18 -07:00
Brian Warner
4a16d20d85
runner.py: start to refactor into separate files
2007-07-10 18:41:52 -07:00
Brian Warner
944583a599
tahoe-ls.py: hush a pyflakes warning
2007-07-10 16:26:05 -07:00
Brian Warner
38ef49aea9
patch simplejson's ezsetup to take a min_version, and patch setup.py to use it, to allow installs on edgy machines with setuptools-0.6c3
2007-07-10 16:11:11 -07:00
Brian Warner
cf57359b0b
remove simplejson.egg-info from the repo (and boringfile it), it should never have been in the original tarball
2007-07-10 15:51:58 -07:00
Brian Warner
ea3c3e6780
import simplejson directly, and remove our local copies of the component .py files from util/json*
2007-07-10 15:49:32 -07:00
Brian Warner
dec729028f
tahoe-ls.py: initial version of an 'ls' CLI utility
2007-07-10 15:34:55 -07:00
Brian Warner
0d80d569fa
import simplejson-1.7.1 into src/simplejson
2007-07-10 15:22:53 -07:00
Brian Warner
13e84526a1
webapi: normalized API: use t=upload or t=download when providing localdir= or localfile=
2007-07-10 13:24:10 -07:00
Brian Warner
ad038497db
import the decoder portion of simplejson-1.7.1 too
2007-07-10 13:12:40 -07:00
Brian Warner
5264559561
webish: cosmetic: fix missing whitespace in HTML
2007-07-10 10:33:19 -07:00
Zooko O'Whielacronx
2a4423ba14
tahoe-get.py: fix bug: actually respect the optional server argument
2007-07-09 18:47:16 -07:00
Zooko O'Whielacronx
9bc87f610c
tahoe-get.py: add optional target-local-file argument
2007-07-09 18:27:11 -07:00
Zooko O'Whielacronx
9641a6df22
tahoe-get.py: accept vdrive and server options (using optparse)
2007-07-09 18:20:02 -07:00
Zooko O'Whielacronx
8769f2eeba
tahoe-get.py: the first, most primitive command-line client
2007-07-09 18:19:53 -07:00
Brian Warner
dce1dc2730
storage: wrap buckets in a local proxy
...
This will make it easier to change RIBucketWriter in the future to reduce the wire
protocol to just open/write(offset,data)/close, and do all the structuring on the
client end. The ultimate goal is to store each bucket in a single file, to reduce
the considerable filesystem-quantization/inode overhead on the storage servers.
2007-07-08 23:27:46 -07:00
Brian Warner
8891544d6c
directory.xhtml: oops, missed a comma
2007-07-08 00:44:08 -07:00
Brian Warner
295c3a75c2
directory.xhtml: remove the leftover XML link
2007-07-08 00:33:20 -07:00
Brian Warner
0395ad76eb
web: indent the JSON to make it easier for humans to read, but slightly larger
2007-07-08 00:23:23 -07:00
Brian Warner
72fc8c5cb8
web: use real JSON instead of the fake stubs
...
Also include the encoder portion of Bob Ippolito's simplejson-1.7.1 as
allmydata.util.json_encoder . simplejson is distributed under a more liberal
license than Tahoe (looks to be modified BSD), so redistributing it should be ok.
2007-07-08 00:17:11 -07:00
Brian Warner
2d06a66ec1
test_web.test_welcome: give the rooturl a trailing slash, otherwise older versions of twisted complain
2007-07-07 23:22:52 -07:00
Brian Warner
bd8625076a
web: remove t=XML, and other dead code
2007-07-07 22:55:15 -07:00
Brian Warner
159f8bfd50
web: improve test coverage
2007-07-07 22:47:18 -07:00
Brian Warner
e2f99247f2
web: make sure we present read-only directories properly
2007-07-07 22:21:20 -07:00
Brian Warner
135f08a518
web: remove more dead code
2007-07-07 22:20:03 -07:00
Brian Warner
8952114442
webish.py: remove dead code
2007-07-07 22:12:46 -07:00
Brian Warner
62e8528cc6
web: /uri/ must escape slashes, we use bangs for this
2007-07-07 22:06:52 -07:00
Brian Warner
fb40b55bc3
web: replace welcome-page download-URI form with new version
2007-07-07 22:06:22 -07:00
Brian Warner
5b0c9df14c
web: survive bogus URIs when displaying sizes
2007-07-07 21:31:18 -07:00
Brian Warner
fe3c002842
web: show the root name of the vdrive
2007-07-07 21:31:02 -07:00
Brian Warner
9e2ce51de7
web: change title to say 'Tahoe', not tahoe2
2007-07-07 21:30:38 -07:00
Brian Warner
e5482b5254
web: add a 'return to welcome page' link
2007-07-07 21:30:04 -07:00
Brian Warner
2adb773210
web: add when_done to all POST operations, use it from upload/mkdir/mount/delete forms
2007-07-07 21:17:48 -07:00
Brian Warner
0cb154f402
web: make 'delete' buttons work again
2007-07-07 20:46:30 -07:00
Brian Warner
b3f0293d50
web: change per-directory forms to match new POST scheme
2007-07-07 20:35:47 -07:00
Brian Warner
617a85df67
web: remove debug prints
2007-07-07 20:11:30 -07:00
Brian Warner
464f25e5f2
web: more test work, now all tests pass, POST too, only XMLRPC left to implement
2007-07-07 20:06:58 -07:00
Brian Warner
f35c9c6540
test_system.py: change/remove the tests that currently fail due to web changes
2007-07-07 20:06:44 -07:00
Brian Warner
7d92b8a123
webish.py: add links to JSON/etc representations of directory contents to the listing
2007-07-07 11:31:07 -07:00
Brian Warner
5fbdce155c
runner.py: add --force flag to restart, to restart a not-already-running node
2007-07-07 11:17:32 -07:00
Brian Warner
10a5ff3767
webish: fix ?t=manifest, ?t=xml so they don't throw exceptions, prune directory.xhtml
2007-07-07 11:15:31 -07:00
Brian Warner
0cd730a7b3
web: more test work, now all tests either pass or are skipped (POST, XMLRPC, and URI/)
2007-07-07 10:34:05 -07:00
Brian Warner
d501984eba
webapi: checkpointing more test progress
2007-07-07 00:16:36 -07:00
Brian Warner
6570253d6b
checkpointing new webapi: not all tests pass yet
2007-07-06 19:43:55 -07:00
Brian Warner
21e12f383d
web: missed a IndexError-to-KeyError conversion
2007-07-06 19:43:03 -07:00
Brian Warner
71c04fc2e7
web: use KeyError (rather than IndexError) to signal a missing child
2007-07-06 19:40:08 -07:00
Brian Warner
a34040df99
interfaces: remove spurious 'self' from interface declarations
2007-07-06 19:39:47 -07:00
Brian Warner
9e42dda6a4
add IDirectoryNode.get_child_at_path
2007-07-06 19:38:37 -07:00
Brian Warner
a1c97aa0be
storageserver: include metadata in the sizelimit, at least after the bucket has been closed
2007-07-03 17:38:49 -07:00
Brian Warner
94e6e6160b
activate storage size limits in the client. Closes #34 .
...
To use this, write a number like 10MB or 5Gb or 5000000000 to a file
named 'sizelimit' in the client's base directory. The node will not grant
leases for shares that would take it much beyond this many bytes of
storage. Note that metadata is not included in the allocation count until
a restart, so the actual space consumed may grow beyond the limit if
the node is not restarted very frequently and the amount of metadata is
significant.
2007-07-03 17:27:07 -07:00
Brian Warner
c80ea7d693
storageserver: implement size limits. No code to enable them yet, though
2007-07-03 17:08:02 -07:00
Brian Warner
9ddb929651
fileutil: add du() function
2007-07-03 15:49:45 -07:00
Brian Warner
c4a8db3eb2
webish: provide a valid Content-Length header on downloads
2007-07-03 15:09:00 -07:00
Brian Warner
622acc690a
webish: improve reporting of web download errors that occur early enough
...
If the error occurs before any data has been sent, we can give a sensible
error message (code 500, stack trace, etc). This will cover most of the error
cases. The ones that aren't covered are when we run out of good peers after
successfully decoding the first segment, either because they go away or
because their shares are corrupt.
2007-07-03 13:47:37 -07:00
Brian Warner
f15bb302a1
webish.py: handle errors during download better. Addresses #65 .
...
Previously, exceptions during a web download caused a hang rather than some
kind of exception or error message. This patch improves the situation by
terminating the HTTP download rather than letting it hang forever. The
behavior still isn't ideal, however, because the error can occur too late to
abort the HTTP request cleanly (i.e. with an error code). In fact, the
Content-Type header and response code have already been set by the time any
download errors have been detected, so the browser is committed to displaying
an image or whatever (thus any error message we put into the stream is
unlikely to be displayed in a meaningful way).
2007-07-03 13:18:14 -07:00
Brian Warner
7e32d3c8af
test_util: improve test coverage of allmydata.util.fileutil
2007-07-03 11:15:05 -07:00
Brian Warner
6427b44b42
webish: make each link in the directory name an href to that directory
2007-06-29 11:17:18 -07:00
Brian Warner
9d47c2524e
test_system: stall for a second while bouncing the client, it might help windows
2007-06-28 19:20:28 -07:00
Brian Warner
9ecde0d23e
webish: fix link to private_vdrive
2007-06-28 19:07:52 -07:00
Brian Warner
5ffc66ad7b
client.py: remove unused import
2007-06-28 18:01:00 -07:00
Brian Warner
4196c9ff66
client.py: remove unused code
2007-06-28 17:55:13 -07:00
Brian Warner
a8bf0645dc
interfaces.py: remove some unused 'pass' lines
2007-06-29 00:50:00 -07:00
Brian Warner
efb99078b6
change IVirtualDrive.get_node_at_path to accept either a list or a single slash-separated string
2007-06-28 17:46:14 -07:00
Brian Warner
5854916299
test_system.py: more vdrive coverage
2007-06-28 15:05:33 -07:00
Brian Warner
d6e732b65f
vdrive: add get_node_at_path(pathlist)
2007-06-28 11:00:03 -07:00
Brian Warner
13400e24ac
vdrive: make sure we really record global/private root directory uris
2007-06-28 10:59:51 -07:00
Brian Warner
b06c74c2a1
Add the 'vdrive' service, for clients to access the public/private root dirs.
...
These allow client-side code to conveniently retrieve the IDirectoryNode
instances for both the global shared public root directory, and the per-user
private root directory.
2007-06-27 17:11:06 -07:00
Brian Warner
1d86cd161b
webish.py: add a web page to display the manifest for any particular directory
2007-06-26 19:55:21 -07:00
Brian Warner
18ab5ce837
dirnode: add build_manifest() and introduce 'refresh capabilities'
2007-06-26 19:41:20 -07:00
Brian Warner
2766b7988b
remove unused/obsoleted workqueue.py
2007-06-26 17:25:23 -07:00
Brian Warner
b11fa20191
merge vdrive.py and filetable.py into a single dirnode.py
2007-06-26 17:16:58 -07:00
Brian Warner
78c2376fa3
more runner.py test coverage: don't bypass argv parsing
2007-06-26 16:51:38 -07:00
Brian Warner
912fc5a77e
runner.py: improve test coverage further: implement --quiet with StringIOs
2007-06-26 16:19:18 -07:00
Brian Warner
de24d3cd94
dump_uri_extension: improve test coverage of runner.py
2007-06-26 15:55:00 -07:00
Brian Warner
a505560bbe
improve test coverage of runner.py
2007-06-26 15:36:46 -07:00
Brian Warner
b6162681d5
webish: mark read-only directories as such when listing their parent
2007-06-26 12:37:00 -07:00
Brian Warner
bc2603c818
vdrive: protect dirnode contents with an HMAC
2007-06-26 12:36:21 -07:00
Brian Warner
4a0682874b
remove old filetree code
2007-06-25 20:34:19 -07:00
Brian Warner
fb02488a8e
vdrive: switch to URI:DIR and URI:DIR-RO, providing transitive readonlyness
2007-06-25 13:23:51 -07:00
Brian Warner
107207e09d
webish: log dirname in mkdir
2007-06-15 02:48:19 -07:00
Brian Warner
a00bde050b
webish: when mounting a shared directory, don't automatically move to it
2007-06-15 02:34:24 -07:00
Brian Warner
2066e8ddfc
webish: add option to export/import shared directories (always read-write)
2007-06-15 02:31:23 -07:00
Brian Warner
53da82ec04
test_system.py: match change to /global_vdrive URL
2007-06-15 01:38:55 -07:00
Brian Warner
20dcda4ca7
create a personal (non-shared) vdrive, in addition to the global shared one
2007-06-15 01:33:24 -07:00
Brian Warner
51809ce341
webish: enable deletion of directories
2007-06-15 01:32:57 -07:00
Brian Warner
1eba30cd14
webish.py: put the URI in a narrower auto-scrolling box (with CSS)
2007-06-15 01:32:20 -07:00
Brian Warner
1cb1faf11d
runner.py: add 'dump-directory-node' command
2007-06-15 00:47:05 -07:00
Brian Warner
82c38d370a
make new vdrive work, implement convenience wrapper, passes all tests
2007-06-15 00:37:32 -07:00