Brian Warner
91e7cb484b
storage.py: update comment
2009-11-30 11:59:13 -08:00
david-sarah
ef002c935a
storage server: detect disk space usage on Windows too ( fixes #637 )
2009-11-20 21:56:44 -08:00
david-sarah
c4d38ad4c5
make status of finished operations consistently "Finished"
2009-11-20 22:15:43 -08:00
Brian Warner
9901a08fd3
Add dirnodes to backupdb and "tahoe backup", closes #606 .
...
* backups now share dirnodes with any previous backup, in any location,
so renames and moves are handled very efficiently
* "tahoe backup" no longer bothers reading the previous snapshot
* if you switch grids, you should delete ~/.tahoe/private/backupdb.sqlite,
to force new uploads of all files and directories
2009-11-26 15:42:57 -08:00
Brian Warner
366a309795
webapi: fix t=check for DIR2-LIT (i.e. empty immutable directories)
2009-11-26 15:27:31 -08:00
Brian Warner
41bcc9f39e
PipelineError: fix str() on python2.4 . Closes #842 .
2009-11-24 13:25:12 -08:00
Brian Warner
d918ab407e
test_uri.py: s/NewDirnode/Dirnode/ , now that they aren't "new" anymore
2009-11-19 23:55:53 -08:00
Brian Warner
0cf320c2ab
interface name cleanups: IFileNode, IImmutableFileNode, IMutableFileNode
...
The proper hierarchy is:
IFilesystemNode
+IFileNode
++IMutableFileNode
++IImmutableFileNode
+IDirectoryNode
Also expand test_client.py (NodeMaker) to hit all IFilesystemNode types.
2009-11-19 23:52:55 -08:00
Brian Warner
d2badbea78
class name cleanups: s/FileNode/ImmutableFileNode/
...
also fix test/bench_dirnode.py for recent dirnode changes
2009-11-19 23:22:39 -08:00
Brian Warner
6e7fb1006d
Use DIR-IMM and t=mkdir-immutable for "tahoe backup", for #828
2009-11-18 11:28:13 -08:00
Brian Warner
834b20210a
web/directory.py: use "DIR-IMM" to describe immutable directories, not DIR-RO
2009-11-18 11:18:32 -08:00
Brian Warner
e5452290f7
web/info.py: hush pyflakes
2009-11-18 11:17:36 -08:00
Brian Warner
e046744f40
make get_size/get_current_size consistent for all IFilesystemNode classes
...
* stop caching most_recent_size in dirnode, rely upon backing filenode for it
* start caching most_recent_size in MutableFileNode
* return None when you don't know, not "?"
* only render None as "?" in the web "more info" page
* add get_size/get_current_size to UnknownNode
2009-11-18 11:16:24 -08:00
Brian Warner
512fe3ad62
ImmutableDirectoryURIVerifier: fix verifycap handling
2009-11-18 08:42:38 -08:00
Brian Warner
f85690697a
Add t=mkdir-immutable to the webapi. Closes #607 .
...
* change t=mkdir-with-children to not use multipart/form encoding. Instead,
the request body is all JSON. t=mkdir-immutable uses this format too.
* make nodemaker.create_immutable_dirnode() get convergence from SecretHolder,
but let callers override it
* raise NotDeepImmutableError instead of using assert()
* add mutable= argument to DirectoryNode.create_subdirectory(), default True
2009-11-17 23:09:00 -08:00
Brian Warner
d2426ea3bd
move convergence secret into SecretHolder, next to lease secret
2009-11-17 17:54:44 -08:00
Brian Warner
5fe713fc52
nodemaker: implement immutable directories (internal interface), for #607
...
* nodemaker.create_from_cap() now handles DIR2-CHK and DIR2-LIT
* client.create_immutable_dirnode() is used to create them
* no webapi yet
2009-11-11 16:22:33 -08:00
Brian Warner
cc422f8dc0
stop using IURI()/etc as an adapter
2009-11-11 14:45:42 -08:00
Brian Warner
131e05b155
clean up uri-vs-cap terminology, emphasize cap instances instead of URI strings
...
* "cap" means a python instance which encapsulates a filecap/dircap (uri.py)
* "uri" means a string with a "URI:" prefix
* FileNode instances are created with (and retain) a cap instance, and
generate uri strings on demand
* .get_cap/get_readcap/get_verifycap/get_repaircap return cap instances
* .get_uri/get_readonly_uri return uri strings
* add filenode.download_to_filename() for control.py, should find a better way
* use MutableFileNode.init_from_cap, not .init_from_uri
* directory URI instances: use get_filenode_cap, not get_filenode_uri
* update/cleanup bench_dirnode.py to match, add Makefile target to run it
2009-11-11 14:26:19 -08:00
Brian Warner
f47672d12a
add parser for immutable directory caps: DIR2-CHK, DIR2-LIT, DIR2-CHK-Verifier
2009-11-04 10:13:51 -08:00
Zooko O'Whielacronx
9733201c0b
wui: s/TahoeLAFS/Tahoe-LAFS/
2009-10-28 18:50:50 -08:00
Zooko O'Whielacronx
1be4d45779
tests: bump up the timeout on test_repairer to see if 120 seconds was too short for François's ARM box to do the test even when it was doing it right.
2009-10-27 13:48:00 -08:00
Brian Warner
2695af91a7
dirnode.pack_children(): add deep_immutable= argument
...
This will be used by DIR2:CHK to enforce the deep-immutability requirement.
2009-10-26 09:28:09 -07:00
Brian Warner
768c76aa5f
webapi: use t=mkdir-with-children instead of a children= arg to t=mkdir .
...
This is safer: in the earlier API, an old webapi server would silently ignore
the initial children, and clients trying to set them would have to fetch the
newly-created directory to discover the incompatibility. In the new API,
clients using t=mkdir-with-children against an old webapi server will get a
clear error.
2009-10-25 18:13:21 -07:00
Brian Warner
1273b5c233
nodemaker.create_new_mutable_directory: pack_children() in initial_contents=
...
instead of creating an empty file and then adding the children later.
This should speed up mkdir(initial_children) considerably, removing two
roundtrips and an entire read-modify-write cycle, probably bringing it down
to a single roundtrip. A quick test (against the volunteergrid) suggests a
30% speedup.
test_dirnode: add new tests to enforce the restrictions that interfaces.py
claims for create_new_mutable_directory(): no UnknownNodes, metadata dicts
2009-10-19 17:51:18 -07:00
Brian Warner
59ee02e82f
test_dirnode.py: add tests of initial_children= args to client.create_dirnode
...
and nodemaker.create_new_mutable_directory
2009-10-17 12:41:59 -07:00
Brian Warner
b4ec86c95a
update many dirnode interfaces to accept dict-of-nodes instead of dict-of-caps
...
interfaces.py: define INodeMaker, document argument values, change
create_new_mutable_directory() to take dict-of-nodes. Change
dirnode.set_nodes() and dirnode.create_subdirectory() too.
nodemaker.py: use INodeMaker, update create_new_mutable_directory()
client.py: have create_dirnode() delegate initial_children= to nodemaker
dirnode.py (Adder): take dict-of-nodes instead of list-of-nodes, which
updates set_nodes() and create_subdirectory()
web/common.py (convert_initial_children_json): create dict-of-nodes
web/directory.py: same
web/unlinked.py: same
test_dirnode.py: update tests to match
2009-10-17 12:28:29 -07:00
Brian Warner
8a7c980e37
dirnode.py: move pack_children() out to a function, for eventual use by others
2009-10-17 11:07:07 -07:00
Brian Warner
ea373de042
move dirnode.CachingDict to dictutil.AuxValueDict, generalize method names,
...
improve tests. Let dirnode _pack_children accept either dict or AuxValueDict.
2009-10-17 11:00:05 -07:00
Brian Warner
e63f59f50c
test/common.py: update FakeMutableFileNode to new contents= callable scheme
2009-10-12 22:21:54 -07:00
Brian Warner
480e1d318d
The initial_children= argument to nodemaker.create_new_mutable_directory is
...
now enabled.
2009-10-12 20:19:22 -07:00
Brian Warner
c2520e4ec7
client.create_mutable_file(contents=) now accepts a callable, which is
...
invoked with the new MutableFileNode and is supposed to return the initial
contents. This can be used by e.g. a new dirnode which needs the filenode's
writekey to encrypt its initial children.
create_mutable_file() still accepts a bytestring too, or None for an empty
file.
2009-10-12 20:12:32 -07:00
Brian Warner
b30041c5ec
webapi: t=mkdir now accepts initial children, using the same JSON that t=json
...
emits.
client.create_dirnode(initial_children=) now works.
2009-10-12 19:34:44 -07:00
Brian Warner
cf65cc2ae3
replace dirnode.create_empty_directory() with create_subdirectory(), which
...
takes an initial_children= argument
2009-10-12 19:15:20 -07:00
Brian Warner
d079eb45f6
dirnode.set_children: change return value: fire with self instead of None
2009-10-12 18:50:26 -07:00
Brian Warner
f871c3bb3d
dirnode.set_nodes: change return value: fire with self instead of None
2009-10-12 18:45:46 -07:00
Brian Warner
304aadd4f7
dirnode.set_children: take a dict, not a list
2009-10-12 17:24:40 -07:00
Brian Warner
e2ffc3dc03
dirnode.set_uri/set_children: change signature to take writecap+readcap
...
instead of a single cap. The webapi t=set_children call benefits too.
2009-10-12 16:51:26 -07:00
Brian Warner
3ee740628a
replace Client.create_empty_dirnode() with create_dirnode(), in anticipation
...
of adding initial_children= argument.
Includes stubbed-out initial_children= support.
2009-10-12 15:45:06 -07:00
Brian Warner
576c47d61e
test_web.py: use a less-fake client, making test harness smaller
2009-10-12 15:28:08 -07:00
Brian Warner
f4aa418086
Verifier: check the full cryptext-hash tree on each share. Removed .todos
...
from the last few test_repairer tests that were waiting on this.
2009-10-05 15:18:49 -07:00
Brian Warner
504c767d03
Verifier: check the full block-hash-tree on each share
...
Removed the .todo from two test_repairer tests that check this. The only
remaining .todos are on the three crypttext-hash-tree tests.
2009-10-05 14:48:44 -07:00
Brian Warner
e8f56af5a7
Verifier: check the full share-hash chain on each share
...
Removed the .todo from two test_repairer tests that check this.
2009-10-05 14:34:43 -07:00
Brian Warner
bbd00de495
test_repairer: rename Verifier test cases to be more precise and less verbose
2009-10-05 13:11:15 -07:00
Brian Warner
be95129833
immutable/checker.py: rearrange code a little bit, make it easier to follow
2009-10-05 13:02:52 -07:00
Brian Warner
9dba4ec641
test/common.py: wrap docstrings to 80cols so I can read them more easily
2009-10-05 13:01:43 -07:00
Brian Warner
19d336513c
immutable/download.py: wrap to 80cols, no functional changes
2009-10-05 12:25:42 -07:00
Zooko O'Whielacronx
00a44c057a
docs: a few licensing clarifications requested by Ubuntu
2009-09-26 20:32:26 -07:00
Zooko O'Whielacronx
aaaa633f18
setup: remove a convenience copy of figleaf, to ease inclusion into Ubuntu Karmic Koala
...
We need to carefully document the licence of figleaf in order to get Tahoe-LAFS into Ubuntu Karmic Koala. However, figleaf isn't really a part of Tahoe-LAFS per se -- this is just a "convenience copy" of a development tool. The quickest way to make Tahoe-LAFS acceptable for Karmic then, is to remove figleaf from the Tahoe-LAFS tarball itself. People who want to run figleaf on Tahoe-LAFS (as everyone should want) can install figleaf themselves. I haven't tested this -- there may be incompatibilities between upstream figleaf and the copy that we had here...
2009-09-23 22:32:15 -07:00
Zooko O'Whielacronx
9f0da4012e
docs: Shawn Willden grants permission for his contributions under GPL2+|TGPPL1+
2009-09-21 09:46:51 -07:00
Zooko O'Whielacronx
603e08c4a9
doc: licensing cleanups
...
Use nice utf-8 © instead of "(c)". Remove licensing statements on utility modules that have been assigned to allmydata.com by their original authors. (Nattraverso was not assigned to allmydata.com -- it was LGPL'ed -- but I checked and src/allmydata/util/iputil.py was completely rewritten and doesn't contain any line of code from nattraverso.) Add notes to misc/debian/copyright about licensing on files that aren't just allmydata.com-licensed.
2009-09-20 10:16:31 -07:00
Brian Warner
14cb5ca436
test/check_speed.py: fix shbang line
2009-08-17 17:59:48 -07:00
Brian Warner
5283d4c19e
de-Service-ify Helper, pass in storage_broker and secret_holder directly.
...
This makes it more obvious that the Helper currently generates leases with
the Helper's own secrets, rather than getting values from the client, which
is arguably a bug that will likely be resolved with the Accounting project.
2009-08-15 13:17:37 -07:00
Brian Warner
4a4a4f9520
immutable.Downloader: pass StorageBroker to constructor, stop being a Service
...
child of the client, access with client.downloader instead of
client.getServiceNamed("downloader"). The single "Downloader" instance is
scheduled for demolition anyways, to be replaced by individual
filenode.download calls.
2009-08-15 12:25:43 -07:00
Zooko O'Whielacronx
22c962bbc2
tests: double the timeout on test_runner.RunNode.test_introducer since feisty hit a timeout
...
I'm not sure if this is an actual timing issue (feisty is running on an overloaded VM if I recall correctly), or it there is a deeper bug.
2009-08-15 09:05:12 -07:00
Brian Warner
d214f7eebe
stop making History be a Service, it wasn't necessary
2009-08-15 04:44:15 -07:00
Brian Warner
0d5dc51617
Overhaul IFilesystemNode handling, to simplify tests and use POLA internally.
...
* stop using IURI as an adapter
* pass cap strings around instead of URI instances
* move filenode/dirnode creation duties from Client to new NodeMaker class
* move other Client duties to KeyGenerator, SecretHolder, History classes
* stop passing Client reference to dirnode/filenode constructors
- pass less-powerful references instead, like StorageBroker or Uploader
* always create DirectoryNodes by wrapping a filenode (mutable for now)
* remove some specialized mock classes from unit tests
Detailed list of changes (done one at a time, then merged together)
always pass a string to create_node_from_uri(), not an IURI instance
always pass a string to IFilesystemNode constructors, not an IURI instance
stop using IURI() as an adapter, switch on cap prefix in create_node_from_uri()
client.py: move SecretHolder code out to a separate class
test_web.py: hush pyflakes
client.py: move NodeMaker functionality out into a separate object
LiteralFileNode: stop storing a Client reference
immutable Checker: remove Client reference, it only needs a SecretHolder
immutable Upload: remove Client reference, leave SecretHolder and StorageBroker
immutable Repairer: replace Client reference with StorageBroker and SecretHolder
immutable FileNode: remove Client reference
mutable.Publish: stop passing Client
mutable.ServermapUpdater: get StorageBroker in constructor, not by peeking into Client reference
MutableChecker: reference StorageBroker and History directly, not through Client
mutable.FileNode: removed unused indirection to checker classes
mutable.FileNode: remove Client reference
client.py: move RSA key generation into a separate class, so it can be passed to the nodemaker
move create_mutable_file() into NodeMaker
test_dirnode.py: stop using FakeClient mockups, use NoNetworkGrid instead. This simplifies the code, but takes longer to run (17s instead of 6s). This should come down later when other cleanups make it possible to use simpler (non-RSA) fake mutable files for dirnode tests.
test_mutable.py: clean up basedir names
client.py: move create_empty_dirnode() into NodeMaker
dirnode.py: get rid of DirectoryNode.create
remove DirectoryNode.init_from_uri, refactor NodeMaker for customization, simplify test_web's mock Client to match
stop passing Client to DirectoryNode, make DirectoryNode.create_with_mutablefile the normal DirectoryNode constructor, start removing client from NodeMaker
remove Client from NodeMaker
move helper status into History, pass History to web.Status instead of Client
test_mutable.py: fix minor typo
2009-08-15 04:28:46 -07:00
Zooko O'Whielacronx
2a63fc9159
docs: update relnotes.txt, relnotes-short.txt, and others documentation bits for v1.5.0 release!
2009-08-01 19:57:10 -07:00
Brian Warner
ad45511156
ftpd: update docs, point to Twisted ticket for the proposed patch
2009-07-31 11:32:26 -07:00
Brian Warner
0d0e0ba2fb
test_runner.py: tolerate symlinks in the source tree directory's ancestor path
2009-07-30 10:17:24 -07:00
Brian Warner
bf1e61c8f3
Touch up #705 changes:
...
webapi.txt: clarify replace=only-files argument, mention replace= on POST t=uri
test_cli.py: insert whitespace between logical operations
web.common.parse_replace_arg: make it case-insensitive, to match the docs
2009-07-20 11:38:03 -04:00
Zooko O'Whielacronx
b76ca4549a
iputil: added "openbsd3" => "bsd" and "openbsd4" => "bsd" per tdelaet's report; should fix ticket #768
2009-07-20 06:13:14 -07:00
kevan
0d8b1e29fa
Add tests for tahoe mv behavior
2009-07-19 20:46:09 -07:00
kevan
4331326b21
Add tests for tahoe mv help text
2009-07-19 20:45:53 -07:00
kevan
52aceb1a8e
Implement more clearly defined moving semantics in tahoe_mv.py
2009-07-19 20:45:23 -07:00
kevan
36f2e01275
Update tahoe mv help text.
2009-07-19 20:45:03 -07:00
kevan
8eb7ddab6b
Add tests for parse_replace_arg()
2009-07-19 20:47:05 -07:00
kevan
40360a7a9c
Add tests for new PUT behavior
2009-07-19 20:46:32 -07:00
kevan
18a80d99b1
Alter Adder + Adder tests to look for 'only-files' instead of 'only_files'
2009-07-19 20:43:18 -07:00
kevan
74207d8334
Alter filenode.py to use parse_replace_arg
2009-07-19 20:48:31 -07:00
kevan
90677745b3
Alter directory.py to use parse_replace_arg()
2009-07-19 20:47:46 -07:00
kevan
7ab92c7511
Add a function to parse arguments for the replace parameter
2009-07-19 20:47:23 -07:00
Zooko O'Whielacronx
7607268a58
trivial: remove obsolete comment text
2009-07-20 06:08:43 -07:00
Zooko O'Whielacronx
c6fce3a1c6
directories: minor change: fix warning message from the benchmarking script
2009-07-19 17:21:14 -07:00
kevan
ca4de9ee97
Add unit tests for the Adder in dirnode.py
2009-07-18 12:50:49 -07:00
kevan
c476c66b0e
Add 'only_files' option to the overwrite field in Adder
2009-07-17 20:00:10 -07:00
Brian Warner
531cc7899f
rename NewDirectoryNode to DirectoryNode, NewDirectoryURI to DirectoryURI
2009-07-17 17:15:49 -05:00
Brian Warner
8536db4e64
interfaces: remove dead code, FileNode_ and EncryptedThing constraints
2009-07-17 17:11:39 -05:00
Zooko O'Whielacronx
d2d3bb2f80
introduction/storage-broker: add assertions of serverids being the right type and of internal consistency between the number of storage servers known and the number of storage servers
2009-07-17 06:52:21 -07:00
Brian Warner
1192b61dfe
upload: fix #758 recursion-loop in peer-selection when servers report errors.
...
The bug was in the code that handles a third-or-later pass, and was
previously untested.
2009-07-17 00:07:09 -05:00
Brian Warner
efa608a135
'tahoe stats': tolerate empty directories. Closes #693 .
2009-07-15 00:51:09 -07:00
Brian Warner
7950fc0f2e
node.py: record pid in twisted log at startup. Closes #476 .
2009-07-15 00:29:29 -07:00
Brian Warner
d8ba8c2eb5
Allow tests to pass with -OO by turning some AssertionErrors (the ones that
...
we actually exercise during tests) into more specific exceptions, so they
don't get optimized away. The best rule to follow is probably this: if an
exception is worth testing, then it's part of the API, and AssertionError
should never be part of the API. Closes #749 .
2009-07-14 23:45:10 -07:00
Zooko O'Whielacronx
10ad3ad7d6
wui: fix test for welcome page
2009-07-14 20:34:29 -07:00
Zooko O'Whielacronx
eb5ecc931d
wui: adjust headers/titles and "Attach something to this directory" text in accordance with #691
...
Also name it as "TahoeLAFS" in this text.
2009-07-14 19:58:14 -07:00
Zooko O'Whielacronx
2f704ed001
dirnode: finish renaming "iv" to "salt" in the code and the hash tag
2009-07-12 17:13:20 -07:00
Brian Warner
7f1d8b7c46
dirnode.py/_encrypt_rwcap: rename IV to "salt", which is more accurate
2009-07-13 00:50:25 +01:00
Brian Warner
c1d5717cf0
dirnode.py: security bug: also use child writecap to derive child enc key,
...
not just the dirnode writecap. The previous code (which only hashed the
dirnode writecap) would use the same key for all children, which is very bad.
This is the correct implementation of #750 .
2009-07-13 00:47:50 +01:00
kevan
d71adaf1ca
Use CachingDict instead of dict in dirnode.py
2009-07-03 20:43:01 -07:00
Zooko O'Whielacronx
34213cd2c7
directories: fix semantic conflict between my "keep track of position" optimization patch and Kevan's "cache serialized entries" optimization patch
2009-07-09 20:20:28 -07:00
kevan
44c652fbbe
Modify bench_dirnode.py to use CachingDict.
2009-07-05 15:31:42 -07:00
kevan
325793457d
Add tests for CachingDict, _pack_contents, _unpack_contents
2009-07-03 20:43:28 -07:00
Zooko O'Whielacronx
0e2d005146
trivial: removed unused import noticed by pyflakes
2009-07-09 06:05:13 -07:00
Zooko O'Whielacronx
786ed012b3
directories: make the IV for the writecaps in directory entries be computed from the secure hash of the writecap itself
...
This makes encoding of directory entries deterministic, and it is also a tad faster on Macbook Pro than getting a random IV with os.urandom(16).
2009-07-04 19:48:15 -07:00
Zooko O'Whielacronx
fcedca966e
tests: raise the timeout on pollmixin from 100s to 1000s -- it looks like it may have triggered too eagerly on Zandr's 266 MHz armel
2009-07-08 21:47:29 -07:00
Zooko O'Whielacronx
22d390acbb
immutable: base32-encode the keys to generate cache filenames that will work on all platforms
2009-07-08 08:26:33 -07:00
Zooko O'Whielacronx
c0d1e7deae
directories: make initialization of the download cache lazy
...
If you open up a directory containing thousands of files, it currently computes the cache filename and checks for the cache file on disk immediately for each immutble file in that directory. With this patch, it delays those steps until you try to do something with an immutable file that could use the cache.
2009-07-07 17:40:40 -07:00
kevan
903005a528
Add CachingDict dict subclass to dirnode.py
2009-07-05 14:23:45 -07:00
Zooko O'Whielacronx
c678e8c77a
directories: rename internal data member download_cache to download_cache_dirman (benchmarks set this internal member and use the new name, so changing this makes the bench_dirnode.py work again)
2009-07-07 07:34:04 -07:00
Zooko O'Whielacronx
efafcfb91a
directories: keep track of your position as you decode netstring after netstring from an input buffer instead of copying the trailing part
...
This makes decoding linear in the number of netstrings instead of O(N^2).
2009-07-04 19:51:09 -07:00
Zooko O'Whielacronx
4206a2c1c7
directories: in bench_dirnode.py, use a real CacheDirectoryManager instead of a fake one (because CacheDirectoryManager is a significant user of CPU and/or time)
2009-07-06 20:41:19 -07:00
Zooko O'Whielacronx
0df5b446eb
directories: make the profiling behavior of bench_dirnode.py accessible by adding '--profile' to the cmdline
2009-07-06 20:30:35 -07:00
Zooko O'Whielacronx
e414c73877
directories: update the directory benchmarks to exercise the unpack-and-repack functionality, and add optional profiling
2009-07-05 09:29:53 -07:00
Zooko O'Whielacronx
859d7ba8b0
test/benchmark: benchmark the time to pack and unpack dirnodes
...
See also the prof_benchmarks() function in this file which will run the benchmarks under profiling.
2009-07-04 15:43:00 -07:00
Brian Warner
ef1b6ae8e3
Tolerate unknown URI types in directory structures. Part of #683 .
...
The idea is that future versions of Tahoe will add new URI types that this
version won't recognize, but might store them in directories that we *can*
read. We should handle these "objects from the future" as best we can.
Previous releases of Tahoe would just explode. With this change, we'll
continue to be able to work with everything else in the directory.
The code change is to wrap anything we don't recognize as an UnknownNode
instance (as opposed to a FileNode or DirectoryNode). Then webapi knows how
to render these (mostly by leaving fields blank), deep-check knows to skip
over them, deep-stats counts them in "count-unknown". You can rename and
delete these things, but you can't add new ones (because we wouldn't know how
to generate a readcap to put into the dirnode's rocap slot, and because this
lets us catch typos better).
2009-07-02 18:07:49 -07:00
Brian Warner
4a46e91192
test_client.py: minor refactoring of BASECONFIG usage
2009-07-02 17:54:50 -07:00
Brian Warner
6237aeabd7
create_node_from_uri: take both writecap+readcap, move logic out of dirnode.py
2009-07-02 15:25:37 -07:00
Brian Warner
656277ac98
dirnode.py: prepare to preserve both rwcap+rocap when copying
...
This will make it easier to tolerate unknown nodes safely.
2009-07-02 14:12:54 -07:00
Brian Warner
3dedfed9de
interfaces.py: wrap some lines to 80cols
2009-07-01 18:57:28 -07:00
Brian Warner
b640baf500
cli: webopen: when called with no arguments, open the Welcome page
2009-07-01 13:05:48 -07:00
Brian Warner
e330abc3c3
mutable repairer: skip repair of readcaps instead of throwing an exception.
...
This should improve the behavior of #625 a bit: at least all the files will
get repaired.
2009-06-30 18:13:43 -07:00
Brian Warner
4194565b3d
interfaces.py: improve ICheckAndRepairResults docs a bit
2009-06-30 17:19:25 -07:00
Brian Warner
8fca155a66
repairer.py: wrap to 80cols. No code changes.
2009-06-30 17:00:47 -07:00
Brian Warner
52fa421430
use 522-bit RSA keys in all unit tests (except one)
...
This reduces the total test time on my laptop from 400s to 283s.
* src/allmydata/test/test_system.py (SystemTest.test_mutable._test_debug):
Remove assertion about container_size/data_size, this changes with keysize
and was too variable anyways.
* src/allmydata/mutable/filenode.py (MutableFileNode.create): add keysize=
* src/allmydata/dirnode.py (NewDirectoryNode.create): same
* src/allmydata/client.py (Client.DEFAULT_MUTABLE_KEYSIZE): add default,
this overrides the one in MutableFileNode
2009-06-29 15:31:24 -07:00
Brian Warner
c6ae255847
remove trailing whitespace
2009-06-29 13:03:58 -07:00
Brian Warner
dddc2d0378
remove trailing whitespace from some util classes
2009-06-29 13:03:41 -07:00
Brian Warner
d0f80579a5
repairer: raise a better exception when faced with a readonly filenode. Still
...
produces an error, though.
2009-06-25 23:32:30 -07:00
Brian Warner
97ffc8a418
mutable/filenode.py: set _writekey to None, rather than leaving it missing
...
This will at least turn the really really weird error when a repair of a
readonly mutable file is attempted into a merely really weird assertion that
mentions "repair currently requires a writecap".
2009-06-25 23:20:22 -07:00
Brian Warner
b43672c9f5
one last tweak
2009-06-25 22:26:27 -07:00
Brian Warner
08effc6499
more 'tahoe cp' docs tweaks
2009-06-25 22:16:52 -07:00
Brian Warner
b30db031ab
cli.py: minor tweaks to test posthooks
2009-06-25 19:45:57 -07:00
Brian Warner
df1ddf83f5
cli.py: update comments on 'tahoe cp' --help a bit
2009-06-25 19:38:37 -07:00
Brian Warner
8d5cc756f0
cli: add some --help text to 'tahoe cp'
2009-06-25 16:57:51 -07:00
Brian Warner
2adc184668
make it possible to add/renew-lease from the WUI
...
add add/renew-lease checkbox on the "more info" page check/deep-check forms
2009-06-25 16:18:24 -07:00
Brian Warner
2947da457e
hush pyflakes
2009-06-24 19:18:09 -07:00
Brian Warner
bd6ecc9f44
Split out NoSharesError, stop adding attributes to NotEnoughSharesError, change humanize_failure to include the original exception string, update tests, behave better if humanize_failure fails.
2009-06-24 19:17:07 -07:00
Brian Warner
837733641f
remove introducer/old.py, will create something similar when the RIIntroducer changes
2009-06-24 12:40:38 -07:00
midnightmagic
96cda877ff
Basically just a trivial platform detection patch for NetBSD.
2009-06-17 16:36:47 -07:00
Brian Warner
f573bb2929
check_grid.py: print stderr when a subcommand fails
2009-06-22 19:28:33 -07:00
Brian Warner
8df15e9f30
big rework of introducer client: change local API, split division of responsibilites better, remove old-code testing, improve error logging
2009-06-22 19:10:47 -07:00
Brian Warner
546266c806
web/welcome.xhtml: remove trailing whitespace
2009-06-22 19:09:09 -07:00
Brian Warner
aa23ff9180
rrefutil: add trap_deafref utility, to make the callRemote-plus-ignore-DeadReferenceError-plug-log-other-errors pattern easier
2009-06-22 19:08:26 -07:00
Brian Warner
699510c8f1
PollMixin: snoop trial's error observer to halt the test early if an error is seen. This turns a lot of timeouts into fast failures.
2009-06-22 19:07:31 -07:00
Brian Warner
711c09bc5d
clean up storage_broker interface: should fix #732
2009-06-21 16:51:19 -07:00
Brian Warner
f14004eeb3
hush pyflakes with recent FileTooLarge removal
2009-06-21 16:17:57 -07:00
kevan
efcc45951d
change max filesize limit tests
...
Instead of testing to see that the previous SDMF filesize limit was being
obeyed, we now test to make sure that we can insert files larger than that
limit.
2009-06-20 14:28:22 -07:00
kevan
db939750a8
remove upper limit on SDMF filesize
2009-06-20 14:31:30 -07:00
Brian Warner
a6caae9b5d
immutable/download: instrument do-you-have-block responses to investigate #732
2009-06-20 21:12:09 -07:00
Brian Warner
2c5aa12151
test_util: add known-answer tests for hashutil tags
2009-06-17 21:57:09 -07:00
Zooko O'Whielacronx
6a93caf7a3
tests: bump up a timeout that expired on Zandr's box
2009-06-13 12:57:03 -07:00
Zooko O'Whielacronx
cc2953e663
util: hooray! A clean implementation of this simple utility! Black Dew pointed out that the inverse of time.gmtime() is hidden in the "calendar" module.
2009-06-13 09:01:12 -07:00
Zooko O'Whielacronx
45928315f6
util: Brian's horrible hack to figure out how much localtime and utctime differ. Now we'll see if it works on Windows.
2009-06-12 13:45:56 -07:00
Zooko O'Whielacronx
4a30c5899c
util: oops, time.tzset() doesn't work on Windows -- hopefully the new "London" unit test passes on Windows when we skip tzset() on platforms that don't have it
2009-06-11 17:09:20 -07:00
Zooko O'Whielacronx
8978cb0738
util: fix time_format.iso_utc_time_to_seconds() so that it works even in London
2009-06-11 15:11:29 -07:00
Zooko O'Whielacronx
0ed65fba34
tests: significantly increase timeouts that triggered on Zandr's ARM box
2009-06-10 09:10:43 -07:00
Zooko O'Whielacronx
69a3b23b34
test: multiple by 10 or so all timeouts that Zandr's ARM box just overran
2009-06-10 05:56:39 -07:00
Zooko O'Whielacronx
bdfb80834f
tests: bump up timeout on a test that timed out on draco
2009-06-09 21:46:28 -07:00
Zooko O'Whielacronx
974295f963
tests: raise the timeout for test_cli since Zandr's ARM machine totally burst through the old one
2009-06-09 14:05:09 -07:00
Brian Warner
2e35648901
test_cli.Backup: increase timeout massively, it takes 1200s on zandr's ARM linkstation
2009-06-08 22:28:01 -07:00
Zooko O'Whielacronx
3cfc00f5cf
tests: double the timeouts on some tests which time-out on Francois's box
2009-06-08 19:17:53 -07:00
Zooko O'Whielacronx
0bc116b3a2
tests: bump up timeouts so that the tests can finish before timeout on Francois's little arm box
2009-06-08 15:55:57 -07:00
Zooko O'Whielacronx
c3e9d36d97
tests: increase timeouts on some other tests that timed-out on Francois's arm box
2009-06-05 07:34:37 -07:00
Zooko O'Whielacronx
63c8f0c424
tests: bump up the timeout on a bunch of tests that took longer than the default timeout (120s) on François Lenny-armv5tel
2009-06-04 20:14:44 -07:00
Zooko O'Whielacronx
8c18ac38a9
backup: remove the --no-backupdb command, the handling of "can't import sqlite", and the related tests, and change an error message to more correctly indicate failure to load the database from disk rather than failure to import sqlite module
...
Fixes #728 .
2009-06-04 10:31:31 -07:00
Zooko O'Whielacronx
2841d6a266
setup: add pysqlite and sqlite to get_package_versions()
2009-06-04 08:37:28 -07:00
Brian Warner
35b3f7f426
more refactoring: move get_all_serverids() and get_nickname_for_serverid() from Client to storage_broker
2009-06-01 20:07:50 -07:00
Brian Warner
b1290633b8
more storage_broker refactoring: downloader gets a broker instead of a client,
...
use Client.get_storage_broker() accessor instead of direct attribute access.
2009-06-01 19:25:11 -07:00
Brian Warner
3a1196701f
test_runner.py: remove test_client_no_noise: the issue in question is
...
ticketed in http://divmod.org/trac/ticket/2830 and doesn't need a Tahoe-side
change, plus this test fails on win32 for unrelated reasons (and test_client
is the place to think about the win32 issue).
2009-06-01 15:50:07 -07:00
Brian Warner
4177a3616b
remove plaintext-hashing code from the helper interface, to close #722
...
and deny the Helper the ability to mount a partial-information-guessing
attack. This will probably break compatibility between new clients and very
old (pre-1.0) helpers.
2009-06-01 15:49:16 -07:00
Brian Warner
c516361fd2
start to factor server-connection-management into a distinct 'StorageServerFarmBroker' object, separate from the client and the introducer. This is the starting point for #467 : static server selection
2009-06-01 14:06:04 -07:00
Brian Warner
d29281c9c5
mutable: catch and display first error, so code bugs which break all servers get displayed better
2009-06-01 14:04:07 -07:00
Kevin Reid
23441389a5
Modify markup of Tahoe web pages to be more amenable to styling; some minor changes of wording.
2009-05-26 16:25:45 -07:00
Kevin Reid
a71c914e50
Tweak wording in directory page: not-read-only is "modifiable", mention creating a directory _in this directory_.
2009-05-26 16:24:14 -07:00
Kevin Reid
3e80676a29
Comment on duplication of code/markup found during styling project.
2009-05-03 13:34:42 -07:00
Kevin Reid
d0b4fd4689
Add CSS styles to spiff up the Tahoe WUI's appearance, particularly the welcome page and directories.
2009-05-03 13:31:42 -07:00
Kevin Reid
35d3671f4e
Link all Tahoe web pages to the /tahoe_css stylesheet which already exists.
2009-05-03 13:25:33 -07:00
Kevin Reid
2f3842954b
Fix broken link from Provisioning to Reliability page.
2009-05-01 12:10:50 -07:00
Brian Warner
de83526acd
immutable/encode.py: tolerate immediate _remove_shareholder by copying the
...
landlord list before iterating over it. This can probably only happen in unit
tests, but cleaning it up makes certain test failures easier to analyze.
2009-05-22 11:44:24 -07:00
Brian Warner
1863aee0aa
switch to using RemoteException instead of 'wrapped' RemoteReferences. Should fix #653 , the rref-EQ problem
2009-05-21 17:46:32 -07:00
Brian Warner
c9803d5217
switch all foolscap imports to use foolscap.api or foolscap.logging
2009-05-21 17:38:23 -07:00
Brian Warner
b542d5aca6
test_runner.py: fix minor typo
2009-05-19 20:36:20 -07:00
Brian Warner
9f0bc04d32
test_introducer.py: add a test for the python2.4.0/2.4.1 bug in base64.b32decode
2009-05-18 20:41:01 -07:00
Brian Warner
79437baade
immutable WriteBucketProxy: use pipeline to speed up uploads by overlapping roundtrips, for #392
2009-05-18 16:44:22 -07:00
Brian Warner
e76c6b606f
util/pipeline.py: new utility class to manage size-limited work pipelines, for #392
2009-05-18 16:43:26 -07:00
Zooko O'Whielacronx
718537ab8c
tests: mark test_runner as coded in utf-8 instead of ascii
2009-05-07 15:31:51 -07:00
Zooko O'Whielacronx
04ff9a3f97
tests: raise timeout on test_runner.RunNode.test_introducer from 120s to 240s, since it hit the 120s time-out on François Lenny-armv5tel
2009-05-07 14:50:12 -07:00
Zooko O'Whielacronx
77b578928e
trivial: fix comment
2009-04-13 10:41:38 -07:00
Zooko O'Whielacronx
6350634ee3
tests: remove obsolete test (it tests functionality that is long gone) which occasionally ERRORs now that we have more metadata (since [20090411225205-92b7f-7adfb89cb4db4ac7d28427934dea3d2c108f6476])
2009-04-12 19:36:21 -07:00
Zooko O'Whielacronx
6b9899ade1
trivial: remove trailing whitespace and unused import
2009-04-11 19:17:42 -07:00
Zooko O'Whielacronx
9729753692
dirnode: add 'tahoe'/'linkcrtime' and 'tahoe'/'linkmotime' to take the place of what 'mtime'/'ctime' originally did, and make the 'tahoe' subdict be unwritable through the set_children API
...
Also add extensive documentation in docs/frontends/webapi.txt about the behaviors of these values. See ticket #628 .
2009-04-11 15:52:05 -07:00
Zooko O'Whielacronx
5b02896307
rollback [20090226150237-b2345-1e916a746a7f4627b050f02f0e442fae5caf69d4] for 1.4.0 release; #645
2009-04-11 11:19:06 -07:00
Brian Warner
54952e9bea
#622 : disable 'Repair' button on check-results page until we make it work correctly
2009-04-09 16:59:59 -07:00
Brian Warner
922b3034be
web: make sure that PUT /uri?mutable=false really means immutable, fixes #675
2009-04-07 19:13:40 -07:00
Zooko O'Whielacronx
37c6e77764
wui: edit some of the human-readable parts of the wui such as button labels
...
(The word "parent" suggests that you can go up a directory hierarchy -- perhaps that word is vestigial.)
2009-04-07 11:54:59 -07:00
Zooko O'Whielacronx
8b1cd154da
wui: fix bug in which empty directory is marked as "unreadable", add test, remove exclamation point
2009-04-07 11:28:34 -07:00
Brian Warner
40c78297e8
hashtree.py: another micro-optimization, expand on a comment
2009-04-03 21:35:27 -07:00
Zooko O'Whielacronx
de8475389b
hashtree: fix tests of depth_of
2009-04-03 16:56:14 -07:00
Zooko O'Whielacronx
3ac5f427ba
trivial: source code metadata
2009-04-03 16:33:15 -07:00
Zooko O'Whielacronx
a07e746d9c
trivial: whitespace
2009-04-03 16:33:02 -07:00
Zooko O'Whielacronx
d381bdc905
hashtree: a couple of tiny improvements
...
* calculate depth-first with math instead of traversing the actual tree
* don't mark a node with a red dot if you instead compare it with an extant hash value (tiny optimization)
* edit a comment about checking the root node
2009-04-03 16:30:37 -07:00
Zooko O'Whielacronx
b12a7f9ee8
leases, time_format: modify time stamping in lease description
...
* emit lease expiry date in ISO-8601'ish format as well as Brian's format
* rename iso_utc_time_to_localseconds() to iso_utc_time_to_seconds()
* add iso_utc_date()
* simplify the body of iso_utc_time_to_seconds()
2009-04-03 15:59:04 -07:00
Brian Warner
466014f66f
hashtree: fix O(N**2) behavior, to improve fatal alacrity problems in a 10GB file ( #670 ). Also improve docstring.
2009-03-31 13:21:27 -07:00
Brian Warner
bd93430c53
expirer: include crawler progress in the JSON status output
2009-03-24 13:51:37 -07:00
Brian Warner
b5d4972a7a
move GC docs out of proposed/, since it's all implemented now. Add reference to configuration.txt . Add expire.*= suggestions to tahoe.cfg .
2009-03-23 16:08:20 -07:00
Brian Warner
5e8c31c3b6
storage: use constant-time comparison for write-enablers and lease-secrets
2009-03-22 20:21:28 -07:00
Brian Warner
01e2032669
hashutil: add constant-time comparison function, to avoid timing attacks when python's short-circuiting data-dependent == operator is used to, say, check a write-enabler
2009-03-22 20:20:55 -07:00
Brian Warner
6599eae6f9
WUI: fix display of empty directories, it threw an exception before
2009-03-20 16:58:09 -07:00
Brian Warner
4f4d748fd9
storage webstatus: insert spaces when we're configured to expire multiple sharetypes
2009-03-20 15:44:50 -07:00
Brian Warner
3b65607926
expirer: tolerate empty buckets, refactor bucketsize-counting code a bit, don't increment -mutable/-immutable counters unless we actually know the sharetype
2009-03-20 12:18:16 -07:00
Brian Warner
8645738c77
storage: improve wording of status message
2009-03-19 11:48:37 -07:00
Brian Warner
66fe8ca24c
parse_date: insist that it returns an int
2009-03-19 11:44:43 -07:00
Brian Warner
186b6a8c01
storage status: report expiration-cutoff-date like 19-Mar-2009 (as opposed to the tahoe.cfg input format of 2009-03-19), for redundancy: someone who gets the month and day switched will have a better chance to spot the problem in the storage-status output if it's in a different format
2009-03-19 11:07:56 -07:00
Brian Warner
f0071c2571
expirer: clean up constructor args, add tahoe.cfg controls, use cutoff_date instead of date_cutoff
2009-03-18 18:00:09 -07:00
Brian Warner
babcf632da
util/time_format: new routine to parse dates like 2009-03-18, switch expirer to use it. I'd prefer to use 18-Mar-2009, but it is surprisingly non-trivial to build a parser that will take UTC dates instead of local dates
2009-03-18 17:58:14 -07:00
Brian Warner
8eaee28550
expirer: change setup, config options, in preparation for adding tahoe.cfg controls
2009-03-18 17:21:38 -07:00
Brian Warner
fffab0d724
expirer: track mutable-vs-immutable sharecounts and sizes, report them on the web status page for comparison
2009-03-18 13:25:04 -07:00
Brian Warner
406fdba61f
add utility function to parse durations, for lease-expiration config
2009-03-17 00:01:17 -07:00
Brian Warner
24ab5ec26f
expirer: add mode to expire only-mutable or only-immutable shares
2009-03-16 23:51:18 -07:00
Brian Warner
475e7b8804
tahoe_ls.py: add comment about error cases to improve
2009-03-16 22:12:06 -07:00
Brian Warner
c7254c5f1d
GC: add date-cutoff -based expiration, add proposed docs
2009-03-16 22:10:41 -07:00
Brian Warner
2b525a42d3
test_deepcheck: remove the 10s timeout: our dapper buildslave requires 30s, and the reduced timeout was only there because this tests fails by timeout rather than explicitly
2009-03-15 17:51:34 -07:00
Brian Warner
f0b0ad1c8f
tahoe cp -r: add --caps-only flag, to write filecaps into local files instead of actual file contents. Used only for debugging and as a quick tree-comparison tool.
2009-03-15 16:19:58 -07:00
Brian Warner
6e57576f2e
dirnode deep_traverse: insert a turn break (fireEventually) at least once every 100 files, otherwise a CHK followed by more than 158 LITs can overflow the stack, sort of like #237 .
2009-03-13 16:31:35 -07:00
Brian Warner
e59164e0bb
consolidate: remove pointless 'else' after for loop
2009-03-13 01:27:51 -07:00
Brian Warner
ae64ddf8e6
consolidate: add eta, flush stdout
2009-03-13 01:24:51 -07:00
Brian Warner
06bf443e91
consolidate: tolerate unicode dirnames
2009-03-12 23:54:02 -07:00
Brian Warner
1a741fdb03
dirnode.py: when doing deep-traverse, walk each directory in alphabetical order, to make things like 'manifest' more predictable
2009-03-12 23:50:46 -07:00
Brian Warner
a18f8d4cc7
consolidator: add progress to scan-old-directory passes
2009-03-12 22:47:28 -07:00
Brian Warner
ddb2f1a6e3
consolidator: fix cycle detection to not trigger on merely shared directories, add snapshot counter to progress
2009-03-12 21:22:29 -07:00
Brian Warner
ddc9a7ae74
consolidator: re-use more directories, add total directories seen-vs-used counts
2009-03-12 20:48:01 -07:00
Brian Warner
809ec25ffa
tahoe_backup.py: tolerate more time formats
2009-03-12 18:16:00 -07:00
Brian Warner
1c24707f19
consolidator: add more verbose traversal of directories
2009-03-12 16:29:00 -07:00
Brian Warner
760688a224
consolidate: create multiple numbered backups of the original Archives directory, not just the first time
2009-03-12 16:04:27 -07:00
Brian Warner
c4c6a62954
add 'tahoe debug consolidate' command, to merge directories created by repeated 'tahoe cp -r' or the allmydata win32 backup tool, into the form that would have been created by 'tahoe backup'.
2009-03-12 13:56:06 -07:00
Brian Warner
969b758bf5
tahoe_cp.py: return 0 for success, instead of None
2009-03-12 13:53:45 -07:00
Brian Warner
1ccd426a34
expirer: fix prediction math, thanks to Zandr for the catch
2009-03-09 13:42:17 -07:00
Brian Warner
8708045a98
storage.expirer: oops, fix upgrade-handler code
2009-03-08 20:55:16 -07:00
Brian Warner
df3f7f93e0
storage.expirer: handle upgrades better
2009-03-08 20:42:20 -07:00
Brian Warner
a68ad06254
storage.expirer: exercise the last missing line of webstatus code
2009-03-08 20:38:28 -07:00
Brian Warner
6d6049430c
expirer: tolerate corrupt shares, add them to the state and history for future examination
2009-03-08 20:08:40 -07:00
Brian Warner
1a98521c3d
storage/immutable: raise a specific error upon seeing a bad version number, instead of using assert. Also wrap to 80cols.
2009-03-08 20:07:32 -07:00
Brian Warner
02b40ec499
storage: add test coverage for BucketReader.__repr__
2009-03-08 20:05:27 -07:00
Brian Warner
6d7319c588
storage/mutable: raise a specific error upon seeing bad magic, instead of using assert
2009-03-08 19:02:01 -07:00
Zooko O'Whielacronx
7e7167f2e5
nodeadmin: node stops itself if a hotline file hasn't been touched in 120 seconds now, instead of in 60 seconds
...
A test failed on draco (MacPPC) because it took 67.1 seconds to get around to running the test, and the node had already stopped itself when the hotline file was 60 seconds old.
2009-03-07 20:50:39 -07:00
Brian Warner
5675b4e7e0
expirer: make web display a bit more consistent
2009-03-07 16:14:42 -07:00
Brian Warner
df045650e0
web/storage.py: tolerate unknown-future displays, I'm not sure why LeaseCrawler.test_unpredictable_future didn't catch this
2009-03-07 16:02:43 -07:00
Brian Warner
192c161be7
tahoe_cp.py: improve error reporting slightly: don't json-interpret HTTP errors, pass through tahoe webapi error messages
2009-03-07 05:40:51 -07:00
Brian Warner
2c2c3c2295
test_cli.py: assert that 'ls' on an unrecoverable file now gives a better error message
2009-03-07 05:08:15 -07:00
Brian Warner
67d7600781
test_web: test behavior of broken-dirnode GET, both html and json
2009-03-07 04:57:07 -07:00
Brian Warner
950200fece
web: when a dirnode can't be read, emit a regular HTML page but with the child-table and upload-forms replaced with an apologetic message. Make sure to include the 'get info' links so the user can do a filecheck
2009-03-07 04:56:01 -07:00
Brian Warner
badd79671c
web/common: split out exception-to-explanation+code mapping to a separate humanize_failure() function, so it can be used by other code. Add explanation for mutable UnrecoverableFileError.
2009-03-07 04:54:08 -07:00
Brian Warner
9c7fafd5af
test_cli: use explicit (and stable) testdirs, instead of using self.mktemp
2009-03-07 03:04:28 -07:00
Brian Warner
091cfd04ca
test_storage: solaris doesn't appear to give the same block count as other platforms, so don't assert as much about 'diskbytes' recovered
2009-03-07 02:45:18 -07:00
Brian Warner
24ebdb3954
tahoe_cp.py: don't be verbose unless --verbose is passed: default is one line of success
2009-03-07 02:44:21 -07:00
Brian Warner
0dee2a6036
storage: add a lease-checker-and-expirer crawler, plus web status page.
...
This walks slowly through all shares, examining their leases, deciding which
are still valid and which have expired. Once enabled, it will then remove the
expired leases, and delete shares which no longer have any valid leases. Note
that there is not yet a tahoe.cfg option to enable lease-deletion: the
current code is read-only. A subsequent patch will add a tahoe.cfg knob to
control this, as well as docs. Some other minor items included in this patch:
tahoe debug dump-share has a new --leases-only flag
storage sharefile/leaseinfo code is cleaned up
storage web status page (/storage) has more info, more tests coverage
space-left measurement on OS-X should be more accurate (it was off by 2048x)
(use stat .f_frsize instead of f_bsize)
2009-03-06 22:45:17 -07:00
Zooko O'Whielacronx
e9199a89ab
trivial: remove unused import detected by pyflakes, and remove trailing whitespace
2009-03-05 16:32:04 -07:00
Zooko O'Whielacronx
5e90d82a02
trivial: use more specific function for ascii-encoding storage index
2009-02-22 11:57:51 -07:00
Brian Warner
c5ecb7b3ba
test_cli: validate non-HTML error response of 'tahoe get' on an unrecoverable file
2009-03-03 22:11:46 -07:00
Brian Warner
f42e3bb107
web: full patch for HTML-vs-plaintext traceback renderings, improve test coverage of exception rendering
2009-03-03 21:56:30 -07:00
Brian Warner
90226f335f
web/common.py: use 'Accept:' header to control HTML-vs-text/plain traceback renderings
2009-03-03 21:54:57 -07:00