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
Zooko O'Whielacronx
244fee10f7
setup: clarify the way that we host two directories of dependencies: one is source distributions and the other is binary distributions
2009-07-16 09:06:57 -07: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
760bab7d2c
setup: tell build to search a directory (hosted on allmydata.org) which contains eggs
2009-07-14 19:52:46 -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
6cbaaf31b5
mac: emit the stdout and stderr from a failed call to Allmydata (this is very useful diagnostic info)
2009-07-14 18:43:38 -07:00
Zooko O'Whielacronx
d2132213e3
mac: improve shutdown and clean-up after the test of the macintosh packaging
2009-07-14 05:26:55 -07:00
Zooko O'Whielacronx
4a4a47a66d
setup: add "test_mac_diskimage" command which attempts to mount and use a .dmg to make sure it has a good Tahoe distribution in it
2009-07-12 16:09:40 -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
Brian Warner
93ef0fb84d
NEWS: update with all recent changes
2009-07-12 00:47:03 +01:00
Brian Warner
5501983f5f
proposed/mutable-DSA.txt: add some new design criteria
2009-07-11 14:25:00 +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
7682f6b120
setup: add sys.maxunicode to the show-tool-versions output in order to investigate http://bugs.python.org/setuptools/issue78
2009-07-08 17:45:33 -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
9578e70161
setup: increase requirement on pycryptopp to >= 0.5.15
2009-07-06 07:08:15 -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
Zooko O'Whielacronx
7bf452e4bc
setup: the mac-exe build (using py2app) requires macholib>=1.2.
...
Here is someone else's description of this problem:
http://rtmpy.org/ticket/7
2009-07-03 10:57:02 -07:00
Brian Warner
d79b2a02b4
clean up debian packaging: we have control files for etch/lenny/sid, and
...
everything else uses one of those. Add dependency on python-pysqlite2 for
platforms that use py2.4 by default. Update foolscap dependency to 0.4.1.
2009-07-03 00:28:04 -07:00
Brian Warner
ba9f3dcc7d
update NEWS to cover all recent changes, sort by end-user importance
2009-07-02 18:43:03 -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