1 | Sun Jul 19 20:46:32 PDT 2009 kevan@isnotajoke.com |
---|
2 | * Add tests for new PUT behavior |
---|
3 | |
---|
4 | Sun Jul 19 20:47:05 PDT 2009 kevan@isnotajoke.com |
---|
5 | * Add tests for parse_replace_arg() |
---|
6 | |
---|
7 | New patches: |
---|
8 | |
---|
9 | [Add tests for new PUT behavior |
---|
10 | kevan@isnotajoke.com**20090720034632 |
---|
11 | Ignore-this: a64a8e8767b4d03d87445104475b045d |
---|
12 | ] hunk ./src/allmydata/test/test_web.py 705 |
---|
13 | d.addBoth(self.should404, "test_GET_FILEURL_missing") |
---|
14 | return d |
---|
15 | |
---|
16 | + def test_PUT_overwrite_only_files(self): |
---|
17 | + # create a directory, put a file in that directory. |
---|
18 | + contents, n, uri = self.makefile(8) |
---|
19 | + d = self.PUT(self.public_url + "/foo/dir?t=mkdir", "") |
---|
20 | + d.addCallback(lambda res: |
---|
21 | + self.PUT(self.public_url + "/foo/dir/file1.txt", |
---|
22 | + self.NEWFILE_CONTENTS)) |
---|
23 | + # try to overwrite the file with replace=only-files |
---|
24 | + # (this should work) |
---|
25 | + d.addCallback(lambda res: |
---|
26 | + self.PUT(self.public_url + "/foo/dir/file1.txt?t=uri&replace=only-files", |
---|
27 | + uri)) |
---|
28 | + d.addCallback(lambda res: |
---|
29 | + self.shouldFail2(error.Error, "PUT_bad_t", "409 Conflict", |
---|
30 | + "There was already a child by that name, and you asked me " |
---|
31 | + "to not replace it", |
---|
32 | + self.PUT, self.public_url + "/foo/dir?t=uri&replace=only-files", |
---|
33 | + uri)) |
---|
34 | + return d |
---|
35 | + |
---|
36 | def test_PUT_NEWFILEURL(self): |
---|
37 | d = self.PUT(self.public_url + "/foo/new.txt", self.NEWFILE_CONTENTS) |
---|
38 | # TODO: we lose the response code, so we can't check this |
---|
39 | [Add tests for parse_replace_arg() |
---|
40 | kevan@isnotajoke.com**20090720034705 |
---|
41 | Ignore-this: 3574c2dbbfe250e4cba2f32c02fdafd3 |
---|
42 | ] hunk ./src/allmydata/test/test_web.py 2515 |
---|
43 | return d |
---|
44 | |
---|
45 | |
---|
46 | -class Util(unittest.TestCase): |
---|
47 | +class Util(unittest.TestCase, ShouldFailMixin): |
---|
48 | + def test_parse_replace_arg(self): |
---|
49 | + self.failUnlessEqual(common.parse_replace_arg("true"), True) |
---|
50 | + self.failUnlessEqual(common.parse_replace_arg("false"), False) |
---|
51 | + self.failUnlessEqual(common.parse_replace_arg("only-files"), |
---|
52 | + "only-files") |
---|
53 | + self.shouldFail(AssertionError, "test_parse_replace_arg", "", |
---|
54 | + common.parse_replace_arg, "only_fles") |
---|
55 | + |
---|
56 | def test_abbreviate_time(self): |
---|
57 | self.failUnlessEqual(common.abbreviate_time(None), "") |
---|
58 | self.failUnlessEqual(common.abbreviate_time(1.234), "1.23s") |
---|
59 | |
---|
60 | Context: |
---|
61 | |
---|
62 | [directories: minor change: fix warning message from the benchmarking script |
---|
63 | zooko@zooko.com**20090720002114 |
---|
64 | Ignore-this: 89498e477a70fe9f7d204b592c81785e |
---|
65 | ] |
---|
66 | [Add unit tests for the Adder in dirnode.py |
---|
67 | kevan@isnotajoke.com**20090718195049 |
---|
68 | Ignore-this: 93434af3656249962cf9bc6d7ac5bc01 |
---|
69 | ] |
---|
70 | [Add 'only_files' option to the overwrite field in Adder |
---|
71 | kevan@isnotajoke.com**20090718030010 |
---|
72 | Ignore-this: 56605f6740f692549acdd9b236ce6443 |
---|
73 | ] |
---|
74 | [rename NewDirectoryNode to DirectoryNode, NewDirectoryURI to DirectoryURI |
---|
75 | Brian Warner <warner@lothar.com>**20090717221549 |
---|
76 | Ignore-this: 5e6226e8d9fba824bf45f67ea5821e0e |
---|
77 | ] |
---|
78 | [interfaces: remove dead code, FileNode_ and EncryptedThing constraints |
---|
79 | Brian Warner <warner@lothar.com>**20090717221139 |
---|
80 | Ignore-this: d4faaa37a6d9fbc70e40c43067385582 |
---|
81 | ] |
---|
82 | [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 |
---|
83 | zooko@zooko.com**20090717135221 |
---|
84 | Ignore-this: a315123bcea8eb0eb13172b0919d8753 |
---|
85 | ] |
---|
86 | [upload: fix #758 recursion-loop in peer-selection when servers report errors. |
---|
87 | Brian Warner <warner@lothar.com>**20090717050709 |
---|
88 | Ignore-this: 9c28ef13649c4475ede23815b69e51fd |
---|
89 | The bug was in the code that handles a third-or-later pass, and was |
---|
90 | previously untested. |
---|
91 | ] |
---|
92 | [setup: clarify the way that we host two directories of dependencies: one is source distributions and the other is binary distributions |
---|
93 | zooko@zooko.com**20090716160657 |
---|
94 | Ignore-this: 500ef010bc7163ecff86b36461057835 |
---|
95 | ] |
---|
96 | ['tahoe stats': tolerate empty directories. Closes #693. |
---|
97 | Brian Warner <warner@lothar.com>**20090715075109 |
---|
98 | Ignore-this: a713325132e05d5d122111f978fe5e14 |
---|
99 | ] |
---|
100 | [node.py: record pid in twisted log at startup. Closes #476. |
---|
101 | Brian Warner <warner@lothar.com>**20090715072929 |
---|
102 | Ignore-this: c9054bbf0e114659ac49419e7c658ab6 |
---|
103 | ] |
---|
104 | [Allow tests to pass with -OO by turning some AssertionErrors (the ones that |
---|
105 | Brian Warner <warner@lothar.com>**20090715064510 |
---|
106 | Ignore-this: db08d38b720a5260b5d1dc6d6a9878c1 |
---|
107 | we actually exercise during tests) into more specific exceptions, so they |
---|
108 | don't get optimized away. The best rule to follow is probably this: if an |
---|
109 | exception is worth testing, then it's part of the API, and AssertionError |
---|
110 | should never be part of the API. Closes #749. |
---|
111 | ] |
---|
112 | [setup: tell build to search a directory (hosted on allmydata.org) which contains eggs |
---|
113 | zooko@zooko.com**20090715025246 |
---|
114 | Ignore-this: 1fb41208f777862cc387c3995b01acc |
---|
115 | ] |
---|
116 | [wui: fix test for welcome page |
---|
117 | zooko@zooko.com**20090715033429 |
---|
118 | Ignore-this: b36d18be67d873b6d59cd11a849ae627 |
---|
119 | ] |
---|
120 | [wui: adjust headers/titles and "Attach something to this directory" text in accordance with #691 |
---|
121 | zooko@zooko.com**20090715025814 |
---|
122 | Ignore-this: b7ab31947bdadc8c7c56f5037275de71 |
---|
123 | Also name it as "TahoeLAFS" in this text. |
---|
124 | ] |
---|
125 | [mac: emit the stdout and stderr from a failed call to Allmydata (this is very useful diagnostic info) |
---|
126 | zooko@zooko.com**20090715014338 |
---|
127 | Ignore-this: f34de1aabfc94026fc6ecdaf92748342 |
---|
128 | ] |
---|
129 | [mac: improve shutdown and clean-up after the test of the macintosh packaging |
---|
130 | zooko@zooko.com**20090714122655 |
---|
131 | Ignore-this: f2ba2ca7d16173c8c45a9a1411d419c |
---|
132 | ] |
---|
133 | [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 |
---|
134 | zooko@zooko.com**20090712230940 |
---|
135 | Ignore-this: e889aaf49699429afeb211f7403fec74 |
---|
136 | ] |
---|
137 | [dirnode: finish renaming "iv" to "salt" in the code and the hash tag |
---|
138 | zooko@zooko.com**20090713001320 |
---|
139 | Ignore-this: 10e41a10934f9748fd55b68f54779824 |
---|
140 | ] |
---|
141 | [dirnode.py/_encrypt_rwcap: rename IV to "salt", which is more accurate |
---|
142 | Brian Warner <warner@lothar.com>**20090712235025 |
---|
143 | Ignore-this: 1b8d6a4e8667655f52abe2b3be46a0ed |
---|
144 | ] |
---|
145 | [dirnode.py: security bug: also use child writecap to derive child enc key, |
---|
146 | Brian Warner <warner@lothar.com>**20090712234750 |
---|
147 | Ignore-this: 13867ebc123b521df60e4013b75716e |
---|
148 | not just the dirnode writecap. The previous code (which only hashed the |
---|
149 | dirnode writecap) would use the same key for all children, which is very bad. |
---|
150 | This is the correct implementation of #750. |
---|
151 | ] |
---|
152 | [NEWS: update with all recent changes |
---|
153 | Brian Warner <warner@lothar.com>**20090711234703 |
---|
154 | Ignore-this: 8d96344b0e4634186a63b4a8941254a1 |
---|
155 | ] |
---|
156 | [proposed/mutable-DSA.txt: add some new design criteria |
---|
157 | Brian Warner <warner@lothar.com>**20090711132500 |
---|
158 | Ignore-this: d7519fd9bbcadc331f9843c33dce0d44 |
---|
159 | ] |
---|
160 | [Use CachingDict instead of dict in dirnode.py |
---|
161 | kevan@isnotajoke.com**20090704034301 |
---|
162 | Ignore-this: 53f12260176a5170b3599eda54f38e98 |
---|
163 | ] |
---|
164 | [directories: fix semantic conflict between my "keep track of position" optimization patch and Kevan's "cache serialized entries" optimization patch |
---|
165 | zooko@zooko.com**20090710032028 |
---|
166 | Ignore-this: 46f8b00fd3eca4adf89dec437e65d696 |
---|
167 | ] |
---|
168 | [Modify bench_dirnode.py to use CachingDict. |
---|
169 | kevan@isnotajoke.com**20090705223142 |
---|
170 | Ignore-this: 9ba62a16fd37ef281368715a887fd9f8 |
---|
171 | ] |
---|
172 | [Add tests for CachingDict, _pack_contents, _unpack_contents |
---|
173 | kevan@isnotajoke.com**20090704034328 |
---|
174 | Ignore-this: 12f3e989244288c211ba393d3a205111 |
---|
175 | ] |
---|
176 | [trivial: removed unused import noticed by pyflakes |
---|
177 | zooko@zooko.com**20090709130513 |
---|
178 | Ignore-this: 63257c9e8481fdcf617f04cc48d95d03 |
---|
179 | ] |
---|
180 | [directories: make the IV for the writecaps in directory entries be computed from the secure hash of the writecap itself |
---|
181 | zooko@zooko.com**20090705024815 |
---|
182 | Ignore-this: cb9cc29f8f0687f2545e95d5b7b42d44 |
---|
183 | 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). |
---|
184 | ] |
---|
185 | [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 |
---|
186 | zooko@zooko.com**20090709044729 |
---|
187 | Ignore-this: 838b870798dc0f793979398ed4a18c2e |
---|
188 | ] |
---|
189 | [setup: add sys.maxunicode to the show-tool-versions output in order to investigate http://bugs.python.org/setuptools/issue78 |
---|
190 | zooko@zooko.com**20090709004533 |
---|
191 | Ignore-this: dce4420d5c626258e1033d924e506de2 |
---|
192 | ] |
---|
193 | [immutable: base32-encode the keys to generate cache filenames that will work on all platforms |
---|
194 | zooko@zooko.com**20090708152633 |
---|
195 | Ignore-this: 782b615c4c35629fee618b39a7175321 |
---|
196 | ] |
---|
197 | [directories: make initialization of the download cache lazy |
---|
198 | zooko@zooko.com**20090708004040 |
---|
199 | Ignore-this: 3c3714ccc09ae1de811664d52211e143 |
---|
200 | 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. |
---|
201 | ] |
---|
202 | [Add CachingDict dict subclass to dirnode.py |
---|
203 | kevan@isnotajoke.com**20090705212345 |
---|
204 | Ignore-this: 484bdcecbc1ae25e04bf659abcfcf834 |
---|
205 | ] |
---|
206 | [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) |
---|
207 | zooko@zooko.com**20090707143404 |
---|
208 | Ignore-this: c77f189a864d517c28a54a4cfce8c0a2 |
---|
209 | ] |
---|
210 | [directories: keep track of your position as you decode netstring after netstring from an input buffer instead of copying the trailing part |
---|
211 | zooko@zooko.com**20090705025109 |
---|
212 | Ignore-this: bee1ae76060fbc920bddb6e839b7dd1a |
---|
213 | This makes decoding linear in the number of netstrings instead of O(N^2). |
---|
214 | ] |
---|
215 | [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) |
---|
216 | zooko@zooko.com**20090707034119 |
---|
217 | Ignore-this: 207a2dc346ca2c01dc7b341e88a0ca0a |
---|
218 | ] |
---|
219 | [directories: make the profiling behavior of bench_dirnode.py accessible by adding '--profile' to the cmdline |
---|
220 | zooko@zooko.com**20090707033035 |
---|
221 | Ignore-this: 159c36ac1cafaa4e9a6239025ef9d57b |
---|
222 | ] |
---|
223 | [setup: increase requirement on pycryptopp to >= 0.5.15 |
---|
224 | zooko@zooko.com**20090706140815 |
---|
225 | Ignore-this: f3839c7c1f9ebff1fcf2eea47ed3c48b |
---|
226 | ] |
---|
227 | [directories: update the directory benchmarks to exercise the unpack-and-repack functionality, and add optional profiling |
---|
228 | zooko@zooko.com**20090705162953 |
---|
229 | Ignore-this: 4a1b11c9b1880772c923b3c03e10770b |
---|
230 | ] |
---|
231 | [test/benchmark: benchmark the time to pack and unpack dirnodes |
---|
232 | zooko@zooko.com**20090704224300 |
---|
233 | Ignore-this: cd8f6a6ded44a3f6f102f9cd0b60ca62 |
---|
234 | See also the prof_benchmarks() function in this file which will run the benchmarks under profiling. |
---|
235 | ] |
---|
236 | [setup: the mac-exe build (using py2app) requires macholib>=1.2. |
---|
237 | zooko@zooko.com**20090703175702 |
---|
238 | Ignore-this: ea489a5076f2c9f20f6bfd2807cc5680 |
---|
239 | Here is someone else's description of this problem: |
---|
240 | http://rtmpy.org/ticket/7 |
---|
241 | ] |
---|
242 | [clean up debian packaging: we have control files for etch/lenny/sid, and |
---|
243 | "Brian Warner <warner@lothar.com>"**20090703072804 |
---|
244 | everything else uses one of those. Add dependency on python-pysqlite2 for |
---|
245 | platforms that use py2.4 by default. Update foolscap dependency to 0.4.1. |
---|
246 | ] |
---|
247 | [update NEWS to cover all recent changes, sort by end-user importance |
---|
248 | Brian Warner <warner@lothar.com>**20090703014303 |
---|
249 | Ignore-this: 6ddac78075d7547a19712d505818949c |
---|
250 | ] |
---|
251 | [Tolerate unknown URI types in directory structures. Part of #683. |
---|
252 | Brian Warner <warner@lothar.com>**20090703010749 |
---|
253 | Ignore-this: afd0e15e2e39d3b87743ec7ccd87054d |
---|
254 | |
---|
255 | The idea is that future versions of Tahoe will add new URI types that this |
---|
256 | version won't recognize, but might store them in directories that we *can* |
---|
257 | read. We should handle these "objects from the future" as best we can. |
---|
258 | Previous releases of Tahoe would just explode. With this change, we'll |
---|
259 | continue to be able to work with everything else in the directory. |
---|
260 | |
---|
261 | The code change is to wrap anything we don't recognize as an UnknownNode |
---|
262 | instance (as opposed to a FileNode or DirectoryNode). Then webapi knows how |
---|
263 | to render these (mostly by leaving fields blank), deep-check knows to skip |
---|
264 | over them, deep-stats counts them in "count-unknown". You can rename and |
---|
265 | delete these things, but you can't add new ones (because we wouldn't know how |
---|
266 | to generate a readcap to put into the dirnode's rocap slot, and because this |
---|
267 | lets us catch typos better). |
---|
268 | ] |
---|
269 | [test_client.py: minor refactoring of BASECONFIG usage |
---|
270 | Brian Warner <warner@lothar.com>**20090703005450 |
---|
271 | Ignore-this: bf19b9ae7edeab293068cce2368f9364 |
---|
272 | ] |
---|
273 | [create_node_from_uri: take both writecap+readcap, move logic out of dirnode.py |
---|
274 | Brian Warner <warner@lothar.com>**20090702222537 |
---|
275 | Ignore-this: 93051498076e90d3f1dc85161ce8247a |
---|
276 | ] |
---|
277 | [dirnode.py: prepare to preserve both rwcap+rocap when copying |
---|
278 | Brian Warner <warner@lothar.com>**20090702211254 |
---|
279 | Ignore-this: f128c02da32f86d7e39527a35dfc2e02 |
---|
280 | |
---|
281 | This will make it easier to tolerate unknown nodes safely. |
---|
282 | ] |
---|
283 | [interfaces.py: wrap some lines to 80cols |
---|
284 | Brian Warner <warner@lothar.com>**20090702015728 |
---|
285 | Ignore-this: e2c777c1e89a684b43ceabeb0042456c |
---|
286 | ] |
---|
287 | [cli: webopen: when called with no arguments, open the Welcome page |
---|
288 | Brian Warner <warner@lothar.com>**20090701200548 |
---|
289 | Ignore-this: ae7d6cb42165d0c751926065378343dd |
---|
290 | ] |
---|
291 | [mutable repairer: skip repair of readcaps instead of throwing an exception. |
---|
292 | Brian Warner <warner@lothar.com>**20090701011343 |
---|
293 | Ignore-this: 2c24493426cdc1db8f0e3815ee2c5f87 |
---|
294 | This should improve the behavior of #625 a bit: at least all the files will |
---|
295 | get repaired. |
---|
296 | ] |
---|
297 | [interfaces.py: improve ICheckAndRepairResults docs a bit |
---|
298 | Brian Warner <warner@lothar.com>**20090701001925 |
---|
299 | Ignore-this: 3a57acfee3487c1e071e135743e42c2a |
---|
300 | ] |
---|
301 | [repairer.py: wrap to 80cols. No code changes. |
---|
302 | Brian Warner <warner@lothar.com>**20090701000047 |
---|
303 | Ignore-this: 4a84ac95a849be0656d362882876082a |
---|
304 | ] |
---|
305 | [setup: require pycryptopp>=0.5.14 if on Windows and with Python>=2.6 |
---|
306 | zooko@zooko.com**20090630184807 |
---|
307 | Ignore-this: f7e9beeb5d5613a7c0ffed14d1dda3c6 |
---|
308 | ] |
---|
309 | [edit NEWS |
---|
310 | Brian Warner <warner@lothar.com>**20090630174115 |
---|
311 | Ignore-this: c4461a2304fcd45bee95e11418693a18 |
---|
312 | ] |
---|
313 | [NEWS: list all user-visible changes since 1.4.1 . Needs lots of editing. |
---|
314 | Brian Warner <warner@lothar.com>**20090630170734 |
---|
315 | Ignore-this: f606a5d678d0db8065b9f84e796d59b0 |
---|
316 | ] |
---|
317 | [* find-trailing-spaces.py: exit rc=1 if whitespace found, to be a pre-commit hook |
---|
318 | Brian Warner <warner@lothar.com>**20090629224658 |
---|
319 | Ignore-this: 1465becc923ee04d170e5ee791cf605e |
---|
320 | ] |
---|
321 | [use 522-bit RSA keys in all unit tests (except one) |
---|
322 | Brian Warner <warner@lothar.com>**20090629223124 |
---|
323 | Ignore-this: 7a4c3685683ff9da5ceb2d8cb7b19b7 |
---|
324 | |
---|
325 | This reduces the total test time on my laptop from 400s to 283s. |
---|
326 | * src/allmydata/test/test_system.py (SystemTest.test_mutable._test_debug): |
---|
327 | Remove assertion about container_size/data_size, this changes with keysize |
---|
328 | and was too variable anyways. |
---|
329 | * src/allmydata/mutable/filenode.py (MutableFileNode.create): add keysize= |
---|
330 | * src/allmydata/dirnode.py (NewDirectoryNode.create): same |
---|
331 | * src/allmydata/client.py (Client.DEFAULT_MUTABLE_KEYSIZE): add default, |
---|
332 | this overrides the one in MutableFileNode |
---|
333 | ] |
---|
334 | [remove trailing whitespace |
---|
335 | Brian Warner <warner@lothar.com>**20090629200358 |
---|
336 | Ignore-this: 7a3756618dcfca0a40acb4c3d15f6440 |
---|
337 | ] |
---|
338 | [remove trailing whitespace from some util classes |
---|
339 | Brian Warner <warner@lothar.com>**20090629200341 |
---|
340 | Ignore-this: ded84c38885d6aabf2691957dde82bf3 |
---|
341 | ] |
---|
342 | [repairer: raise a better exception when faced with a readonly filenode. Still |
---|
343 | Brian Warner <warner@lothar.com>**20090626063230 |
---|
344 | Ignore-this: a100005b973a6a57566b943073352828 |
---|
345 | produces an error, though. |
---|
346 | ] |
---|
347 | [mutable/filenode.py: set _writekey to None, rather than leaving it missing |
---|
348 | Brian Warner <warner@lothar.com>**20090626062022 |
---|
349 | Ignore-this: be111c37dabd6c7aa47abd7bf160926e |
---|
350 | |
---|
351 | This will at least turn the really really weird error when a repair of a |
---|
352 | readonly mutable file is attempted into a merely really weird assertion that |
---|
353 | mentions "repair currently requires a writecap". |
---|
354 | ] |
---|
355 | [one last tweak |
---|
356 | Brian Warner <warner@lothar.com>**20090626052627 |
---|
357 | Ignore-this: 8d9d045a1ebe774aeed6f7e1cdd36973 |
---|
358 | ] |
---|
359 | [more 'tahoe cp' docs tweaks |
---|
360 | Brian Warner <warner@lothar.com>**20090626051652 |
---|
361 | Ignore-this: f594c395007af64da3d7302943ef8855 |
---|
362 | ] |
---|
363 | [cli.py: minor tweaks to test posthooks |
---|
364 | "Brian Warner <warner@lothar.com>"**20090626024557] |
---|
365 | [cli.py: update comments on 'tahoe cp' --help a bit |
---|
366 | Brian Warner <warner@lothar.com>**20090626023837 |
---|
367 | Ignore-this: 4090b06896542fbf260d808e8a991cea |
---|
368 | ] |
---|
369 | [cli: add some --help text to 'tahoe cp' |
---|
370 | warner@lothar.com**20090625235751] |
---|
371 | [make it possible to add/renew-lease from the WUI |
---|
372 | Brian Warner <warner@lothar.com>**20090626061824 |
---|
373 | Ignore-this: 6fb6a0e8ecfc630464ac37a779078e5 |
---|
374 | add add/renew-lease checkbox on the "more info" page check/deep-check forms |
---|
375 | ] |
---|
376 | [hush pyflakes |
---|
377 | warner@lothar.com**20090625021809] |
---|
378 | [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. |
---|
379 | warner@lothar.com**20090625021707] |
---|
380 | [remove introducer/old.py, will create something similar when the RIIntroducer changes |
---|
381 | warner@lothar.com**20090624194038] |
---|
382 | [Basically just a trivial platform detection patch for NetBSD. |
---|
383 | midnightmagic@example.com**20090617233647] |
---|
384 | [check_grid.py: print stderr when a subcommand fails |
---|
385 | warner@lothar.com**20090623022833] |
---|
386 | [big rework of introducer client: change local API, split division of responsibilites better, remove old-code testing, improve error logging |
---|
387 | warner@lothar.com**20090623021047] |
---|
388 | [web/welcome.xhtml: remove trailing whitespace |
---|
389 | warner@lothar.com**20090623020909] |
---|
390 | [rrefutil: add trap_deafref utility, to make the callRemote-plus-ignore-DeadReferenceError-plug-log-other-errors pattern easier |
---|
391 | warner@lothar.com**20090623020826] |
---|
392 | [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. |
---|
393 | warner@lothar.com**20090623020731] |
---|
394 | [clean up storage_broker interface: should fix #732 |
---|
395 | warner@lothar.com**20090621235119 |
---|
396 | Ignore-this: fb93cd670e809eed2bc123142dd8d4ff |
---|
397 | ] |
---|
398 | [hush pyflakes with recent FileTooLarge removal |
---|
399 | warner@lothar.com**20090621231757 |
---|
400 | Ignore-this: 4231b38c7e9091b0577b07ec99ac2df0 |
---|
401 | ] |
---|
402 | [add docs/proposed/GridID.txt (cleaning out some of my old branches) |
---|
403 | warner@lothar.com**20090621191204] |
---|
404 | [docs: remove warning about inability to build modules on py2.6 on Windows with mingw, differentiate between clients and servers, reflow to a consistent column width (79), add hint about firewall/NAT docs. |
---|
405 | zooko@zooko.com**20090621175005 |
---|
406 | Ignore-this: 85e7c1ccb258317ca4dd37917afb48f5 |
---|
407 | ] |
---|
408 | [setup: copy in misc/show-tools-version.py from zfec -- it prints out platform and setuptools versions |
---|
409 | zooko@zooko.com**20090621055846 |
---|
410 | Ignore-this: 4e144886ab02414bbaaf0295ce2b337 |
---|
411 | ] |
---|
412 | [docs: start updating the NEWS and relnotes.txt files, add Kevan to CREDITS |
---|
413 | zooko@zooko.com**20090621055114 |
---|
414 | Ignore-this: 35e05a5739549ffa693d55df51ffcfd |
---|
415 | ] |
---|
416 | [change max filesize limit tests |
---|
417 | kevan@isnotajoke.com**20090620212822 |
---|
418 | Ignore-this: 38e7c62a308c3c93e79df4bf72f4f675 |
---|
419 | |
---|
420 | Instead of testing to see that the previous SDMF filesize limit was being |
---|
421 | obeyed, we now test to make sure that we can insert files larger than that |
---|
422 | limit. |
---|
423 | ] |
---|
424 | [remove upper limit on SDMF filesize |
---|
425 | kevan@isnotajoke.com**20090620213130 |
---|
426 | Ignore-this: 5bc48c7421c73827909a17e651799d0c |
---|
427 | ] |
---|
428 | [immutable/download: instrument do-you-have-block responses to investigate #732 |
---|
429 | warner@lothar.com**20090621041209] |
---|
430 | [Makefile: add jaunty support, rearrange debian sections in order of release |
---|
431 | warner@lothar.com**20090618050502] |
---|
432 | [test_util: add known-answer tests for hashutil tags |
---|
433 | warner@lothar.com**20090618045709] |
---|
434 | [tests: bump up a timeout that expired on Zandr's box |
---|
435 | zooko@zooko.com**20090613195703 |
---|
436 | Ignore-this: 853000f43665396b3734a99f72bd472d |
---|
437 | ] |
---|
438 | [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. |
---|
439 | zooko@zooko.com**20090613160112 |
---|
440 | Ignore-this: 8359cc48ca1b8e2793e8b2afe2050cf4 |
---|
441 | ] |
---|
442 | [util: Brian's horrible hack to figure out how much localtime and utctime differ. Now we'll see if it works on Windows. |
---|
443 | zooko@zooko.com**20090612204556 |
---|
444 | Ignore-this: 8c36431da4707da76472956c7750ecbd |
---|
445 | ] |
---|
446 | [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 |
---|
447 | zooko@zooko.com**20090612000920 |
---|
448 | Ignore-this: 7d314b8334cfa3f65f9635e3d3eb727e |
---|
449 | ] |
---|
450 | [setup: edit install.html to warn Windows users away from Python v2.6 |
---|
451 | zooko@zooko.com**20090611225506 |
---|
452 | Ignore-this: 89ad63eab49ede883ef92f2de5b5fc54 |
---|
453 | ] |
---|
454 | [util: fix time_format.iso_utc_time_to_seconds() so that it works even in London |
---|
455 | zooko@zooko.com**20090611221129 |
---|
456 | Ignore-this: 14dbb9840587797f848226fdb3645c08 |
---|
457 | ] |
---|
458 | [setup: run the same "make quicktest" on Windows as on non-Windows |
---|
459 | zooko@zooko.com**20090611193214 |
---|
460 | Ignore-this: d0c78377d3892373ec3d91e9e98bd8bd |
---|
461 | I checked and it behaves about as well on Windows as the previous version did. |
---|
462 | ] |
---|
463 | [tests: significantly increase timeouts that triggered on Zandr's ARM box |
---|
464 | zooko@zooko.com**20090610161043 |
---|
465 | Ignore-this: 2b3c556c5166a8267b4b15664d3aadfb |
---|
466 | ] |
---|
467 | [test: multiple by 10 or so all timeouts that Zandr's ARM box just overran |
---|
468 | zooko@zooko.com**20090610125639 |
---|
469 | Ignore-this: bf62f063ab46814fd78de55a5fbc9d84 |
---|
470 | ] |
---|
471 | [tests: bump up timeout on a test that timed out on draco |
---|
472 | zooko@zooko.com**20090610044628 |
---|
473 | Ignore-this: f598b98cbae44dc947937c6ca54c10cb |
---|
474 | ] |
---|
475 | [tests: raise the timeout for test_cli since Zandr's ARM machine totally burst through the old one |
---|
476 | zooko@zooko.com**20090609210509] |
---|
477 | [test_cli.Backup: increase timeout massively, it takes 1200s on zandr's ARM linkstation |
---|
478 | warner@lothar.com**20090609052801] |
---|
479 | [tests: double the timeouts on some tests which time-out on Francois's box |
---|
480 | zooko@zooko.com**20090609021753 |
---|
481 | Ignore-this: b2727b04402f24a9b9123d2f84068106 |
---|
482 | ] |
---|
483 | [tests: bump up timeouts so that the tests can finish before timeout on Francois's little arm box |
---|
484 | zooko@zooko.com**20090608225557 |
---|
485 | Ignore-this: fb83698338b2f12546cd3e1dcb896d34 |
---|
486 | ] |
---|
487 | [tests: increase timeouts on some other tests that timed-out on Francois's arm box |
---|
488 | zooko@zooko.com**20090605143437 |
---|
489 | Ignore-this: 2903cc20d914fc074c8d7a6c47740ba6 |
---|
490 | ] |
---|
491 | [tests: bump up the timeout on a bunch of tests that took longer than the default timeout (120s) on François Lenny-armv5tel |
---|
492 | zooko@zooko.com**20090605031444 |
---|
493 | Ignore-this: 84d67849b1f8edc88bf7001e31b5f7f3 |
---|
494 | ] |
---|
495 | [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 |
---|
496 | zooko@zooko.com**20090604173131 |
---|
497 | Ignore-this: 8200a9fdfc49243c280ecd1d0c44fa19 |
---|
498 | Fixes #728. |
---|
499 | ] |
---|
500 | [setup: require pysqlite >= v2.0.5. if we are running on Python < 2.5 |
---|
501 | zooko@zooko.com**20090604154548 |
---|
502 | Ignore-this: cf04f46079821df209d01dad2e24b40b |
---|
503 | ] |
---|
504 | [setup: add pysqlite and sqlite to get_package_versions() |
---|
505 | zooko@zooko.com**20090604153728 |
---|
506 | Ignore-this: a1dea7fabeab2b08fb0d8d462facdb4d |
---|
507 | ] |
---|
508 | [more refactoring: move get_all_serverids() and get_nickname_for_serverid() from Client to storage_broker |
---|
509 | warner@lothar.com**20090602030750] |
---|
510 | [more storage_broker refactoring: downloader gets a broker instead of a client, |
---|
511 | warner@lothar.com**20090602022511 |
---|
512 | use Client.get_storage_broker() accessor instead of direct attribute access. |
---|
513 | ] |
---|
514 | [test_runner.py: remove test_client_no_noise: the issue in question is |
---|
515 | warner@lothar.com**20090601225007 |
---|
516 | ticketed in http://divmod.org/trac/ticket/2830 and doesn't need a Tahoe-side |
---|
517 | change, plus this test fails on win32 for unrelated reasons (and test_client |
---|
518 | is the place to think about the win32 issue). |
---|
519 | ] |
---|
520 | [remove plaintext-hashing code from the helper interface, to close #722 |
---|
521 | warner@lothar.com**20090601224916 |
---|
522 | and deny the Helper the ability to mount a partial-information-guessing |
---|
523 | attack. This will probably break compatibility between new clients and very |
---|
524 | old (pre-1.0) helpers. |
---|
525 | ] |
---|
526 | [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 |
---|
527 | warner@lothar.com**20090601210604] |
---|
528 | [mutable: catch and display first error, so code bugs which break all servers get displayed better |
---|
529 | warner@lothar.com**20090601210407] |
---|
530 | [misc/run-with-pythonpath.py: exec() the child (on unix), to remove the intermediate process |
---|
531 | warner@lothar.com**20090601210137] |
---|
532 | [docs: small edit to about.html |
---|
533 | zooko@zooko.com**20090528233422 |
---|
534 | Ignore-this: 1cfbb1f8426ed6d63b2d3952e4464ddc |
---|
535 | ] |
---|
536 | [docs: add links to Tahoe-LAFS for Paranoids and Tahoe-LAFS for Corporates in about.html |
---|
537 | zooko@zooko.com**20090528232717 |
---|
538 | Ignore-this: 7b70baa700d6b6f6e9ceec4132efe5 |
---|
539 | ] |
---|
540 | [docs: edit about.html and include network-and-reliance-topology.png (loaded from http://allmydata.org ) |
---|
541 | zooko@zooko.com**20090527150916 |
---|
542 | Ignore-this: 44adc61cde8ced8be2f0a7dfc7d95dad |
---|
543 | ] |
---|
544 | [docs: a few more edits to network-and-reliance-topology.svg |
---|
545 | zooko@zooko.com**20090527150458 |
---|
546 | Ignore-this: 2eac8c33fe71be25ff809b399c6193c1 |
---|
547 | ] |
---|
548 | [docs: update network-and-reliance-topology.svg for beauty and clarity |
---|
549 | zooko@zooko.com**20090527031123 |
---|
550 | Ignore-this: 5510914849771900ac29b4312470d84 |
---|
551 | ] |
---|
552 | [docs: update NEWS, relnotes.txt, CREDITS to mention WUI Style |
---|
553 | zooko@zooko.com**20090526233654 |
---|
554 | Ignore-this: 72d16ec833bc4a22af23d29ea1d5ff8b |
---|
555 | ] |
---|
556 | [Modify markup of Tahoe web pages to be more amenable to styling; some minor changes of wording. |
---|
557 | Kevin Reid <kpreid@mac.com>**20090526232545 |
---|
558 | Ignore-this: 8845937f0df6c7ddc07abe3211428a6f |
---|
559 | ] |
---|
560 | [Tweak wording in directory page: not-read-only is "modifiable", mention creating a directory _in this directory_. |
---|
561 | Kevin Reid <kpreid@mac.com>**20090526232414 |
---|
562 | Ignore-this: f006ec52ba2051802e025a60bcface56 |
---|
563 | ] |
---|
564 | [Comment on duplication of code/markup found during styling project. |
---|
565 | Kevin Reid <kpreid@mac.com>**20090503203442 |
---|
566 | Ignore-this: a4b7f9f0ab57d2c03be9ba761be8d854 |
---|
567 | ] |
---|
568 | [Add CSS styles to spiff up the Tahoe WUI's appearance, particularly the welcome page and directories. |
---|
569 | Kevin Reid <kpreid@mac.com>**20090503203142 |
---|
570 | Ignore-this: 5c50af241c1a958b5180ef2b6a49f626 |
---|
571 | ] |
---|
572 | [Link all Tahoe web pages to the /tahoe_css stylesheet which already exists. |
---|
573 | Kevin Reid <kpreid@mac.com>**20090503202533 |
---|
574 | Ignore-this: 2ea8d14d3168b9502cf39d5ea3f2f2a8 |
---|
575 | ] |
---|
576 | [Fix broken link from Provisioning to Reliability page. |
---|
577 | Kevin Reid <kpreid@mac.com>**20090501191050 |
---|
578 | Ignore-this: 56dc1a5e659b70cc02dc4df7b5d518cd |
---|
579 | ] |
---|
580 | [docs: network-and-reliance-topology.svg: nicer server icons, mv out of the "specifications" subdir |
---|
581 | zooko@zooko.com**20090526165842 |
---|
582 | Ignore-this: 8f47ab3a0ab782c1f0d46e10bcaebe5b |
---|
583 | ] |
---|
584 | [docs: update network-and-reliance-topology.svg |
---|
585 | zooko@zooko.com**20090526163105 |
---|
586 | Ignore-this: 2b864b4ed8743d4a15dfbb7eff3fa561 |
---|
587 | ] |
---|
588 | [accounting-overview.txt: more edits |
---|
589 | warner@lothar.com**20090523190359] |
---|
590 | [accounting-overview.txt: small edits |
---|
591 | warner@lothar.com**20090523184011] |
---|
592 | [_auto_deps.py: require foolscap-0.4.1, which adds an important fix for py2.4 |
---|
593 | warner@lothar.com**20090523011103] |
---|
594 | [immutable/encode.py: tolerate immediate _remove_shareholder by copying the |
---|
595 | warner@lothar.com**20090522184424 |
---|
596 | landlord list before iterating over it. This can probably only happen in unit |
---|
597 | tests, but cleaning it up makes certain test failures easier to analyze. |
---|
598 | ] |
---|
599 | [switch to using RemoteException instead of 'wrapped' RemoteReferences. Should fix #653, the rref-EQ problem |
---|
600 | warner@lothar.com**20090522004632] |
---|
601 | [switch all foolscap imports to use foolscap.api or foolscap.logging |
---|
602 | warner@lothar.com**20090522003823] |
---|
603 | [_auto_deps.py: bump our foolscap dependency to 0.4.0, since I'm about to start using its new features |
---|
604 | warner@lothar.com**20090522002100] |
---|
605 | [test_runner.py: fix minor typo |
---|
606 | warner@lothar.com**20090520033620] |
---|
607 | [setup: fix bug (wrong import) in error message, as noticed by pyflakes |
---|
608 | zooko@zooko.com**20090519195642 |
---|
609 | Ignore-this: f1b9f8c00b46c1b5f2f20e5fc424f341 |
---|
610 | ] |
---|
611 | [setup: fix trivial bug in recent patch to test base64.py at startup |
---|
612 | zooko@zooko.com**20090519195129 |
---|
613 | Ignore-this: f6be038f74b53ca69e7109fe34adfbc |
---|
614 | ] |
---|
615 | [setup: make Tahoe exit at startup with a useful error message if the base64.py module is buggy (fixes part of #710) |
---|
616 | zooko@zooko.com**20090519194555 |
---|
617 | Ignore-this: aa4d398235ddca8d417d61c9688e154 |
---|
618 | ] |
---|
619 | [test_introducer.py: add a test for the python2.4.0/2.4.1 bug in base64.b32decode |
---|
620 | warner@lothar.com**20090519034101] |
---|
621 | [immutable WriteBucketProxy: use pipeline to speed up uploads by overlapping roundtrips, for #392 |
---|
622 | warner@lothar.com**20090518234422] |
---|
623 | [util/pipeline.py: new utility class to manage size-limited work pipelines, for #392 |
---|
624 | warner@lothar.com**20090518234326] |
---|
625 | [docs: add a diagram that I'm about to show to the Boulder Linux Users Group: network-and-reliance-topology.svg |
---|
626 | zooko@zooko.com**20090514232059 |
---|
627 | Ignore-this: 2420c0a7c254c9f0f2349d9130490d33 |
---|
628 | ] |
---|
629 | [tests: mark test_runner as coded in utf-8 instead of ascii |
---|
630 | zooko@zooko.com**20090507223151 |
---|
631 | Ignore-this: ccf1ba9e5a9b53602701a36f9fdb545e |
---|
632 | ] |
---|
633 | [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 |
---|
634 | zooko@zooko.com**20090507215012 |
---|
635 | Ignore-this: ba18fe6832ba255d4971e8f623ed7da5 |
---|
636 | ] |
---|
637 | [setup: fix comment in setup.py |
---|
638 | zooko@zooko.com**20090507215003 |
---|
639 | Ignore-this: c46ef664630d52733138ef7fbc551c1c |
---|
640 | ] |
---|
641 | [docs: how_to_make_a_tahoe_release.txt: a couple of small edits |
---|
642 | zooko@zooko.com**20090507214932 |
---|
643 | Ignore-this: ae92aa835ad369f4b9e6e49d681957a3 |
---|
644 | ] |
---|
645 | [.darcs-boringfile: also ignore .gitignore |
---|
646 | warner@allmydata.com**20090415210550 |
---|
647 | Ignore-this: d29db314a1e506f6240859559436b4c3 |
---|
648 | ] |
---|
649 | [.darcs-boringfile: ignore .git, I'm starting to play around with it |
---|
650 | warner@allmydata.com**20090415205929 |
---|
651 | Ignore-this: 89234453516483c9586cd6e1351e88b5 |
---|
652 | ] |
---|
653 | [fix quicktest: stop using setuptools, add misc/run-with-pythonpath.py, to make it run faster |
---|
654 | warner@lothar.com**20090414201400] |
---|
655 | [TAG allmydata-tahoe-1.4.1 |
---|
656 | zooko@zooko.com**20090414025636 |
---|
657 | Ignore-this: de78fc32364c83e9f4e26b5abcfdea4a |
---|
658 | ] |
---|
659 | Patch bundle hash: |
---|
660 | 5d7d71d2d1400991bb1f08d900950c404d60173f |
---|