Ticket #770: multi-listen.dpatch

File multi-listen.dpatch, 34.2 KB (added by swillden, at 2009-07-29T06:14:14Z)

Very simple multi-listener patch

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