Brian Warner
96ca6c2033
test_upload.py: hush pyflakes
2008-02-06 20:04:31 -07:00
Brian Warner
f78c80d7aa
test_upload.py: add test to exercise CHK hashing variations
2008-02-06 20:03:35 -07:00
Brian Warner
02e7c56563
test_cli: oops, need to update this when the CHK hash changes
2008-02-06 19:58:53 -07:00
Brian Warner
da9610e90a
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
2008-02-06 19:50:47 -07:00
Brian Warner
9f9a458249
hashutil: add tagged_hash_256d and tagged_hasher_256d
2008-02-06 19:36:43 -07:00
Brian Warner
81c5ceae16
upload: rework passing of default encoding parameters: move more responsibility into BaseUploadable
2008-02-06 18:39:03 -07:00
Brian Warner
75e4332462
offloaded: oops, need more tricks to make the unit tests pass
2008-02-06 17:51:11 -07:00
Brian Warner
a2cace9cfb
helper: return full uri-extension data to the client, so it can compare encoding parameters
2008-02-06 17:30:58 -07:00
Brian Warner
6cd32c2f5c
interfaces: remove spurious line that counted against the figleaf coverage
2008-02-06 16:41:26 -07:00
Brian Warner
d87bfa9eb2
test_util: add full coverage for allmydata.util.deferredutil
2008-02-06 16:41:04 -07:00
Brian Warner
d6fb0bf039
tahoe dump-share: remove --filename option, just take it from argv
2008-02-06 14:15:33 -07:00
Brian Warner
4d4073fb16
test_system: deferred-handling logic in test_upload_and_download was broken
2008-02-06 14:05:11 -07:00
Brian Warner
b4c9409138
dump-share: tweak formatting a little bit, to make dumping multiple shares in a row easier to read
2008-02-06 13:37:43 -07:00
Brian Warner
2dcac796e9
add 'tahoe find-shares' command, to locate share files on a local node's disk
2008-02-06 13:19:51 -07:00
Brian Warner
e92a2b5ab2
dump-cap: include UEB_hash in output
2008-02-06 12:48:19 -07:00
Brian Warner
40c2371e77
download.py: make logging safe in ValidatedBucket
2008-02-06 02:50:34 -07:00
Brian Warner
590b020a44
webish: more upload stats: total encode-and-push rate, already-in-grid existence check time
2008-02-06 02:39:01 -07:00
Brian Warner
6e0d3059a3
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
2008-02-06 02:38:16 -07:00
Brian Warner
652d50d7e0
UploadResults: add more helper timing stats (ciphertext fetch times)
2008-02-06 02:12:35 -07:00
Brian Warner
124fb5ecdf
add upload-results timing info for helper uploads. This changes the Helper protocol, and introduces a compatibility break
2008-02-06 01:52:25 -07:00
Brian Warner
93d45abb02
add upload timings and rates to the POST /uri?t=upload results page
2008-02-06 00:41:51 -07:00
Brian Warner
1e4504463c
webish: make POST /uri?t=upload deposit you on an 'Upload Results' page
2008-02-05 23:01:37 -07:00
Brian Warner
604d6d54ef
webish.py: refactor /uri handlers, one rend.Page class per operation
2008-02-05 22:38:20 -07:00
Brian Warner
27f46f2aaf
test_web.py: hush pyflakes
2008-02-05 22:37:51 -07:00
Brian Warner
23c2c8d660
webish: add PUT /uri?mutable=true
2008-02-05 22:18:02 -07:00
Brian Warner
e5dc9a8486
webish: add POST /uri?t=upload&mutable=true
2008-02-05 22:10:22 -07:00
Brian Warner
6afe50e2aa
webish: add upload/view-uri forms (not associated with any particular directory) to the welcome page. Document POST /uri?t=upload .
2008-02-05 21:44:40 -07:00
Brian Warner
66f33ee504
upload: return an UploadResults instance (with .uri) instead of just a URI
2008-02-05 21:01:38 -07:00
Brian Warner
2f09b03bcc
webish: add storage-consumed estimate on welcome page
2008-02-05 20:29:39 -07:00
Brian Warner
5103bf8148
storage: change service name from 'storageserver' to 'storage'
2008-02-05 20:28:59 -07:00
Brian Warner
4b4eba867b
webish: display tahoe import path on the welcome page, to help figure out where the code is coming from
2008-02-05 20:08:49 -07:00
Brian Warner
315725926f
refactor node startup, remove tub_ready()
2008-02-05 19:58:38 -07:00
Brian Warner
eb9023ab0e
webish: condense display of nickname a little bit
2008-02-05 18:29:28 -07:00
Brian Warner
96e6c78c7a
webish: show nickname too
2008-02-05 18:26:05 -07:00
Brian Warner
d146ef7e09
webish: add extra introducer data (version, timestamps) to Welcome page
2008-02-05 17:32:27 -07:00
Brian Warner
a7ea39e626
test_introducer.py: increase timeouts on poll() calls
2008-02-05 16:37:58 -07:00
Brian Warner
d98fde952c
introducer: remove remaining bits of 'push-to-myself' flags. The uploading/downloading node is no longer special.
2008-02-05 14:16:01 -07:00
Brian Warner
80b72d919a
introducer: remove PeerCountObserver, tests are managing with purely poll-for-connected approachers
2008-02-05 14:15:49 -07:00
Brian Warner
daecca6589
big introducer refactoring: separate publish+subscribe. Addresses #271 .
2008-02-05 13:05:13 -07:00
Brian Warner
3a5ba35215
PollMixin: add timeout= argument, rewrite to avoid tail-recursion problems
2008-02-04 20:35:07 -07:00
robk-tahoe
f5a803303f
stats: fix service issues
...
having moved inititalisation into startService to handle tub init cleanly,
I neglected the up-call to startService, which wound up not starting the
load_monitor.
also I changed the 'running' attribute to 'started' since 'running' is
the name used internally by MultiService itself.
2008-02-01 18:57:31 -07:00
Brian Warner
769446b667
client.py: hush pyflakes
2008-02-01 20:28:15 -07:00
Brian Warner
054f25581c
client.py: touch BASEDIR/no_storage to not publish a storage server. Addresses #271
2008-02-01 20:07:08 -07:00
Brian Warner
a01f9ce9cc
introducer: allow nodes to refrain from publishing themselves, by passing furl=None. This would be useful for clients who do not run storage servers.
2008-02-01 19:48:38 -07:00
Zooko O'Whielacronx
1d1628e525
rename storage_index_chk_hash() to storage_index_hash() and add TODO about how our use of it now includes keys that are not CHKs
2008-02-01 12:27:37 -07:00
robk-tahoe
e5487bbe21
stats: added IStatsProducer interface, fixed stats provider startup
...
this adds an interface, IStatsProducer, defining the get_stats() method
which the stats provider calls upon and registered producer, and made the
register_producer() method check that interface is implemented.
also refine the startup logic, so that the stats provider doesn't try and
connect out to the stats gatherer until after the node declares the tub
'ready'. this is to address an issue whereby providers would attach to
the gatherer without providing a valid furl, and hence the gatherer would
be unable to determine the tubid of the connected client, leading to lost
samples.
2008-01-31 21:10:15 -07:00
robk-tahoe
0700ccabaa
stats_gatherer: reject "<unauth>" as a tubid, to avoid screwing up the data.
2008-01-31 19:11:31 -07:00
Brian Warner
670933ecee
storage: clean up use of si_s vs si_dir, add test for BadWriterEnabler message, add some logging
2008-01-31 17:48:48 -07:00
Zooko O'Whielacronx
7bf21082f7
remove unused import (thanks, pyflakes)
2008-01-31 17:00:59 -07:00
Zooko O'Whielacronx
79c439d026
storage: make two levels of share directories so as not to exceed certain filesystems's limitations on directory size
...
The filesystem which gets my vote for most undeservedly popular is ext3, and it has a hard limit of 32,000 entries in a directory. Many other filesystems (even ones that I like more than I like ext3) have either hard limits or bad performance consequences or weird edge cases when you get too many entries in a single directory.
This patch makes it so that there is a layer of intermediate directories between the "shares" directory and the actual storage-index directory (the one whose name contains the entire storage index (z-base-32 encoded) and which contains one or more share files named by their share number).
The intermediate directories are named by the first 14 bits of the storage index, which means there are at most 16384 of them. (This also means that the intermediate directory names are not a leading prefix of the storage-index directory names -- to do that would have required us to have intermediate directories limited to either 1024 (2-char), which is too few, or 32768 (3-chars of a full 5 bits each), which would overrun ext3's funny hard limit of 32,000.))
This closes #150 , and please see the "convertshares.py" script attached to #150 to convert your old tahoe-0.7.0 storage/shares directory into a new tahoe-0.8.0 storage/shares directory.
2008-01-31 16:26:28 -07:00