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