Ticket #1693: tahoe-debug-flogtool.darcs.patch

File tahoe-debug-flogtool.darcs.patch, 88.6 KB (added by davidsarah, at 2012-03-25T14:13:36Z)
Line 
11 patch for repository /home/davidsarah/tahoe/trunky:
2
3Sun Mar 25 15:07:29 BST 2012  david-sarah@jacaranda.org
4  * Add 'tahoe debug flogtool' command, test for --help, and docs. refs #1693
5
6New patches:
7
8[Add 'tahoe debug flogtool' command, test for --help, and docs. refs #1693
9david-sarah@jacaranda.org**20120325140729
10 Ignore-this: f2064fd18b1c654deaef04dee2753ec6
11] {
12hunk ./docs/logging.rst 26
13 primarily for use by programmers and grid operators who want to find out what
14 went wrong.
15 
16-The foolscap logging system is documented at
17+The Foolscap logging system is documented at
18 `<http://foolscap.lothar.com/docs/logging.html>`_.
19 
20hunk ./docs/logging.rst 29
21-The foolscap distribution includes a utility named "``flogtool``" (usually at
22-``/usr/bin/flogtool`` on Unix) which is used to get access to many foolscap
23-logging features.
24+The Foolscap distribution includes a utility named "``flogtool``" that is
25+used to get access to many Foolscap logging features. However, using this
26+command directly on Tahoe log files may fail, due to use of an incorrect
27+PYTHONPATH. To avoid this problem, Tahoe-LAFS v1.9.2 and later include a
28+``tahoe debug flogtool`` command; to use this, prefix all of the example
29+commands below with ``tahoe debug``.
30+
31+For earlier versions since Tahoe-LAFS v1.8.2, installing Foolscap v0.6.1
32+or later and then running ``bin/tahoe @flogtool`` from the root of a
33+Tahoe-LAFS source distribution may work (but only on Unix, not Windows).
34+
35 
36 Realtime Logging
37 ================
38hunk ./src/allmydata/scripts/debug.py 8
39 from twisted.python import usage, failure
40 from twisted.internet import defer
41 from twisted.scripts import trial as twisted_trial
42+from foolscap.logging import cli as foolscap_cli
43 
44 
45 class DumpOptions(usage.Options):
46hunk ./src/allmydata/scripts/debug.py 1002
47     twisted_trial.run()
48 
49 
50+def fixSynopsis(t):
51+    i = t.find("Usage: flogtool ")
52+    if i >= 0:
53+        t = "Usage: tahoe debug flogtool " + t[i+len("Usage: flogtool "):]
54+    return t
55+
56+def fixOptionsClass(OptionsClass):
57+    class OptionsSubclass(OptionsClass):
58+        def getSynopsis(self):
59+            return fixSynopsis(OptionsClass.getSynopsis(self))
60+    return OptionsSubclass
61+
62+class FlogtoolOptions(foolscap_cli.Options):
63+    def __init__(self):
64+        super(FlogtoolOptions, self).__init__()
65+        self.subCommands = [(option, shortcut, fixOptionsClass(OptionsClass), desc)
66+                            for (option, shortcut, OptionsClass, desc) in self.subCommands]
67+
68+    def getSynopsis(self):
69+        return fixSynopsis(super(FlogtoolOptions, self).getSynopsis())
70+
71+    def parseOptions(self, all_subargs, *a, **kw):
72+        self.flogtool_args = list(all_subargs)
73+        return super(FlogtoolOptions, self).parseOptions(self.flogtool_args, *a, **kw)
74+
75+    def getUsage(self, width=None):
76+        t = super(FlogtoolOptions, self).getUsage(width)
77+        t += """
78+The 'tahoe debug flogtool' command uses the correct imports for this instance
79+of Tahoe-LAFS.
80+
81+Please run 'tahoe debug flogtool SUBCOMMAND --help' for more details on each
82+subcommand.
83+"""
84+        return t
85+
86+    def opt_help(self):
87+        print str(self)
88+        sys.exit(0)
89+
90+def flogtool(config):
91+    sys.argv = ['flogtool'] + config.flogtool_args
92+    return foolscap_cli.run_flogtool()
93+
94+
95 class DebugCommand(usage.Options):
96     subCommands = [
97         ["dump-share", None, DumpOptions,
98hunk ./src/allmydata/scripts/debug.py 1057
99         ["corrupt-share", None, CorruptShareOptions, "Corrupt a share by flipping a bit."],
100         ["repl", None, ReplOptions, "Open a Python interpreter."],
101         ["trial", None, TrialOptions, "Run tests using Twisted Trial with the right imports."],
102+        ["flogtool", None, FlogtoolOptions, "Utilities to access log files."],
103         ]
104     def postOptions(self):
105         if not hasattr(self, 'subOptions'):
106hunk ./src/allmydata/scripts/debug.py 1063
107             raise usage.UsageError("must specify a subcommand")
108     def getSynopsis(self):
109-        return "Usage: tahoe debug SUBCOMMAND"
110+        return ""
111     def getUsage(self, width=None):
112         #t = usage.Options.getUsage(self, width)
113hunk ./src/allmydata/scripts/debug.py 1066
114-        t = """
115+        t = """Usage: tahoe debug SUBCOMMAND
116 Subcommands:
117     tahoe debug dump-share      Unpack and display the contents of a share.
118     tahoe debug dump-cap        Unpack a read-cap or write-cap.
119hunk ./src/allmydata/scripts/debug.py 1075
120     tahoe debug corrupt-share   Corrupt a share by flipping a bit.
121     tahoe debug repl            Open a Python interpreter.
122     tahoe debug trial           Run tests using Twisted Trial with the right imports.
123+    tahoe debug flogtool        Utilities to access log files.
124 
125 Please run e.g. 'tahoe debug dump-share --help' for more details on each
126 subcommand.
127hunk ./src/allmydata/scripts/debug.py 1116
128     "corrupt-share": corrupt_share,
129     "repl": repl,
130     "trial": trial,
131+    "flogtool": flogtool,
132     }
133 
134 
135hunk ./src/allmydata/test/test_cli.py 692
136         self.failUnlessIn(" debug trial [options] [[file|package|module|TestCase|testmethod]...]", help)
137         self.failUnlessIn("The 'tahoe debug trial' command uses the correct imports", help)
138 
139+    def test_debug_flogtool(self):
140+        options = debug.FlogtoolOptions()
141+        help = str(options)
142+        self.failUnlessIn(" debug flogtool ", help)
143+        self.failUnlessIn("The 'tahoe debug flogtool' command uses the correct imports", help)
144+
145+        tailClass = [oClass for (option, shortcut, oClass, desc) in options.subCommands if option == "tail"][0]
146+        tailhelp = str(tailClass())
147+        self.failUnlessIn(" debug flogtool tail ", tailhelp)
148+
149 
150 class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
151 
152}
153
154Context:
155
156[Fix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids
157Brian Warner <warner@lothar.com>**20120318000135
158 Ignore-this: 79354457b77fe2d8534fc0b792b6eb0c
159 
160 This still leaves immutable-publish results incorrectly using tubids instead
161 of serverids. That will need some more work, since it might change the Helper
162 interface.
163]
164[IServer.get_name(): remove v0- prefix from displayed server names
165Brian Warner <warner@lothar.com>**20120318000135
166 Ignore-this: f3dc25be3ecca5935a4320ca53b70cad
167 
168 Don't remove the prefix if it isn't there: that avoids the need to fix tests
169 which use a bogus key (usually all-zeros).
170]
171[Fix a missing comma in the last patch. refs #1295
172david-sarah@jacaranda.org**20120314235040
173 Ignore-this: 34327ffeabed65759ad511760f925e47
174]
175[Temporarily suppress the DeprecationWarning about IFinishableConsumer; it's irritating, but not in a way that is likely to make me fix the underlying issue (#1525) any sooner :-). refs #1295
176david-sarah@jacaranda.org**20120314234729
177 Ignore-this: 2ab43c7893ed305a9d40023ec176d179
178]
179[minor: hush pyflakes, move pycryptopp dep to unconditional section
180Brian Warner <warner@lothar.com>**20120314062035
181 Ignore-this: 786fae44ad106c7924f8c9644ee0e48d
182 
183 Also change Makefile's "pyflakes" rule to emit less output, so buildbot will
184 count errors properly.
185]
186[new introducer: signed extensible dictionary-based messages! refs #466
187Brian Warner <warner@lothar.com>**20120314012432
188 Ignore-this: e87de488a26c11711cf6978c9fb1175c
189 
190 This introduces new client and server halves to the Introducer (renaming the
191 old one with a _V1 suffix). Both have fallbacks to accomodate talking to a
192 different version: the publishing client switches on whether the server's
193 .get_version() advertises V2 support, the server switches on which
194 subscription method was invoked by the subscribing client.
195 
196 The V2 protocol sends a three-tuple of (serialized announcement dictionary,
197 signature, pubkey) for each announcement. The V2 server dispatches messages
198 to subscribers according to the service-name, and throws errors for invalid
199 signatures, but does not otherwise examine the messages. The V2 receiver's
200 subscription callback will receive a (serverid, ann_dict) pair. The
201 'serverid' will be equal to the pubkey if all of the following are true:
202 
203   the originating client is V2, and was told a privkey to use
204   the announcement went through a V2 server
205   the signature is valid
206 
207 If not, 'serverid' will be equal to the tubid portion of the announced FURL,
208 as was the case for V1 receivers.
209 
210 Servers will create a keypair if one does not exist yet, stored in
211 private/server.privkey .
212 
213 The signed announcement dictionary puts the server FURL in a key named
214 "anonymous-storage-FURL", which anticipates upcoming Accounting-related
215 changes in the server advertisements. It also provides a key named
216 "permutation-seed-base32" to tell clients what permutation seed to use. This
217 is computed at startup, using tubid if there are existing shares, otherwise
218 the pubkey, to retain share-order compatibility for existing servers.
219]
220['tahoe admin generate-keypair/derive-pubkey': add Ed25519 keypair commands
221Brian Warner <warner@lothar.com>**20120314012432
222 Ignore-this: 6dff9c61d97f746de338027b72cf1912
223 
224 Also add parse_privkey/parse_pubkey tools to util.keyutil
225]
226[bump pycryptopp dependency to >=0.6.0, to get ed25519 signatures
227Brian Warner <warner@lothar.com>**20120314012432
228 Ignore-this: 6c1cf12a30567880ab2cc53c4282be11
229 
230 This is for the upcoming #466 signed-introducer code.
231]
232[Add nickname/nodeid to storage-status web page. Closes #1204.
233Brian Warner <warner@lothar.com>**20120313025736
234 Ignore-this: 78e533e06c390221edd66c45ec96e34a
235 
236 Also add tahoe.css to the page, to make it look slightly prettier.
237]
238[add some quick tests of the introducer/web improvements
239Brian Warner <warner@lothar.com>**20120312193536
240 Ignore-this: 9e31f368b1dfa586ab6e3f17707d9ec
241]
242[introducer web page: add CSS styling, roughly match client Welcome page
243Brian Warner <warner@lothar.com>**20120307022505
244 Ignore-this: bfc450f394578a3463f31acc1019862
245 
246 Also add /static and the top-level /tahoe.css -type stuff to the introducer's
247 web server.
248]
249[tahoe.css: fix #section typo, update welcome.xhtml to match
250Brian Warner <warner@lothar.com>**20120307022241
251 Ignore-this: 4e8a8382234aad017b093f8896b329d6
252 
253 The "#section" declaration (which matches id="section") should have been
254 ".section" (which matches class="section").
255 
256 The welcome page has a feature that I actually liked: the little "This
257 Client" sidebar sits just to the right of the start of the Controls block.
258 Fixing .section broke that (the clear:both introduces a gap, forcing the
259 Controls block to start strictly below the bottom of the This Client block).
260 So I also removed class="section" from the Controls block to allow them to
261 share the horizontal space again.
262]
263[Update copyright notices. refs #1686
264david-sarah@jacaranda.org**20120313205057
265 Ignore-this: a6a4904001412248c4164f002b52f79a
266]
267[Update find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a doc change; look out for compatibility problems.
268david-sarah@jacaranda.org**20120313203041
269 Ignore-this: fd18113695c2a524972c389e8b52e2e8
270]
271[Minor updates to URLs.
272david-sarah@jacaranda.org**20120313202853
273 Ignore-this: 2e5719e8cf19d7be73fbcba98dc1e5dd
274]
275[Update more links from http: to https: in documentation and comments.
276david-sarah@jacaranda.org**20120313202654
277 Ignore-this: 2c11cef35639b101412c024896256529
278]
279[Make the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes a test. fixes #1682
280david-sarah@jacaranda.org**20120308231758
281 Ignore-this: b639c3da453b95ee7edca8090ea1b9aa
282]
283[Update various references to allmydata.org or http://tahoe-lafs.org in comments, to https://tahoe-lafs.org. refs #1682
284david-sarah@jacaranda.org**20120308231719
285 Ignore-this: a71d00ea46af0a44e5c957df56d02adf
286]
287[Suppress a warning from win32eventreactor on Windows (patch v2). fixes #1681
288david-sarah@jacaranda.org**20120227190317
289 Ignore-this: c7efe1065d45a00caf182a1de812f4bb
290]
291[make provisioning/reliability work in the new location, fix tests
292Brian Warner <warner@lothar.com>**20120216222905
293 Ignore-this: 8a2923a54ca224fe69fe404e819aaaac
294]
295[remove 'provisioning'/'reliability' from WUI, add to misc/operations_helpers
296Brian Warner <warner@lothar.com>**20120216222905
297 Ignore-this: 4090c8ac99f139393d9573b65cbbfe0c
298 
299 Also remove docs related to reliability/provisioning pages
300]
301[provisioning.py: update disk sizes and usage numbers
302Brian Warner <warner@lothar.com>**20120213155708
303 Ignore-this: e47ee282bfba4beb2598b227add5250a
304]
305[configuration.rst: another attempt to fix formatting of sample tahoe.cfg.
306david-sarah@jacaranda.org**20120131000949
307 Ignore-this: bb67b6c9bb191a1335eaadfe9594fa4f
308]
309[configuration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg. Also fix the RST formatting of blank lines in the file.
310david-sarah@jacaranda.org**20120131000643
311 Ignore-this: 9c5327edf031d8578c19383d950b17b9
312]
313[Ensure that verification proceeds and stops when appropriate.
314Brian Warner <warner@lothar.com>**20120124205209
315 Ignore-this: 88278bbd6a3b33cf3b286feaa162ad02
316 
317 The removed assertions are appropriate for a download that seeks to
318 return plaintext to a caller; if we don't have at least k active remote
319 shares, then we can't hope to do that. They're not appropriate for a
320 verification operation; a user can try to verify a file that has fewer
321 than k shares available, so that shouldn't be treated as an error.
322 Instead, we proceed with fewer than k shares, and ensure that we
323 terminate the download if we have no shares at all and we're verifying.
324]
325[Add test_verify_mdmf_all_bad_sharedata
326Brian Warner <warner@lothar.com>**20120124205209
327 Ignore-this: 52acb4f0256af764acb038f7c8344367
328 
329 test_verify_mdmf_all_bad_sharedata tests for the regression described
330 in ticket 1648. In particular, it will trigger the misplaced assertion
331 in the share activation code. It also tests to make sure that
332 verification continues with fewer than k shares.
333]
334[Added clarification on how interface= works
335Brian Warner <warner@lothar.com>**20120124203821
336 Ignore-this: 57f86d178c8e4f3c62d15bf99dec7d0d
337]
338[FTP-and-SFTP.rst: minor edits
339Brian Warner <warner@lothar.com>**20120124203654
340 Ignore-this: ec21fadb85cf7b3192d32b02c03c3656
341]
342[Updated accounts.url directive per warner's suggestions
343Brian Warner <warner@lothar.com>**20120124203126
344 Ignore-this: 9297ec6406e11d4e1fe24ba3a06725e3
345]
346[Added information on accounts.url directive
347Brian Warner <warner@lothar.com>**20120124203126
348 Ignore-this: 6d6142418eabdad789a2fc68f26b3ba1
349]
350[docs: an extra newline to separate utf-8 BOF from comment for the sake of trac's rst renderer
351zooko@zooko.com**20120122212002
352 Ignore-this: 5c6d0dbfa1430681fa00494937537956
353]
354[docs: a newline between the utf-8 BOF and the comment in order to prevent trac from misrendering the comment
355zooko@zooko.com**20120122211856
356 Ignore-this: 5e92cb88ba46b82227338522b834b90d
357 sheesh
358]
359[docs: a comment to inform the (human) reader about encoding and to prevent someone from moving the title up to where it will interact with the utf-8 BOM and cause trac to mis-render the title
360zooko@zooko.com**20120122211731
361 Ignore-this: f7912a13ffba60408ec901a9586ce8a4
362]
363[docs: insert another newline between utf-8 BOF and title
364zooko@zooko.com**20120122211427
365 Ignore-this: 1b3861ef7d4531acfa61fac31e14fe98
366]
367[docs: insert newline after utf-8 BOF and before restructuredtext title
368zooko@zooko.com**20120122182127
369 Ignore-this: f947afe5bdfc9f44ba9bf7f0e585da7c
370]
371[docs: remove utf-8 "BOM" which confuses trac's rst renderer
372zooko@zooko.com**20120122140052
373 Ignore-this: ba58c59a314f23c65de5443bd7b6ffcb
374]
375[docs: try again to change RestructuredText titles to a format that trac will render
376zooko@zooko.com**20120122135613
377 Ignore-this: 588bbb627a95cd8317c809567cfa3e78
378]
379[docs: backdoors.rst: fix title formatting
380zooko@zooko.com**20120122135125
381 Ignore-this: 5bf980c1a8703ee353cd747ae343176a
382]
383[docs: backdoors.rst: stop using embedded URIs and tweak title so that trac will render it correctly; reflow to fill-column 77; M-x whitespace-cleanup
384zooko@zooko.com**20120122134319
385 Ignore-this: e1b5b3d2809040cfd7f13bb88ee8313d
386]
387[update release process: git, not darcs, etc
388Brian Warner <warner@lothar.com>**20120113071257
389 Ignore-this: 2eaa1f0e93dc545989bb1e62b2446e1e
390]
391[prepare to Org-ify how_to_make_a_tahoe-lafs_release: rename the file
392Brian Warner <warner@lothar.com>**20120113070153
393 Ignore-this: d9bb83dfd6c3b4c0ca0efd2adacdf63c
394]
395[.gitignore: ignore generated test-coverage files too
396Brian Warner <warner@lothar.com>**20120113065629
397 Ignore-this: 4411c7d620f5865b8c4dedef7e5a8c33
398]
399[merge relnotes, quickstart.rst from 1.9.1 release
400Brian Warner <warner@lothar.com>**20120112232420
401 Ignore-this: 6b535bb1a3bd5ea87ee12cc6b17eeb5c
402]
403[retrieve.py: unconditionally check share-hash-tree. Fixes #1654.
404Brian Warner <warner@lothar.com>**20120112213553
405 Ignore-this: 7ddc903a382b52bc014262b3b4099165
406 
407 Add Kevan's unit test, update known_issues.rst
408]
409[.gitignore: also ignore tahoe-deps and .tgz, to fix 'make tarballs'
410Brian Warner <warner@lothar.com>**20120112210925
411 Ignore-this: e8a7d942f123ee6bf4f2966ddc2742a3
412 
413 Otherwise, the get-version-from-git code thinks the tree is dirty, and
414 creates SUMO tarballs with -dirty in the name.
415]
416[Makefile: fix 'make-version' to use git-or-darcs, not just darcs
417Brian Warner <warner@lothar.com>**20120112210654
418 Ignore-this: ae32660458b5ab036ab98f0d1cf4e414
419]
420[_auto_deps.py: don't allow pycrypto 2.0.1. fixes #1631
421david-sarah@jacaranda.org**20120110195758
422 Ignore-this: de409a745c93a78b095dc72edd13a15d
423]
424[MANIFEST.in: make git-based 'setup.py sdist' match darcs
425Brian Warner <warner@lothar.com>**20120109234637
426 Ignore-this: 92bf7d679e9d5696994efe39c40ae216
427 
428 Previously, tarballs generated from a git tree were lacking a lot of
429 important non-code files, like docs/
430]
431[restore .gitignore, stop .darcs-boringfile it
432warner@lothar.com**20120109025243
433 Ignore-this: b37efcdab8662fe85660d68e3662b4b9
434]
435[remove setuptools_darcs.egg
436warner@lothar.com**20120108225545
437 Ignore-this: 39711cf7a9856acd5a136038d58ca5ff
438]
439[fix bundled data under git, remove setuptools_darcs
440Brian Warner <warner@lothar.com>**20120108221250
441 Ignore-this: ebfc0b267961523edd7e26c761b2554f
442 
443 This uses explicitly enumerated packages= and package_data= arguments to
444 setup(), rather than relying upon the convenient (but darcs-specific)
445 functions which would determine these values by asking the revision-control
446 system.
447 
448 Note that darcsver is still used, when building from a darcs tree.
449]
450[mutable/retrieve.py: clean up control flow to avoid dropping errors
451Brian Warner <warner@lothar.com>**20120108221248
452 Ignore-this: 4e991bdf6399439d2cee3d743814a327
453 
454 * replace DeferredList with gatherResults, simplify result handling
455 * use BadShareError to signal recoverable problems in either fetch or
456   validate, catch after _validate_block
457 * _validate_block is thus not responsible for noticing fetch problems
458 * rename _validation_or_decoding_failed() to _handle_bad_share()
459 * _get_needed_hashes() returns two Deferreds, instead of a hard-to-unpack
460   DeferredList
461]
462[mutable/layout.py: raise BadShareError instead of assert()
463Brian Warner <warner@lothar.com>**20120108221247
464 Ignore-this: 129891a807315f657b80576025135df8
465]
466[mutable: don't tell server about corruption unless it's really CorruptShareError
467Brian Warner <warner@lothar.com>**20120108221245
468 Ignore-this: 90da01af1008477c45d333a0f74f1c5b
469]
470[mutable: simplify Retrieve._process_segment() to use a gatherDeferred
471Brian Warner <warner@lothar.com>**20120108221244
472 Ignore-this: cfc7a56414889d02bffd747f1abad8ef
473]
474[Retrieve.decode(): simplify setup of DeferredList-like argument
475Brian Warner <warner@lothar.com>**20120108221240
476 Ignore-this: c92d377bf4d65251240e59c8db5452af
477 
478 make it more obviously match the expectations of _decode_blocks() and
479 _maybe_decode_and_decrypt_segment()
480]
481[mutable: add comments about the tricky DeferredList structures in retrieve
482Brian Warner <warner@lothar.com>**20120108221238
483 Ignore-this: da47db692fbdf11a3ce01a952a60d1a0
484]
485[add test-git-ignore.py, to port the 'clean' buildbot test to git
486Brian Warner <warner@lothar.com>**20120108221232
487 Ignore-this: 442efa1eacc27b7ae2690645ed997894
488 
489 add .gitignore to match .darcs-boringfile, mostly
490]
491[Add a Python 3 blocker to setup.py, to display a better error message when it is run under Python 3.
492david-sarah@jacaranda.org**20120127015525
493 Ignore-this: 5f032794ecc8cd6c512a7ab9efffed2
494]
495[Use a private/drop_upload_dircap file instead of the [drop_upload]upload.dircap option in tahoe.cfg. Fail if the upload.dircap option is used, or options are missing. Also updates tests and docs. fixes #1593
496david-sarah@jacaranda.org**20111120232426
497 Ignore-this: d4ea9154e98902c5de055b6de23c48f9
498]
499[test_mutable: don't use 75 shares (slow), now that the bug is fixed
500Brian Warner <warner@lothar.com>**20111228223819
501 Ignore-this: 930f1a24ebe9ed2ab25e4b2a16e36352
502 
503 I missed this part of Kevan's fix-1628.darcs.2.patch .
504]
505[mutable publish: fix not-enough-shares detection. Refs #1628.
506Brian Warner <warner@lothar.com>**20111228055018
507 Ignore-this: 23db08d8d630268e208e1755509adf92
508 
509 This should match the "fix-1628.darcs.2.patch" attachment on that ticket.
510]
511[mutable publish: track multiple servers-per-share. Fixes some of #1628.
512Brian Warner <warner@lothar.com>**20111228053358
513 Ignore-this: 6e8cb92e70273b81098f73ebf23164bd
514 
515 The remaining work is to write additional tests.
516 
517 src/allmydata/test/no_network.py:
518 
519  This supports tests in which servers leave the grid only to return with
520  their shares intact at a later time.
521 
522 src/allmydata/test/test_mutable.py:
523 
524  The UCWEs in the incident reports associated with #1628 all seem to be
525  associated with shares that the servermap knows about, but which aren't
526  accounted for during the publish process for whatever reason. Specifically,
527  it looks like the publisher is only capable of keeping track of a single
528  storage server for a given share. This makes the repair process worse than
529  it was pre-MDMF at updating all of the shares of a particular file to the
530  newest version, and can also cause spurious UCWEs. This test simulates such
531  a layout and fails if an UCWE is thrown. We need to write another test to
532  ensure that all copies of a share are updated to the latest version (or
533  alter this test to do that), so that the test suite doesn't pass unless both
534  regressions are fixed.
535 
536  We want the publisher to follow the existing share placement when uploading
537  a new version of a mutable file, and we don't want this test to pass unless
538  it does.
539 
540 src/allmydata/mutable/publish.py:
541 
542  Before this commit, the publisher only kept track of a single writer for
543  each share. This is insufficient to handle updates in which a single share
544  may live on multiple servers. In the best case, an update will only update
545  one of the existing shares instead of all of them. In some cases, the update
546  will encounter the existing shares when publishing some other share,
547  interpret it as a sign of an uncoordinated update, and fail. Keeping track
548  of all of the writers helps ensure that all existing shares are updated, and
549  helps avoid spurious uncoordinated write errors.
550]
551[docs: how_to_make_a_tahoe-lafs_release.rst add Google+ page to publicity list, change to cute unicode checkboxes
552zooko@zooko.com**20111226151905
553 Ignore-this: c7c1e67761df48fa11c0dad1847c2d8
554]
555[doc: about.rst: use unicode emdash, use non-embedded URIs, add clarificaiton of when a file gets its mutable-or-immutable nature
556zooko@zooko.com**20111206171908
557 Ignore-this: 61bc3f1582c68dcc9867da964fc9bb3a
558 embedded URIs, although documented here:
559 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris
560 generate messages like this from rst2html --verbose:
561 
562 quickstart.rst:3: (INFO/1) Duplicate explicit target name: "the tahoe-dev mailing list".
563 
564 Also this patch prepends a "utf-8 BOM" to the beginning of the file.
565]
566[minor cleanup: remove trailing spaces in misc/
567Brian Warner <warner@lothar.com>**20111218201841
568 Ignore-this: 69a8904c17d8fd930442d00e24b7b188
569]
570[Tests for ref #1592.
571david-sarah@jacaranda.org**20111217043130
572 Ignore-this: a6713500ebe2d686581c6743b8a88f60
573]
574[test_web.py cleanup: use failUnlessIn/failIfIn in preference to 'in' operator.
575david-sarah@jacaranda.org**20111217042710
576 Ignore-this: c351f4b1d162eca545ba657dc3c70c19
577]
578[Marcus Wanner's favicon patch. fixes #1592
579david-sarah@jacaranda.org**20111217033201
580 Ignore-this: 3528c920379fe0d157441dafe9a7c5a8
581]
582[setup.py: stop putting pyutil.version_class/etc in _version.py
583Brian Warner <warner@lothar.com>**20111205055049
584 Ignore-this: 926fa9a8a34a04f24ee6e006423e9c1
585 
586 allmydata.__version__ can just be a string, it doesn't need to be an instance
587 of some fancy NormalizedVersion class. Everything inside Tahoe uses
588 str(__version__) anyways.
589 
590 Also add .dev0 when a git tree is dirty.
591 
592 Closes #1466
593]
594[setup.py: get version from git or darcs
595Brian Warner <warner@lothar.com>**20111205044001
596 Ignore-this: 5a406b33000446d85edc722298391220
597 
598 This replaces the setup.cfg aliases that run "darcsver" before each major
599 command with the new "update_version". update_version is defined in setup.py,
600 and tries to get a version string from either darcs or git (or leaves the
601 existing _version.py alone if neither VC metadata is available).
602 
603 Also clean up a tiny typo in verlib.py that messed up syntax hilighting.
604]
605[docs/known_issues.rst: describe when the unauthorized access attack is known to be possible, and fix a link.
606david-sarah@jacaranda.org**20111118002013
607 Ignore-this: d89b1f1040a0a7ee0bde893d23612049
608]
609[more tiny buildbot-testing whitespace changes
610warner@lothar.com**20111118002041
611 Ignore-this: e816e2a5ab939e2f7a89ef12b8a157d8
612]
613[more tiny buildbot-testing whitespace changes
614warner@lothar.com**20111118001828
615 Ignore-this: 57bb52cba83ea9a19728ba0a8ffadb69
616]
617[tiny change to exercise the buildbot hook
618warner@lothar.com**20111118001511
619 Ignore-this: 7220b7790b39f19f9721d9e93b755030
620]
621[Strengthen description of unauthorized access attack in known_issues.rst.
622david-sarah@jacaranda.org**20111118000030
623 Ignore-this: e2f68f621fe666b6201542623aa4d182
624]
625[remove remaining uses of nevow's "formless" module
626Brian Warner <warner@lothar.com>**20111117225423
627 Ignore-this: a128dea91a1c63b3bbefa34729344d69
628 
629 We're slowly moving away from Nevow, and marcusw's previous patch removed
630 uses of the formless CSS file, so now we can stop testing that nevow can find
631 that file, and remove the lingering unused "import formless" call.
632]
633[1585-webui.darcs.patch
634Marcus Wanner <marcus@wanners.net>**20111117214923
635 Ignore-this: 23cf2a06c545be5f821c071d652178ee
636]
637[Remove duplicate tahoe_css links from manifest.xhtml and rename-form.xhtml
638Brian Warner <warner@lothar.com>**20111116224225
639 Ignore-this: 12024fff17964607799928928b9aadf3
640 
641 They were probably meant to be links to webform_css, but we aren't really
642 using Nevow's form-generation code anyways, so they can just be removed.
643 Thanks to 'marcusw' for the catch.
644]
645[iputil: handle openbsd5 (just like openbsd4)
646Brian Warner <warner@lothar.com>**20111115220423
647 Ignore-this: 64b28bd2fd06eb5230ea41d91540dd05
648 
649 Patch by 'sickness'. Closes #1584
650]
651[Makefile count-lines: let it work on OS-X (-l not --lines), add XXX
652Brian Warner <warner@lothar.com>**20111109184227
653 Ignore-this: 204ace1dadc9ed27543c62965b4e6757
654 
655 OS-X's simple-minded /usr/bin/wc doesn't understand --lines, but everyone
656 understands -l .
657]
658[setup.py: umask=022 for 'sdist', to avoid depending on environment
659Brian Warner <warner@lothar.com>**20111109183632
660 Ignore-this: acd5db88ba8f1972d618b14f9e5b803c
661 
662 The new tarball-building buildslave had a bogus umask set, causing the 1.9.0
663 tarballs to be non-other-user-readable (go-rwx), which is a hassle for
664 packaging. (The umask was correct on the old buildslave, but it was moved to
665 a new host shortly before the release). This should make sure tarballs are
666 correct despite the host's setting.
667 
668 Note to others: processes run under twistd get umask=077 unless you arrange
669 otherwise.
670]
671[_auto_deps.py: blacklist PyCrypto 2.4.
672david-sarah@jacaranda.org**20111105022457
673 Ignore-this: 876cb24bc71589e735f48bf449cad81e
674]
675[check-miscaptures.py: report the number of files that were not analysed due to syntax errors (and don't count them in the number of suspicious captures). refs #1555
676david-sarah@jacaranda.org**20111009050301
677 Ignore-this: 62ee03f4b8a96c292e75c097ad87d52e
678]
679[check-miscaptures.py: handle corner cases around default arguments correctly. Also make a minor optimization when there are no assigned variables to consider. refs #1555
680david-sarah@jacaranda.org**20111009045023
681 Ignore-this: f49ece515620081da1d745ae6da19d21
682]
683[check-miscaptures.py: Python doesn't really have declarations; report the topmost assignment. refs #1555
684david-sarah@jacaranda.org**20111009044800
685 Ignore-this: 4905c9dfe7726f433333e216a6760a4b
686]
687[check-miscaptures.py: handle destructuring function arguments correctly. refs #1555
688david-sarah@jacaranda.org**20111009044710
689 Ignore-this: f9de7d95e94446507a206c88d3f98a23
690]
691[check-miscaptures.py: check while loops and list comprehensions as well as for loops. Also fix a pyflakes warning. refs #1555
692david-sarah@jacaranda.org**20111009044022
693 Ignore-this: 6526e4e315ca6461b1fbc2da5568e444
694]
695[Add misc/coding_tools/check-miscaptures.py to detect incorrect captures of variables declared in a for loop, and a 'make check-miscaptures' Makefile target to run it. (It is also run by 'make code-checks'.) This is a rewritten version that reports much fewer false positives, by determining captured variables more accurately. fixes #1555
696david-sarah@jacaranda.org**20111007074121
697 Ignore-this: 51318e9678d132c374ea557ab955e79e
698]
699[Fix pyflakes warnings in misc/ directories other than misc/build_helpers. refs #1557
700david-sarah@jacaranda.org**20111007033031
701 Ignore-this: 7daf5862469732d8cabc355266622b74
702]
703[Makefile: include misc/ directories other than misc/build_helpers in SOURCES. refs #1557
704david-sarah@jacaranda.org**20111007032958
705 Ignore-this: 31376ec01401df7972e83341dc65aa05
706]
707[show-tool-versions: tolerate missing setuptools
708Brian Warner <warner@lothar.com>**20111101080010
709 Ignore-this: 72d4e440565273992beb4f010cbca699
710]
711[show-tool-versions.py: condense output, hide file-not-found exceptions
712Brian Warner <warner@lothar.com>**20111101074532
713 Ignore-this: a15381a76077ef46a74a4ac40c9ae956
714]
715[relnotes.txt: fix footnotes
716Brian Warner <warner@lothar.com>**20111101071935
717 Ignore-this: 668c1bd8618e21beed9bc6b23f048189
718]
719[Rewrite download-status-timeline visualizer ('viz') with d3.js
720Brian Warner <warner@lothar.com>**20111101061821
721 Ignore-this: 6149b027bbae52c559ef5a8167240cab
722 
723 * use d3.js v2.4.6
724 * add a "toggle misc events" button, to get hash/bitmap-checking details
725 * only draw data that's on screen, for speed
726 * add fragment-arg to fetch timeline data.json from somewhere else
727]
728[IServer refactoring: pass IServer instances around, instead of peerids
729Brian Warner <warner@lothar.com>**20111101040319
730 Ignore-this: 35e4698a0273a0311fe0ccedcc7881b5
731 
732 refs #1363
733 
734 This collapses 88 small incremental changes (each of which passes all tests)
735 into one big patch. The development process for the long path started with
736 adding some temporary scaffolding, changing one method at a time, then
737 removing the scaffolding. The individual pieces are as follows, in reverse
738 chronological order (the first patch is at the end of this comment):
739 
740  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
741  Author: Brian Warner <warner@lothar.com>
742  Date:   Tue Oct 4 16:05:00 2011 -0400
743 
744      immutable/downloader/status.py: correct comment
745 
746   src/allmydata/immutable/downloader/status.py |    2 +-
747   1 files changed, 1 insertions(+), 1 deletions(-)
748 
749  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
750  Author: Brian Warner <warner@lothar.com>
751  Date:   Tue Oct 4 15:46:20 2011 -0400
752 
753      remove temporary ServerMap._storage_broker
754 
755   src/allmydata/mutable/checker.py   |    2 +-
756   src/allmydata/mutable/filenode.py  |    2 +-
757   src/allmydata/mutable/publish.py   |    2 +-
758   src/allmydata/mutable/servermap.py |    5 ++---
759   src/allmydata/test/test_mutable.py |    8 ++++----
760   5 files changed, 9 insertions(+), 10 deletions(-)
761 
762  commit d703096b41632c47d76414b12672e076a422ff5c
763  Author: Brian Warner <warner@lothar.com>
764  Date:   Tue Oct 4 15:37:05 2011 -0400
765 
766      remove temporary storage_broker.get_server_for_id()
767 
768   src/allmydata/storage_client.py  |    3 ---
769   src/allmydata/test/no_network.py |   13 -------------
770   2 files changed, 0 insertions(+), 16 deletions(-)
771 
772  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
773  Author: Brian Warner <warner@lothar.com>
774  Date:   Tue Oct 4 12:50:06 2011 -0400
775 
776      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
777 
778   src/allmydata/mutable/retrieve.py |   10 +++++-----
779   1 files changed, 5 insertions(+), 5 deletions(-)
780 
781  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
782  Author: Brian Warner <warner@lothar.com>
783  Date:   Tue Oct 4 12:48:08 2011 -0400
784 
785      API of Retrieve._validate_block(), trying to remove reader.server
786 
787   src/allmydata/mutable/retrieve.py |   14 +++++++-------
788   1 files changed, 7 insertions(+), 7 deletions(-)
789 
790  commit 572d5070761861a2190349d1ed8d85dbc25698a5
791  Author: Brian Warner <warner@lothar.com>
792  Date:   Tue Oct 4 12:36:58 2011 -0400
793 
794      API of Retrieve._mark_bad_share(), trying to remove reader.server
795 
796   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
797   1 files changed, 9 insertions(+), 12 deletions(-)
798 
799  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
800  Author: Brian Warner <warner@lothar.com>
801  Date:   Tue Oct 4 12:06:13 2011 -0400
802 
803      remove now-unused get_rref_for_serverid()
804 
805   src/allmydata/mutable/servermap.py |    3 ---
806   1 files changed, 0 insertions(+), 3 deletions(-)
807 
808  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
809  Author: Brian Warner <warner@lothar.com>
810  Date:   Tue Oct 4 12:03:09 2011 -0400
811 
812      Retrieve: stop adding .serverid attributes to readers
813 
814   src/allmydata/mutable/retrieve.py |    1 -
815   1 files changed, 0 insertions(+), 1 deletions(-)
816 
817  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
818  Author: Brian Warner <warner@lothar.com>
819  Date:   Tue Oct 4 12:03:34 2011 -0400
820 
821      return value of Retrieve(verify=True)
822 
823   src/allmydata/mutable/checker.py  |   11 ++++++-----
824   src/allmydata/mutable/retrieve.py |    3 +--
825   2 files changed, 7 insertions(+), 7 deletions(-)
826 
827  commit e9ab7978c384e1f677cb7779dc449b1044face82
828  Author: Brian Warner <warner@lothar.com>
829  Date:   Tue Oct 4 11:54:23 2011 -0400
830 
831      Retrieve._bad_shares (but not return value, used by Verifier)
832 
833   src/allmydata/mutable/retrieve.py |    7 ++++---
834   1 files changed, 4 insertions(+), 3 deletions(-)
835 
836  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
837  Author: Brian Warner <warner@lothar.com>
838  Date:   Tue Oct 4 11:51:23 2011 -0400
839 
840      Publish: stop adding .serverid attributes to writers
841 
842   src/allmydata/mutable/publish.py |    9 ++-------
843   1 files changed, 2 insertions(+), 7 deletions(-)
844 
845  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
846  Author: Brian Warner <warner@lothar.com>
847  Date:   Tue Oct 4 11:56:33 2011 -0400
848 
849      API of get_write_enabler()
850 
851   src/allmydata/mutable/filenode.py |    7 ++++---
852   src/allmydata/mutable/publish.py  |    4 ++--
853   src/allmydata/test/no_network.py  |    3 +++
854   3 files changed, 9 insertions(+), 5 deletions(-)
855 
856  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
857  Author: Brian Warner <warner@lothar.com>
858  Date:   Tue Oct 4 11:46:24 2011 -0400
859 
860      API of get_(renewal|cancel)_secret()
861 
862   src/allmydata/mutable/filenode.py  |   14 ++++++++------
863   src/allmydata/mutable/publish.py   |    8 ++++----
864   src/allmydata/mutable/servermap.py |    5 ++---
865   3 files changed, 14 insertions(+), 13 deletions(-)
866 
867  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
868  Author: Brian Warner <warner@lothar.com>
869  Date:   Tue Oct 4 11:41:52 2011 -0400
870 
871      API of CorruptShareError. Also comment out some related+unused test_web.py code
872 
873   src/allmydata/mutable/common.py    |   13 +++++--------
874   src/allmydata/mutable/retrieve.py  |   10 +++++-----
875   src/allmydata/mutable/servermap.py |    8 +++-----
876   src/allmydata/test/common.py       |   13 ++++++++-----
877   4 files changed, 21 insertions(+), 23 deletions(-)
878 
879  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
880  Author: Brian Warner <warner@lothar.com>
881  Date:   Tue Oct 4 12:01:46 2011 -0400
882 
883      API of ServerMap.mark_bad_share()
884 
885   src/allmydata/mutable/publish.py   |    2 +-
886   src/allmydata/mutable/retrieve.py  |    6 +++---
887   src/allmydata/mutable/servermap.py |    6 ++----
888   src/allmydata/test/test_mutable.py |    3 +--
889   4 files changed, 7 insertions(+), 10 deletions(-)
890 
891  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
892  Author: Brian Warner <warner@lothar.com>
893  Date:   Tue Oct 4 11:11:17 2011 -0400
894 
895      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
896 
897   src/allmydata/mutable/servermap.py |    7 ++-----
898   src/allmydata/test/test_mutable.py |    6 +++---
899   2 files changed, 5 insertions(+), 8 deletions(-)
900 
901  commit 2d32e448677d6b818692e801045d4115b29abf21
902  Author: Brian Warner <warner@lothar.com>
903  Date:   Tue Oct 4 11:07:10 2011 -0400
904 
905      API of ServerMap.all_servers_for_version()
906 
907   src/allmydata/mutable/servermap.py |    4 ++--
908   1 files changed, 2 insertions(+), 2 deletions(-)
909 
910  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
911  Author: Brian Warner <warner@lothar.com>
912  Date:   Tue Oct 4 11:04:50 2011 -0400
913 
914      internals of ServerMap methods that use make_versionmap(), remove temp copy
915 
916   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
917   1 files changed, 10 insertions(+), 18 deletions(-)
918 
919  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
920  Author: Brian Warner <warner@lothar.com>
921  Date:   Tue Oct 4 11:01:28 2011 -0400
922 
923      API of ServerMap.make_versionmap()
924 
925   src/allmydata/mutable/checker.py   |    4 ++--
926   src/allmydata/mutable/retrieve.py  |    5 ++---
927   src/allmydata/mutable/servermap.py |    4 ++--
928   src/allmydata/test/test_mutable.py |    7 ++++---
929   4 files changed, 10 insertions(+), 10 deletions(-)
930 
931  commit b6882ece49afb4c507d118af2db346fa329209dc
932  Author: Brian Warner <warner@lothar.com>
933  Date:   Tue Oct 4 10:53:38 2011 -0400
934 
935      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
936 
937   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
938   1 files changed, 13 insertions(+), 5 deletions(-)
939 
940  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
941  Author: Brian Warner <warner@lothar.com>
942  Date:   Tue Oct 4 00:45:58 2011 -0400
943 
944      API of RetrieveStatus.add_problem()
945 
946   src/allmydata/mutable/retrieve.py |    5 +++--
947   1 files changed, 3 insertions(+), 2 deletions(-)
948 
949  commit 4976d29ffae565a048851601c29013bbae2976d8
950  Author: Brian Warner <warner@lothar.com>
951  Date:   Tue Oct 4 00:45:05 2011 -0400
952 
953      API of RetrieveStatus.add_fetch_timing()
954 
955   src/allmydata/mutable/retrieve.py |    5 +++--
956   1 files changed, 3 insertions(+), 2 deletions(-)
957 
958  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
959  Author: Brian Warner <warner@lothar.com>
960  Date:   Tue Oct 4 00:44:04 2011 -0400
961 
962      API of Retrieve.notify_server_corruption()
963 
964   src/allmydata/mutable/retrieve.py |    6 +++---
965   1 files changed, 3 insertions(+), 3 deletions(-)
966 
967  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
968  Author: Brian Warner <warner@lothar.com>
969  Date:   Tue Oct 4 00:42:32 2011 -0400
970 
971      remove unused _outstanding_queries
972 
973   src/allmydata/mutable/retrieve.py |    1 -
974   1 files changed, 0 insertions(+), 1 deletions(-)
975 
976  commit 56d12cc9968d03ccd53764455c671122c4f391d1
977  Author: Brian Warner <warner@lothar.com>
978  Date:   Tue Oct 4 00:40:57 2011 -0400
979 
980      change Retrieve.remaining_sharemap
981 
982   src/allmydata/mutable/retrieve.py |    4 ++--
983   1 files changed, 2 insertions(+), 2 deletions(-)
984 
985  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
986  Author: Brian Warner <warner@lothar.com>
987  Date:   Tue Oct 4 10:40:18 2011 -0400
988 
989      accessor for PublishStatus._problems
990 
991   src/allmydata/mutable/publish.py |    4 +++-
992   src/allmydata/web/status.py      |    2 +-
993   2 files changed, 4 insertions(+), 2 deletions(-)
994 
995  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
996  Author: Brian Warner <warner@lothar.com>
997  Date:   Tue Oct 4 10:36:39 2011 -0400
998 
999      accessor for RetrieveStatus._problems
1000 
1001   src/allmydata/mutable/retrieve.py |    8 ++++++--
1002   src/allmydata/web/status.py       |    2 +-
1003   2 files changed, 7 insertions(+), 3 deletions(-)
1004 
1005  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1006  Author: Brian Warner <warner@lothar.com>
1007  Date:   Tue Oct 4 00:35:32 2011 -0400
1008 
1009      add .server to "reader", so we can get at it later
1010 
1011   src/allmydata/mutable/retrieve.py |    5 +++--
1012   1 files changed, 3 insertions(+), 2 deletions(-)
1013 
1014  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1015  Author: Brian Warner <warner@lothar.com>
1016  Date:   Tue Oct 4 00:32:32 2011 -0400
1017 
1018      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1019 
1020   src/allmydata/mutable/checker.py   |    3 ++-
1021   src/allmydata/mutable/filenode.py  |    6 ++++--
1022   src/allmydata/mutable/retrieve.py  |    5 +++--
1023   src/allmydata/test/test_mutable.py |    4 ++--
1024   4 files changed, 11 insertions(+), 7 deletions(-)
1025 
1026  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1027  Author: Brian Warner <warner@lothar.com>
1028  Date:   Tue Oct 4 00:21:51 2011 -0400
1029 
1030      mutable/retrieve.py: s/peer/server/
1031 
1032   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1033   src/allmydata/test/test_mutable.py |    6 +-
1034   2 files changed, 44 insertions(+), 44 deletions(-)
1035 
1036  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1037  Author: Brian Warner <warner@lothar.com>
1038  Date:   Tue Oct 4 00:16:01 2011 -0400
1039 
1040      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1041 
1042   src/allmydata/web/status.py |    2 ++
1043   1 files changed, 2 insertions(+), 0 deletions(-)
1044 
1045  commit 311466dd8c931bbba40d590ade867704282e7f1a
1046  Author: Brian Warner <warner@lothar.com>
1047  Date:   Mon Oct 3 23:48:16 2011 -0400
1048 
1049      API of PublishStatus.add_per_server_time()
1050 
1051   src/allmydata/mutable/publish.py |    5 +++--
1052   1 files changed, 3 insertions(+), 2 deletions(-)
1053 
1054  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1055  Author: Brian Warner <warner@lothar.com>
1056  Date:   Mon Oct 3 23:46:37 2011 -0400
1057 
1058      more simplifications
1059 
1060   src/allmydata/mutable/publish.py |    4 +---
1061   1 files changed, 1 insertions(+), 3 deletions(-)
1062 
1063  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1064  Author: Brian Warner <warner@lothar.com>
1065  Date:   Mon Oct 3 23:44:08 2011 -0400
1066 
1067      API of ServerMap.version_on_server()
1068 
1069   src/allmydata/mutable/publish.py   |    2 +-
1070   src/allmydata/mutable/servermap.py |    4 ++--
1071   src/allmydata/test/test_mutable.py |    5 ++---
1072   3 files changed, 5 insertions(+), 6 deletions(-)
1073 
1074  commit 3e187e322511072e4683329df6b2c6c733a66dba
1075  Author: Brian Warner <warner@lothar.com>
1076  Date:   Tue Oct 4 00:16:32 2011 -0400
1077 
1078      API of ServerMap.make_sharemap()
1079 
1080   src/allmydata/mutable/servermap.py |    4 ++--
1081   src/allmydata/test/test_mutable.py |    7 ++++---
1082   src/allmydata/web/status.py        |    4 ++--
1083   3 files changed, 8 insertions(+), 7 deletions(-)
1084 
1085  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1086  Author: Brian Warner <warner@lothar.com>
1087  Date:   Mon Oct 3 23:36:19 2011 -0400
1088 
1089      small cleanups
1090 
1091   src/allmydata/mutable/publish.py |    4 ++--
1092   1 files changed, 2 insertions(+), 2 deletions(-)
1093 
1094  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1095  Author: Brian Warner <warner@lothar.com>
1096  Date:   Mon Oct 3 23:33:39 2011 -0400
1097 
1098      API of ServerMap.add_new_share()
1099 
1100   src/allmydata/mutable/publish.py   |    4 ++--
1101   src/allmydata/mutable/servermap.py |    6 ++----
1102   2 files changed, 4 insertions(+), 6 deletions(-)
1103 
1104  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1105  Author: Brian Warner <warner@lothar.com>
1106  Date:   Mon Oct 3 23:30:26 2011 -0400
1107 
1108      API of ServerMap.get_bad_shares()
1109 
1110   src/allmydata/mutable/publish.py   |    3 +--
1111   src/allmydata/mutable/servermap.py |    9 ++++-----
1112   2 files changed, 5 insertions(+), 7 deletions(-)
1113 
1114  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1115  Author: Brian Warner <warner@lothar.com>
1116  Date:   Mon Oct 3 23:26:58 2011 -0400
1117 
1118      more small cleanups
1119 
1120   src/allmydata/mutable/publish.py |    6 +++---
1121   1 files changed, 3 insertions(+), 3 deletions(-)
1122 
1123  commit 38020da34f034f8889947dd3dc05e087ffff7106
1124  Author: Brian Warner <warner@lothar.com>
1125  Date:   Mon Oct 3 23:18:47 2011 -0400
1126 
1127      change Publish.bad_share_checkstrings
1128 
1129   src/allmydata/mutable/publish.py |    6 +++---
1130   1 files changed, 3 insertions(+), 3 deletions(-)
1131 
1132  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
1133  Author: Brian Warner <warner@lothar.com>
1134  Date:   Mon Oct 3 23:16:31 2011 -0400
1135 
1136      change internals of Publish.update_goal()
1137 
1138   src/allmydata/mutable/publish.py |    8 +++-----
1139   1 files changed, 3 insertions(+), 5 deletions(-)
1140 
1141  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
1142  Author: Brian Warner <warner@lothar.com>
1143  Date:   Mon Oct 3 23:11:42 2011 -0400
1144 
1145      get rid of Publish.connections
1146 
1147   src/allmydata/mutable/publish.py |   27 +++++----------------------
1148   1 files changed, 5 insertions(+), 22 deletions(-)
1149 
1150  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1151  Author: Brian Warner <warner@lothar.com>
1152  Date:   Mon Oct 3 23:05:32 2011 -0400
1153 
1154      change Publish.bad_servers
1155 
1156   src/allmydata/mutable/publish.py |   10 +++++-----
1157   1 files changed, 5 insertions(+), 5 deletions(-)
1158 
1159  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1160  Author: Brian Warner <warner@lothar.com>
1161  Date:   Mon Oct 3 23:03:07 2011 -0400
1162 
1163      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1164 
1165   src/allmydata/mutable/publish.py |    2 +-
1166   1 files changed, 1 insertions(+), 1 deletions(-)
1167 
1168  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1169  Author: Brian Warner <warner@lothar.com>
1170  Date:   Mon Oct 3 23:00:21 2011 -0400
1171 
1172      change .placed
1173 
1174   src/allmydata/mutable/publish.py |    6 +++---
1175   1 files changed, 3 insertions(+), 3 deletions(-)
1176 
1177  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1178  Author: Brian Warner <warner@lothar.com>
1179  Date:   Mon Oct 3 22:59:22 2011 -0400
1180 
1181      temporarily stash IServer as .server on the "writer" object
1182 
1183   src/allmydata/mutable/publish.py |    2 ++
1184   1 files changed, 2 insertions(+), 0 deletions(-)
1185 
1186  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
1187  Author: Brian Warner <warner@lothar.com>
1188  Date:   Mon Oct 3 22:48:18 2011 -0400
1189 
1190      change Publish.goal and API of log_goal() to use IServer, not serverid
1191 
1192   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1193   1 files changed, 24 insertions(+), 24 deletions(-)
1194 
1195  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1196  Author: Brian Warner <warner@lothar.com>
1197  Date:   Mon Oct 3 15:27:02 2011 -0400
1198 
1199      API of ServerMap.get_known_shares()
1200 
1201   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1202   src/allmydata/mutable/servermap.py |    7 ++-----
1203   2 files changed, 12 insertions(+), 11 deletions(-)
1204 
1205  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1206  Author: Brian Warner <warner@lothar.com>
1207  Date:   Mon Oct 3 15:20:29 2011 -0400
1208 
1209      Publish.full_serverlist
1210 
1211   src/allmydata/mutable/publish.py |   10 +++++-----
1212   1 files changed, 5 insertions(+), 5 deletions(-)
1213 
1214  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1215  Author: Brian Warner <warner@lothar.com>
1216  Date:   Mon Oct 3 15:12:31 2011 -0400
1217 
1218      API of ServerMap.all_servers()
1219 
1220   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1221   1 files changed, 6 insertions(+), 13 deletions(-)
1222 
1223  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1224  Author: Brian Warner <warner@lothar.com>
1225  Date:   Mon Oct 3 15:10:18 2011 -0400
1226 
1227      remove ServerMap.connections, set_rref_for_serverid()
1228 
1229   src/allmydata/mutable/servermap.py |   11 +----------
1230   1 files changed, 1 insertions(+), 10 deletions(-)
1231 
1232  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1233  Author: Brian Warner <warner@lothar.com>
1234  Date:   Mon Oct 3 15:04:06 2011 -0400
1235 
1236      API of ServerMap.mark_server_reachable()
1237 
1238   src/allmydata/mutable/servermap.py |    7 ++-----
1239   1 files changed, 2 insertions(+), 5 deletions(-)
1240 
1241  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1242  Author: Brian Warner <warner@lothar.com>
1243  Date:   Mon Oct 3 15:03:21 2011 -0400
1244 
1245      API of ServerMap.mark_server_unreachable()
1246 
1247   src/allmydata/mutable/servermap.py |    9 +++------
1248   1 files changed, 3 insertions(+), 6 deletions(-)
1249 
1250  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1251  Author: Brian Warner <warner@lothar.com>
1252  Date:   Mon Oct 3 15:02:03 2011 -0400
1253 
1254      API of status.set_privkey_from()
1255 
1256   src/allmydata/mutable/servermap.py |    7 +++----
1257   1 files changed, 3 insertions(+), 4 deletions(-)
1258 
1259  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1260  Author: Brian Warner <warner@lothar.com>
1261  Date:   Mon Oct 3 15:01:15 2011 -0400
1262 
1263      API of status.add_per_server_time()
1264 
1265   src/allmydata/mutable/servermap.py |    7 ++++---
1266   1 files changed, 4 insertions(+), 3 deletions(-)
1267 
1268  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1269  Author: Brian Warner <warner@lothar.com>
1270  Date:   Mon Oct 3 14:59:02 2011 -0400
1271 
1272      remove unused .versionmap
1273 
1274   src/allmydata/mutable/servermap.py |    7 -------
1275   1 files changed, 0 insertions(+), 7 deletions(-)
1276 
1277  commit 2816562e090d2294179db3588dafcca18de1bc2b
1278  Author: Brian Warner <warner@lothar.com>
1279  Date:   Mon Oct 3 14:57:51 2011 -0400
1280 
1281      remove serverid from all log messages. Also one unused lambda.
1282 
1283   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
1284   1 files changed, 15 insertions(+), 15 deletions(-)
1285 
1286  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
1287  Author: Brian Warner <warner@lothar.com>
1288  Date:   Mon Oct 3 14:54:30 2011 -0400
1289 
1290      removed unused _readers
1291 
1292   src/allmydata/mutable/servermap.py |    3 ---
1293   1 files changed, 0 insertions(+), 3 deletions(-)
1294 
1295  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
1296  Author: Brian Warner <warner@lothar.com>
1297  Date:   Mon Oct 3 14:54:16 2011 -0400
1298 
1299      remove unused _sharemap
1300 
1301   src/allmydata/mutable/servermap.py |    1 -
1302   1 files changed, 0 insertions(+), 1 deletions(-)
1303 
1304  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
1305  Author: Brian Warner <warner@lothar.com>
1306  Date:   Mon Oct 3 14:49:03 2011 -0400
1307 
1308      _must_query
1309 
1310   src/allmydata/mutable/servermap.py |    8 ++++----
1311   1 files changed, 4 insertions(+), 4 deletions(-)
1312 
1313  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
1314  Author: Brian Warner <warner@lothar.com>
1315  Date:   Mon Oct 3 14:48:05 2011 -0400
1316 
1317      _queries_outstanding
1318 
1319   src/allmydata/mutable/servermap.py |   16 +++++++---------
1320   1 files changed, 7 insertions(+), 9 deletions(-)
1321 
1322  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
1323  Author: Brian Warner <warner@lothar.com>
1324  Date:   Mon Oct 3 14:46:17 2011 -0400
1325 
1326      _empty_servers
1327 
1328   src/allmydata/mutable/servermap.py |    5 ++---
1329   1 files changed, 2 insertions(+), 3 deletions(-)
1330 
1331  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
1332  Author: Brian Warner <warner@lothar.com>
1333  Date:   Mon Oct 3 14:45:39 2011 -0400
1334 
1335      _good_servers
1336 
1337   src/allmydata/mutable/servermap.py |    4 ++--
1338   1 files changed, 2 insertions(+), 2 deletions(-)
1339 
1340  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
1341  Author: Brian Warner <warner@lothar.com>
1342  Date:   Mon Oct 3 14:44:59 2011 -0400
1343 
1344      _bad_servers
1345 
1346   src/allmydata/mutable/servermap.py |   14 +++++++-------
1347   1 files changed, 7 insertions(+), 7 deletions(-)
1348 
1349  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
1350  Author: Brian Warner <warner@lothar.com>
1351  Date:   Mon Oct 3 14:41:54 2011 -0400
1352 
1353      API of _try_to_set_pubkey()
1354 
1355   src/allmydata/mutable/servermap.py |    7 ++++---
1356   1 files changed, 4 insertions(+), 3 deletions(-)
1357 
1358  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
1359  Author: Brian Warner <warner@lothar.com>
1360  Date:   Mon Oct 3 14:35:02 2011 -0400
1361 
1362      API of notify_server_corruption()
1363 
1364   src/allmydata/mutable/servermap.py |    6 +++---
1365   1 files changed, 3 insertions(+), 3 deletions(-)
1366 
1367  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
1368  Author: Brian Warner <warner@lothar.com>
1369  Date:   Mon Oct 3 14:34:09 2011 -0400
1370 
1371      API of _got_signature_one_share()
1372 
1373   src/allmydata/mutable/servermap.py |    9 +++++----
1374   1 files changed, 5 insertions(+), 4 deletions(-)
1375 
1376  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
1377  Author: Brian Warner <warner@lothar.com>
1378  Date:   Mon Oct 3 14:32:33 2011 -0400
1379 
1380      API of _try_to_validate_privkey()
1381 
1382   src/allmydata/mutable/servermap.py |    9 +++++----
1383   1 files changed, 5 insertions(+), 4 deletions(-)
1384 
1385  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
1386  Author: Brian Warner <warner@lothar.com>
1387  Date:   Mon Oct 3 14:31:48 2011 -0400
1388 
1389      API and internals of _add_lease_failed()
1390 
1391   src/allmydata/mutable/servermap.py |    8 ++++----
1392   1 files changed, 4 insertions(+), 4 deletions(-)
1393 
1394  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
1395  Author: Brian Warner <warner@lothar.com>
1396  Date:   Mon Oct 3 14:30:37 2011 -0400
1397 
1398      API of _privkey_query_failed()
1399 
1400   src/allmydata/mutable/servermap.py |    5 +++--
1401   1 files changed, 3 insertions(+), 2 deletions(-)
1402 
1403  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
1404  Author: Brian Warner <warner@lothar.com>
1405  Date:   Mon Oct 3 14:29:43 2011 -0400
1406 
1407      fix bug in call to _privkey_query_failed, unrelated to refactoring
1408 
1409   src/allmydata/mutable/servermap.py |    2 +-
1410   1 files changed, 1 insertions(+), 1 deletions(-)
1411 
1412  commit ae615bec7d0d1b269710b6902797b12f9592ad62
1413  Author: Brian Warner <warner@lothar.com>
1414  Date:   Mon Oct 3 14:27:17 2011 -0400
1415 
1416      API of _got_corrupt_share()
1417 
1418   src/allmydata/mutable/servermap.py |   17 +++++++++--------
1419   1 files changed, 9 insertions(+), 8 deletions(-)
1420 
1421  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
1422  Author: Brian Warner <warner@lothar.com>
1423  Date:   Mon Oct 3 14:23:16 2011 -0400
1424 
1425      API of _got_results()
1426 
1427   src/allmydata/mutable/servermap.py |    9 +++++----
1428   1 files changed, 5 insertions(+), 4 deletions(-)
1429 
1430  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
1431  Author: Brian Warner <warner@lothar.com>
1432  Date:   Mon Oct 3 14:19:19 2011 -0400
1433 
1434      API of _query_failed()
1435 
1436   src/allmydata/mutable/servermap.py |    5 +++--
1437   1 files changed, 3 insertions(+), 2 deletions(-)
1438 
1439  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
1440  Author: Brian Warner <warner@lothar.com>
1441  Date:   Mon Oct 3 14:17:20 2011 -0400
1442 
1443      API of _do_read()
1444 
1445   src/allmydata/mutable/servermap.py |    6 ++++--
1446   1 files changed, 4 insertions(+), 2 deletions(-)
1447 
1448  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
1449  Author: Brian Warner <warner@lothar.com>
1450  Date:   Mon Oct 3 14:20:21 2011 -0400
1451 
1452      API of _do_query()
1453 
1454   src/allmydata/mutable/servermap.py |   15 +++++++--------
1455   1 files changed, 7 insertions(+), 8 deletions(-)
1456 
1457  commit 330625b9dac4cdbe72a11464a893065b9aeed453
1458  Author: Brian Warner <warner@lothar.com>
1459  Date:   Mon Oct 3 14:43:05 2011 -0400
1460 
1461      next step: first batch of updates to ServermapUpdater
1462 
1463      updates:
1464       most method-local variables in update()
1465       API of _build_initial_querylist()
1466       API of _send_initial_requests()
1467       .full_serverlist
1468       .extra_servers
1469 
1470   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
1471   1 files changed, 21 insertions(+), 18 deletions(-)
1472 
1473  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
1474  Author: Brian Warner <warner@lothar.com>
1475  Date:   Mon Oct 3 15:07:00 2011 -0400
1476 
1477      internal change: index _bad_shares with IServer
1478 
1479   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
1480   1 files changed, 10 insertions(+), 10 deletions(-)
1481 
1482  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
1483  Author: Brian Warner <warner@lothar.com>
1484  Date:   Mon Oct 3 18:20:47 2011 +0100
1485 
1486      internal change: index _known_shares with IServer instead of serverid
1487 
1488      callers are unchanged
1489 
1490   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
1491   1 files changed, 25 insertions(+), 17 deletions(-)
1492 
1493  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
1494  Author: Brian Warner <warner@lothar.com>
1495  Date:   Mon Oct 3 18:11:43 2011 +0100
1496 
1497      accessors and name cleanup for servermap.Servermap.last_update_mode/time
1498 
1499   src/allmydata/mutable/filenode.py  |    6 +++---
1500   src/allmydata/mutable/publish.py   |    4 ++--
1501   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1502   3 files changed, 16 insertions(+), 11 deletions(-)
1503 
1504  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
1505  Author: Brian Warner <warner@lothar.com>
1506  Date:   Mon Oct 3 18:11:14 2011 +0100
1507 
1508      accessors and name cleanup for servermap.Servermap.problems
1509 
1510   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
1511   src/allmydata/test/test_mutable.py |    6 +++---
1512   2 files changed, 16 insertions(+), 11 deletions(-)
1513 
1514  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
1515  Author: Brian Warner <warner@lothar.com>
1516  Date:   Mon Oct 3 18:10:41 2011 +0100
1517 
1518      accessors and name cleanup for servermap.Servermap.bad_shares
1519 
1520   src/allmydata/mutable/publish.py   |    2 +-
1521   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
1522   2 files changed, 18 insertions(+), 14 deletions(-)
1523 
1524  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
1525  Author: Brian Warner <warner@lothar.com>
1526  Date:   Mon Oct 3 18:10:05 2011 +0100
1527 
1528      accessors and name cleanup for servermap.Servermap.servermap .
1529 
1530   src/allmydata/mutable/publish.py   |   14 +++++----
1531   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
1532   2 files changed, 29 insertions(+), 23 deletions(-)
1533 
1534  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
1535  Author: Brian Warner <warner@lothar.com>
1536  Date:   Mon Oct 3 18:08:02 2011 +0100
1537 
1538      fix reachable_servers
1539 
1540   src/allmydata/mutable/checker.py   |    3 ++-
1541   src/allmydata/mutable/publish.py   |    4 +++-
1542   src/allmydata/mutable/servermap.py |   12 ++++++++++--
1543   3 files changed, 15 insertions(+), 4 deletions(-)
1544 
1545  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
1546  Author: Brian Warner <warner@lothar.com>
1547  Date:   Mon Oct 3 18:06:03 2011 +0100
1548 
1549      fix Servermap.unreachable_servers
1550 
1551   src/allmydata/mutable/servermap.py |   11 ++++++++---
1552   1 files changed, 8 insertions(+), 3 deletions(-)
1553 
1554  commit 2d9ea79b94bd4db674d40386fda90825785ac495
1555  Author: Brian Warner <warner@lothar.com>
1556  Date:   Mon Oct 3 18:03:48 2011 +0100
1557 
1558      give ServerMap a StorageFarmBroker, temporary
1559 
1560      this makes it possible for the ServerMap to accept bare serverids and still
1561      build data structures with IServers
1562 
1563   src/allmydata/mutable/checker.py   |    2 +-
1564   src/allmydata/mutable/filenode.py  |    2 +-
1565   src/allmydata/mutable/publish.py   |    2 +-
1566   src/allmydata/mutable/servermap.py |    5 +++--
1567   src/allmydata/test/test_mutable.py |    8 ++++----
1568   5 files changed, 10 insertions(+), 9 deletions(-)
1569 
1570  commit 718d1aeff6fded893f65397806d22ece928b0dd4
1571  Author: Brian Warner <warner@lothar.com>
1572  Date:   Mon Oct 3 13:43:30 2011 -0400
1573 
1574      add StorageFarmBroker.get_server_for_id(), temporary helper
1575 
1576      This will go away once we're passing IServers everywhere.
1577 
1578   src/allmydata/storage_client.py  |    2 ++
1579   src/allmydata/test/no_network.py |   13 +++++++++++++
1580   2 files changed, 15 insertions(+), 0 deletions(-)
1581 
1582  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
1583  Author: Brian Warner <warner@lothar.com>
1584  Date:   Sun Oct 2 01:11:50 2011 +0100
1585 
1586      add proper accessors for Servermap.connections, to make refactoring easier
1587 
1588   src/allmydata/mutable/publish.py   |    6 +++---
1589   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1590   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1591   3 files changed, 19 insertions(+), 14 deletions(-)
1592 
1593  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
1594  Author: Brian Warner <warner@lothar.com>
1595  Date:   Fri Sep 23 10:34:30 2011 -0700
1596 
1597      mutable/servermap.py and neighbors: s/peer/server/
1598 
1599   src/allmydata/mutable/checker.py   |   22 +-
1600   src/allmydata/mutable/publish.py   |  204 +++++++-------
1601   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
1602   src/allmydata/test/test_mutable.py |   18 +-
1603   4 files changed, 323 insertions(+), 323 deletions(-)
1604 IServer refactoring: pass IServer instances around, instead of peerids
1605 
1606 refs #1363
1607 
1608 This collapses 88 small incremental changes (each of which passes all tests)
1609 into one big patch. The development process for the long path started with
1610 adding some temporary scaffolding, changing one method at a time, then
1611 removing the scaffolding. The individual pieces are as follows, in reverse
1612 chronological order (the first patch is at the end of this comment):
1613 
1614  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
1615  Author: Brian Warner <warner@lothar.com>
1616  Date:   Tue Oct 4 16:05:00 2011 -0400
1617 
1618      immutable/downloader/status.py: correct comment
1619 
1620   src/allmydata/immutable/downloader/status.py |    2 +-
1621   1 files changed, 1 insertions(+), 1 deletions(-)
1622 
1623  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
1624  Author: Brian Warner <warner@lothar.com>
1625  Date:   Tue Oct 4 15:46:20 2011 -0400
1626 
1627      remove temporary ServerMap._storage_broker
1628 
1629   src/allmydata/mutable/checker.py   |    2 +-
1630   src/allmydata/mutable/filenode.py  |    2 +-
1631   src/allmydata/mutable/publish.py   |    2 +-
1632   src/allmydata/mutable/servermap.py |    5 ++---
1633   src/allmydata/test/test_mutable.py |    8 ++++----
1634   5 files changed, 9 insertions(+), 10 deletions(-)
1635 
1636  commit d703096b41632c47d76414b12672e076a422ff5c
1637  Author: Brian Warner <warner@lothar.com>
1638  Date:   Tue Oct 4 15:37:05 2011 -0400
1639 
1640      remove temporary storage_broker.get_server_for_id()
1641 
1642   src/allmydata/storage_client.py  |    3 ---
1643   src/allmydata/test/no_network.py |   13 -------------
1644   2 files changed, 0 insertions(+), 16 deletions(-)
1645 
1646  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
1647  Author: Brian Warner <warner@lothar.com>
1648  Date:   Tue Oct 4 12:50:06 2011 -0400
1649 
1650      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
1651 
1652   src/allmydata/mutable/retrieve.py |   10 +++++-----
1653   1 files changed, 5 insertions(+), 5 deletions(-)
1654 
1655  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
1656  Author: Brian Warner <warner@lothar.com>
1657  Date:   Tue Oct 4 12:48:08 2011 -0400
1658 
1659      API of Retrieve._validate_block(), trying to remove reader.server
1660 
1661   src/allmydata/mutable/retrieve.py |   14 +++++++-------
1662   1 files changed, 7 insertions(+), 7 deletions(-)
1663 
1664  commit 572d5070761861a2190349d1ed8d85dbc25698a5
1665  Author: Brian Warner <warner@lothar.com>
1666  Date:   Tue Oct 4 12:36:58 2011 -0400
1667 
1668      API of Retrieve._mark_bad_share(), trying to remove reader.server
1669 
1670   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
1671   1 files changed, 9 insertions(+), 12 deletions(-)
1672 
1673  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
1674  Author: Brian Warner <warner@lothar.com>
1675  Date:   Tue Oct 4 12:06:13 2011 -0400
1676 
1677      remove now-unused get_rref_for_serverid()
1678 
1679   src/allmydata/mutable/servermap.py |    3 ---
1680   1 files changed, 0 insertions(+), 3 deletions(-)
1681 
1682  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
1683  Author: Brian Warner <warner@lothar.com>
1684  Date:   Tue Oct 4 12:03:09 2011 -0400
1685 
1686      Retrieve: stop adding .serverid attributes to readers
1687 
1688   src/allmydata/mutable/retrieve.py |    1 -
1689   1 files changed, 0 insertions(+), 1 deletions(-)
1690 
1691  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
1692  Author: Brian Warner <warner@lothar.com>
1693  Date:   Tue Oct 4 12:03:34 2011 -0400
1694 
1695      return value of Retrieve(verify=True)
1696 
1697   src/allmydata/mutable/checker.py  |   11 ++++++-----
1698   src/allmydata/mutable/retrieve.py |    3 +--
1699   2 files changed, 7 insertions(+), 7 deletions(-)
1700 
1701  commit e9ab7978c384e1f677cb7779dc449b1044face82
1702  Author: Brian Warner <warner@lothar.com>
1703  Date:   Tue Oct 4 11:54:23 2011 -0400
1704 
1705      Retrieve._bad_shares (but not return value, used by Verifier)
1706 
1707   src/allmydata/mutable/retrieve.py |    7 ++++---
1708   1 files changed, 4 insertions(+), 3 deletions(-)
1709 
1710  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
1711  Author: Brian Warner <warner@lothar.com>
1712  Date:   Tue Oct 4 11:51:23 2011 -0400
1713 
1714      Publish: stop adding .serverid attributes to writers
1715 
1716   src/allmydata/mutable/publish.py |    9 ++-------
1717   1 files changed, 2 insertions(+), 7 deletions(-)
1718 
1719  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
1720  Author: Brian Warner <warner@lothar.com>
1721  Date:   Tue Oct 4 11:56:33 2011 -0400
1722 
1723      API of get_write_enabler()
1724 
1725   src/allmydata/mutable/filenode.py |    7 ++++---
1726   src/allmydata/mutable/publish.py  |    4 ++--
1727   src/allmydata/test/no_network.py  |    3 +++
1728   3 files changed, 9 insertions(+), 5 deletions(-)
1729 
1730  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
1731  Author: Brian Warner <warner@lothar.com>
1732  Date:   Tue Oct 4 11:46:24 2011 -0400
1733 
1734      API of get_(renewal|cancel)_secret()
1735 
1736   src/allmydata/mutable/filenode.py  |   14 ++++++++------
1737   src/allmydata/mutable/publish.py   |    8 ++++----
1738   src/allmydata/mutable/servermap.py |    5 ++---
1739   3 files changed, 14 insertions(+), 13 deletions(-)
1740 
1741  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
1742  Author: Brian Warner <warner@lothar.com>
1743  Date:   Tue Oct 4 11:41:52 2011 -0400
1744 
1745      API of CorruptShareError. Also comment out some related+unused test_web.py code
1746 
1747   src/allmydata/mutable/common.py    |   13 +++++--------
1748   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1749   src/allmydata/mutable/servermap.py |    8 +++-----
1750   src/allmydata/test/common.py       |   13 ++++++++-----
1751   4 files changed, 21 insertions(+), 23 deletions(-)
1752 
1753  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
1754  Author: Brian Warner <warner@lothar.com>
1755  Date:   Tue Oct 4 12:01:46 2011 -0400
1756 
1757      API of ServerMap.mark_bad_share()
1758 
1759   src/allmydata/mutable/publish.py   |    2 +-
1760   src/allmydata/mutable/retrieve.py  |    6 +++---
1761   src/allmydata/mutable/servermap.py |    6 ++----
1762   src/allmydata/test/test_mutable.py |    3 +--
1763   4 files changed, 7 insertions(+), 10 deletions(-)
1764 
1765  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
1766  Author: Brian Warner <warner@lothar.com>
1767  Date:   Tue Oct 4 11:11:17 2011 -0400
1768 
1769      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
1770 
1771   src/allmydata/mutable/servermap.py |    7 ++-----
1772   src/allmydata/test/test_mutable.py |    6 +++---
1773   2 files changed, 5 insertions(+), 8 deletions(-)
1774 
1775  commit 2d32e448677d6b818692e801045d4115b29abf21
1776  Author: Brian Warner <warner@lothar.com>
1777  Date:   Tue Oct 4 11:07:10 2011 -0400
1778 
1779      API of ServerMap.all_servers_for_version()
1780 
1781   src/allmydata/mutable/servermap.py |    4 ++--
1782   1 files changed, 2 insertions(+), 2 deletions(-)
1783 
1784  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
1785  Author: Brian Warner <warner@lothar.com>
1786  Date:   Tue Oct 4 11:04:50 2011 -0400
1787 
1788      internals of ServerMap methods that use make_versionmap(), remove temp copy
1789 
1790   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
1791   1 files changed, 10 insertions(+), 18 deletions(-)
1792 
1793  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
1794  Author: Brian Warner <warner@lothar.com>
1795  Date:   Tue Oct 4 11:01:28 2011 -0400
1796 
1797      API of ServerMap.make_versionmap()
1798 
1799   src/allmydata/mutable/checker.py   |    4 ++--
1800   src/allmydata/mutable/retrieve.py  |    5 ++---
1801   src/allmydata/mutable/servermap.py |    4 ++--
1802   src/allmydata/test/test_mutable.py |    7 ++++---
1803   4 files changed, 10 insertions(+), 10 deletions(-)
1804 
1805  commit b6882ece49afb4c507d118af2db346fa329209dc
1806  Author: Brian Warner <warner@lothar.com>
1807  Date:   Tue Oct 4 10:53:38 2011 -0400
1808 
1809      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
1810 
1811   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
1812   1 files changed, 13 insertions(+), 5 deletions(-)
1813 
1814  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
1815  Author: Brian Warner <warner@lothar.com>
1816  Date:   Tue Oct 4 00:45:58 2011 -0400
1817 
1818      API of RetrieveStatus.add_problem()
1819 
1820   src/allmydata/mutable/retrieve.py |    5 +++--
1821   1 files changed, 3 insertions(+), 2 deletions(-)
1822 
1823  commit 4976d29ffae565a048851601c29013bbae2976d8
1824  Author: Brian Warner <warner@lothar.com>
1825  Date:   Tue Oct 4 00:45:05 2011 -0400
1826 
1827      API of RetrieveStatus.add_fetch_timing()
1828 
1829   src/allmydata/mutable/retrieve.py |    5 +++--
1830   1 files changed, 3 insertions(+), 2 deletions(-)
1831 
1832  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
1833  Author: Brian Warner <warner@lothar.com>
1834  Date:   Tue Oct 4 00:44:04 2011 -0400
1835 
1836      API of Retrieve.notify_server_corruption()
1837 
1838   src/allmydata/mutable/retrieve.py |    6 +++---
1839   1 files changed, 3 insertions(+), 3 deletions(-)
1840 
1841  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
1842  Author: Brian Warner <warner@lothar.com>
1843  Date:   Tue Oct 4 00:42:32 2011 -0400
1844 
1845      remove unused _outstanding_queries
1846 
1847   src/allmydata/mutable/retrieve.py |    1 -
1848   1 files changed, 0 insertions(+), 1 deletions(-)
1849 
1850  commit 56d12cc9968d03ccd53764455c671122c4f391d1
1851  Author: Brian Warner <warner@lothar.com>
1852  Date:   Tue Oct 4 00:40:57 2011 -0400
1853 
1854      change Retrieve.remaining_sharemap
1855 
1856   src/allmydata/mutable/retrieve.py |    4 ++--
1857   1 files changed, 2 insertions(+), 2 deletions(-)
1858 
1859  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
1860  Author: Brian Warner <warner@lothar.com>
1861  Date:   Tue Oct 4 10:40:18 2011 -0400
1862 
1863      accessor for PublishStatus._problems
1864 
1865   src/allmydata/mutable/publish.py |    4 +++-
1866   src/allmydata/web/status.py      |    2 +-
1867   2 files changed, 4 insertions(+), 2 deletions(-)
1868 
1869  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
1870  Author: Brian Warner <warner@lothar.com>
1871  Date:   Tue Oct 4 10:36:39 2011 -0400
1872 
1873      accessor for RetrieveStatus._problems
1874 
1875   src/allmydata/mutable/retrieve.py |    8 ++++++--
1876   src/allmydata/web/status.py       |    2 +-
1877   2 files changed, 7 insertions(+), 3 deletions(-)
1878 
1879  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1880  Author: Brian Warner <warner@lothar.com>
1881  Date:   Tue Oct 4 00:35:32 2011 -0400
1882 
1883      add .server to "reader", so we can get at it later
1884 
1885   src/allmydata/mutable/retrieve.py |    5 +++--
1886   1 files changed, 3 insertions(+), 2 deletions(-)
1887 
1888  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1889  Author: Brian Warner <warner@lothar.com>
1890  Date:   Tue Oct 4 00:32:32 2011 -0400
1891 
1892      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1893 
1894   src/allmydata/mutable/checker.py   |    3 ++-
1895   src/allmydata/mutable/filenode.py  |    6 ++++--
1896   src/allmydata/mutable/retrieve.py  |    5 +++--
1897   src/allmydata/test/test_mutable.py |    4 ++--
1898   4 files changed, 11 insertions(+), 7 deletions(-)
1899 
1900  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1901  Author: Brian Warner <warner@lothar.com>
1902  Date:   Tue Oct 4 00:21:51 2011 -0400
1903 
1904      mutable/retrieve.py: s/peer/server/
1905 
1906   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1907   src/allmydata/test/test_mutable.py |    6 +-
1908   2 files changed, 44 insertions(+), 44 deletions(-)
1909 
1910  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1911  Author: Brian Warner <warner@lothar.com>
1912  Date:   Tue Oct 4 00:16:01 2011 -0400
1913 
1914      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1915 
1916   src/allmydata/web/status.py |    2 ++
1917   1 files changed, 2 insertions(+), 0 deletions(-)
1918 
1919  commit 311466dd8c931bbba40d590ade867704282e7f1a
1920  Author: Brian Warner <warner@lothar.com>
1921  Date:   Mon Oct 3 23:48:16 2011 -0400
1922 
1923      API of PublishStatus.add_per_server_time()
1924 
1925   src/allmydata/mutable/publish.py |    5 +++--
1926   1 files changed, 3 insertions(+), 2 deletions(-)
1927 
1928  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1929  Author: Brian Warner <warner@lothar.com>
1930  Date:   Mon Oct 3 23:46:37 2011 -0400
1931 
1932      more simplifications
1933 
1934   src/allmydata/mutable/publish.py |    4 +---
1935   1 files changed, 1 insertions(+), 3 deletions(-)
1936 
1937  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1938  Author: Brian Warner <warner@lothar.com>
1939  Date:   Mon Oct 3 23:44:08 2011 -0400
1940 
1941      API of ServerMap.version_on_server()
1942 
1943   src/allmydata/mutable/publish.py   |    2 +-
1944   src/allmydata/mutable/servermap.py |    4 ++--
1945   src/allmydata/test/test_mutable.py |    5 ++---
1946   3 files changed, 5 insertions(+), 6 deletions(-)
1947 
1948  commit 3e187e322511072e4683329df6b2c6c733a66dba
1949  Author: Brian Warner <warner@lothar.com>
1950  Date:   Tue Oct 4 00:16:32 2011 -0400
1951 
1952      API of ServerMap.make_sharemap()
1953 
1954   src/allmydata/mutable/servermap.py |    4 ++--
1955   src/allmydata/test/test_mutable.py |    7 ++++---
1956   src/allmydata/web/status.py        |    4 ++--
1957   3 files changed, 8 insertions(+), 7 deletions(-)
1958 
1959  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1960  Author: Brian Warner <warner@lothar.com>
1961  Date:   Mon Oct 3 23:36:19 2011 -0400
1962 
1963      small cleanups
1964 
1965   src/allmydata/mutable/publish.py |    4 ++--
1966   1 files changed, 2 insertions(+), 2 deletions(-)
1967 
1968  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1969  Author: Brian Warner <warner@lothar.com>
1970  Date:   Mon Oct 3 23:33:39 2011 -0400
1971 
1972      API of ServerMap.add_new_share()
1973 
1974   src/allmydata/mutable/publish.py   |    4 ++--
1975   src/allmydata/mutable/servermap.py |    6 ++----
1976   2 files changed, 4 insertions(+), 6 deletions(-)
1977 
1978  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1979  Author: Brian Warner <warner@lothar.com>
1980  Date:   Mon Oct 3 23:30:26 2011 -0400
1981 
1982      API of ServerMap.get_bad_shares()
1983 
1984   src/allmydata/mutable/publish.py   |    3 +--
1985   src/allmydata/mutable/servermap.py |    9 ++++-----
1986   2 files changed, 5 insertions(+), 7 deletions(-)
1987 
1988  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1989  Author: Brian Warner <warner@lothar.com>
1990  Date:   Mon Oct 3 23:26:58 2011 -0400
1991 
1992      more small cleanups
1993 
1994   src/allmydata/mutable/publish.py |    6 +++---
1995   1 files changed, 3 insertions(+), 3 deletions(-)
1996 
1997  commit 38020da34f034f8889947dd3dc05e087ffff7106
1998  Author: Brian Warner <warner@lothar.com>
1999  Date:   Mon Oct 3 23:18:47 2011 -0400
2000 
2001      change Publish.bad_share_checkstrings
2002 
2003   src/allmydata/mutable/publish.py |    6 +++---
2004   1 files changed, 3 insertions(+), 3 deletions(-)
2005 
2006  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
2007  Author: Brian Warner <warner@lothar.com>
2008  Date:   Mon Oct 3 23:16:31 2011 -0400
2009 
2010      change internals of Publish.update_goal()
2011 
2012   src/allmydata/mutable/publish.py |    8 +++-----
2013   1 files changed, 3 insertions(+), 5 deletions(-)
2014 
2015  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
2016  Author: Brian Warner <warner@lothar.com>
2017  Date:   Mon Oct 3 23:11:42 2011 -0400
2018 
2019      get rid of Publish.connections
2020 
2021   src/allmydata/mutable/publish.py |   27 +++++----------------------
2022   1 files changed, 5 insertions(+), 22 deletions(-)
2023 
2024  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
2025  Author: Brian Warner <warner@lothar.com>
2026  Date:   Mon Oct 3 23:05:32 2011 -0400
2027 
2028      change Publish.bad_servers
2029 
2030   src/allmydata/mutable/publish.py |   10 +++++-----
2031   1 files changed, 5 insertions(+), 5 deletions(-)
2032 
2033  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
2034  Author: Brian Warner <warner@lothar.com>
2035  Date:   Mon Oct 3 23:03:07 2011 -0400
2036 
2037      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
2038 
2039   src/allmydata/mutable/publish.py |    2 +-
2040   1 files changed, 1 insertions(+), 1 deletions(-)
2041 
2042  commit 605ea15ec15ed671513819003ccd211cdb9761e0
2043  Author: Brian Warner <warner@lothar.com>
2044  Date:   Mon Oct 3 23:00:21 2011 -0400
2045 
2046      change .placed
2047 
2048   src/allmydata/mutable/publish.py |    6 +++---
2049   1 files changed, 3 insertions(+), 3 deletions(-)
2050 
2051  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
2052  Author: Brian Warner <warner@lothar.com>
2053  Date:   Mon Oct 3 22:59:22 2011 -0400
2054 
2055      temporarily stash IServer as .server on the "writer" object
2056 
2057   src/allmydata/mutable/publish.py |    2 ++
2058   1 files changed, 2 insertions(+), 0 deletions(-)
2059 
2060  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
2061  Author: Brian Warner <warner@lothar.com>
2062  Date:   Mon Oct 3 22:48:18 2011 -0400
2063 
2064      change Publish.goal and API of log_goal() to use IServer, not serverid
2065 
2066   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
2067   1 files changed, 24 insertions(+), 24 deletions(-)
2068 
2069  commit 75f20616558e4900b8b1f685dd99aa838de6d452
2070  Author: Brian Warner <warner@lothar.com>
2071  Date:   Mon Oct 3 15:27:02 2011 -0400
2072 
2073      API of ServerMap.get_known_shares()
2074 
2075   src/allmydata/mutable/publish.py   |   16 ++++++++++------
2076   src/allmydata/mutable/servermap.py |    7 ++-----
2077   2 files changed, 12 insertions(+), 11 deletions(-)
2078 
2079  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
2080  Author: Brian Warner <warner@lothar.com>
2081  Date:   Mon Oct 3 15:20:29 2011 -0400
2082 
2083      Publish.full_serverlist
2084 
2085   src/allmydata/mutable/publish.py |   10 +++++-----
2086   1 files changed, 5 insertions(+), 5 deletions(-)
2087 
2088  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
2089  Author: Brian Warner <warner@lothar.com>
2090  Date:   Mon Oct 3 15:12:31 2011 -0400
2091 
2092      API of ServerMap.all_servers()
2093 
2094   src/allmydata/mutable/servermap.py |   19 ++++++-------------
2095   1 files changed, 6 insertions(+), 13 deletions(-)
2096 
2097  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
2098  Author: Brian Warner <warner@lothar.com>
2099  Date:   Mon Oct 3 15:10:18 2011 -0400
2100 
2101      remove ServerMap.connections, set_rref_for_serverid()
2102 
2103   src/allmydata/mutable/servermap.py |   11 +----------
2104   1 files changed, 1 insertions(+), 10 deletions(-)
2105 
2106  commit 4df52db2f80eb12eefa5d57103c24893cde89553
2107  Author: Brian Warner <warner@lothar.com>
2108  Date:   Mon Oct 3 15:04:06 2011 -0400
2109 
2110      API of ServerMap.mark_server_reachable()
2111 
2112   src/allmydata/mutable/servermap.py |    7 ++-----
2113   1 files changed, 2 insertions(+), 5 deletions(-)
2114 
2115  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
2116  Author: Brian Warner <warner@lothar.com>
2117  Date:   Mon Oct 3 15:03:21 2011 -0400
2118 
2119      API of ServerMap.mark_server_unreachable()
2120 
2121   src/allmydata/mutable/servermap.py |    9 +++------
2122   1 files changed, 3 insertions(+), 6 deletions(-)
2123 
2124  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
2125  Author: Brian Warner <warner@lothar.com>
2126  Date:   Mon Oct 3 15:02:03 2011 -0400
2127 
2128      API of status.set_privkey_from()
2129 
2130   src/allmydata/mutable/servermap.py |    7 +++----
2131   1 files changed, 3 insertions(+), 4 deletions(-)
2132 
2133  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
2134  Author: Brian Warner <warner@lothar.com>
2135  Date:   Mon Oct 3 15:01:15 2011 -0400
2136 
2137      API of status.add_per_server_time()
2138 
2139   src/allmydata/mutable/servermap.py |    7 ++++---
2140   1 files changed, 4 insertions(+), 3 deletions(-)
2141 
2142  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
2143  Author: Brian Warner <warner@lothar.com>
2144  Date:   Mon Oct 3 14:59:02 2011 -0400
2145 
2146      remove unused .versionmap
2147 
2148   src/allmydata/mutable/servermap.py |    7 -------
2149   1 files changed, 0 insertions(+), 7 deletions(-)
2150 
2151  commit 2816562e090d2294179db3588dafcca18de1bc2b
2152  Author: Brian Warner <warner@lothar.com>
2153  Date:   Mon Oct 3 14:57:51 2011 -0400
2154 
2155      remove serverid from all log messages. Also one unused lambda.
2156 
2157   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2158   1 files changed, 15 insertions(+), 15 deletions(-)
2159 
2160  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2161  Author: Brian Warner <warner@lothar.com>
2162  Date:   Mon Oct 3 14:54:30 2011 -0400
2163 
2164      removed unused _readers
2165 
2166   src/allmydata/mutable/servermap.py |    3 ---
2167   1 files changed, 0 insertions(+), 3 deletions(-)
2168 
2169  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2170  Author: Brian Warner <warner@lothar.com>
2171  Date:   Mon Oct 3 14:54:16 2011 -0400
2172 
2173      remove unused _sharemap
2174 
2175   src/allmydata/mutable/servermap.py |    1 -
2176   1 files changed, 0 insertions(+), 1 deletions(-)
2177 
2178  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2179  Author: Brian Warner <warner@lothar.com>
2180  Date:   Mon Oct 3 14:49:03 2011 -0400
2181 
2182      _must_query
2183 
2184   src/allmydata/mutable/servermap.py |    8 ++++----
2185   1 files changed, 4 insertions(+), 4 deletions(-)
2186 
2187  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
2188  Author: Brian Warner <warner@lothar.com>
2189  Date:   Mon Oct 3 14:48:05 2011 -0400
2190 
2191      _queries_outstanding
2192 
2193   src/allmydata/mutable/servermap.py |   16 +++++++---------
2194   1 files changed, 7 insertions(+), 9 deletions(-)
2195 
2196  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2197  Author: Brian Warner <warner@lothar.com>
2198  Date:   Mon Oct 3 14:46:17 2011 -0400
2199 
2200      _empty_servers
2201 
2202   src/allmydata/mutable/servermap.py |    5 ++---
2203   1 files changed, 2 insertions(+), 3 deletions(-)
2204 
2205  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2206  Author: Brian Warner <warner@lothar.com>
2207  Date:   Mon Oct 3 14:45:39 2011 -0400
2208 
2209      _good_servers
2210 
2211   src/allmydata/mutable/servermap.py |    4 ++--
2212   1 files changed, 2 insertions(+), 2 deletions(-)
2213 
2214  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2215  Author: Brian Warner <warner@lothar.com>
2216  Date:   Mon Oct 3 14:44:59 2011 -0400
2217 
2218      _bad_servers
2219 
2220   src/allmydata/mutable/servermap.py |   14 +++++++-------
2221   1 files changed, 7 insertions(+), 7 deletions(-)
2222 
2223  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2224  Author: Brian Warner <warner@lothar.com>
2225  Date:   Mon Oct 3 14:41:54 2011 -0400
2226 
2227      API of _try_to_set_pubkey()
2228 
2229   src/allmydata/mutable/servermap.py |    7 ++++---
2230   1 files changed, 4 insertions(+), 3 deletions(-)
2231 
2232  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2233  Author: Brian Warner <warner@lothar.com>
2234  Date:   Mon Oct 3 14:35:02 2011 -0400
2235 
2236      API of notify_server_corruption()
2237 
2238   src/allmydata/mutable/servermap.py |    6 +++---
2239   1 files changed, 3 insertions(+), 3 deletions(-)
2240 
2241  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2242  Author: Brian Warner <warner@lothar.com>
2243  Date:   Mon Oct 3 14:34:09 2011 -0400
2244 
2245      API of _got_signature_one_share()
2246 
2247   src/allmydata/mutable/servermap.py |    9 +++++----
2248   1 files changed, 5 insertions(+), 4 deletions(-)
2249 
2250  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2251  Author: Brian Warner <warner@lothar.com>
2252  Date:   Mon Oct 3 14:32:33 2011 -0400
2253 
2254      API of _try_to_validate_privkey()
2255 
2256   src/allmydata/mutable/servermap.py |    9 +++++----
2257   1 files changed, 5 insertions(+), 4 deletions(-)
2258 
2259  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2260  Author: Brian Warner <warner@lothar.com>
2261  Date:   Mon Oct 3 14:31:48 2011 -0400
2262 
2263      API and internals of _add_lease_failed()
2264 
2265   src/allmydata/mutable/servermap.py |    8 ++++----
2266   1 files changed, 4 insertions(+), 4 deletions(-)
2267 
2268  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2269  Author: Brian Warner <warner@lothar.com>
2270  Date:   Mon Oct 3 14:30:37 2011 -0400
2271 
2272      API of _privkey_query_failed()
2273 
2274   src/allmydata/mutable/servermap.py |    5 +++--
2275   1 files changed, 3 insertions(+), 2 deletions(-)
2276 
2277  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2278  Author: Brian Warner <warner@lothar.com>
2279  Date:   Mon Oct 3 14:29:43 2011 -0400
2280 
2281      fix bug in call to _privkey_query_failed, unrelated to refactoring
2282 
2283   src/allmydata/mutable/servermap.py |    2 +-
2284   1 files changed, 1 insertions(+), 1 deletions(-)
2285 
2286  commit ae615bec7d0d1b269710b6902797b12f9592ad62
2287  Author: Brian Warner <warner@lothar.com>
2288  Date:   Mon Oct 3 14:27:17 2011 -0400
2289 
2290      API of _got_corrupt_share()
2291 
2292   src/allmydata/mutable/servermap.py |   17 +++++++++--------
2293   1 files changed, 9 insertions(+), 8 deletions(-)
2294 
2295  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
2296  Author: Brian Warner <warner@lothar.com>
2297  Date:   Mon Oct 3 14:23:16 2011 -0400
2298 
2299      API of _got_results()
2300 
2301   src/allmydata/mutable/servermap.py |    9 +++++----
2302   1 files changed, 5 insertions(+), 4 deletions(-)
2303 
2304  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
2305  Author: Brian Warner <warner@lothar.com>
2306  Date:   Mon Oct 3 14:19:19 2011 -0400
2307 
2308      API of _query_failed()
2309 
2310   src/allmydata/mutable/servermap.py |    5 +++--
2311   1 files changed, 3 insertions(+), 2 deletions(-)
2312 
2313  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
2314  Author: Brian Warner <warner@lothar.com>
2315  Date:   Mon Oct 3 14:17:20 2011 -0400
2316 
2317      API of _do_read()
2318 
2319   src/allmydata/mutable/servermap.py |    6 ++++--
2320   1 files changed, 4 insertions(+), 2 deletions(-)
2321 
2322  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
2323  Author: Brian Warner <warner@lothar.com>
2324  Date:   Mon Oct 3 14:20:21 2011 -0400
2325 
2326      API of _do_query()
2327 
2328   src/allmydata/mutable/servermap.py |   15 +++++++--------
2329   1 files changed, 7 insertions(+), 8 deletions(-)
2330 
2331  commit 330625b9dac4cdbe72a11464a893065b9aeed453
2332  Author: Brian Warner <warner@lothar.com>
2333  Date:   Mon Oct 3 14:43:05 2011 -0400
2334 
2335      next step: first batch of updates to ServermapUpdater
2336 
2337      updates:
2338       most method-local variables in update()
2339       API of _build_initial_querylist()
2340       API of _send_initial_requests()
2341       .full_serverlist
2342       .extra_servers
2343 
2344   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
2345   1 files changed, 21 insertions(+), 18 deletions(-)
2346 
2347  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
2348  Author: Brian Warner <warner@lothar.com>
2349  Date:   Mon Oct 3 15:07:00 2011 -0400
2350 
2351      internal change: index _bad_shares with IServer
2352 
2353   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
2354   1 files changed, 10 insertions(+), 10 deletions(-)
2355 
2356  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
2357  Author: Brian Warner <warner@lothar.com>
2358  Date:   Mon Oct 3 18:20:47 2011 +0100
2359 
2360      internal change: index _known_shares with IServer instead of serverid
2361 
2362      callers are unchanged
2363 
2364   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
2365   1 files changed, 25 insertions(+), 17 deletions(-)
2366 
2367  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
2368  Author: Brian Warner <warner@lothar.com>
2369  Date:   Mon Oct 3 18:11:43 2011 +0100
2370 
2371      accessors and name cleanup for servermap.Servermap.last_update_mode/time
2372 
2373   src/allmydata/mutable/filenode.py  |    6 +++---
2374   src/allmydata/mutable/publish.py   |    4 ++--
2375   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2376   3 files changed, 16 insertions(+), 11 deletions(-)
2377 
2378  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
2379  Author: Brian Warner <warner@lothar.com>
2380  Date:   Mon Oct 3 18:11:14 2011 +0100
2381 
2382      accessors and name cleanup for servermap.Servermap.problems
2383 
2384   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
2385   src/allmydata/test/test_mutable.py |    6 +++---
2386   2 files changed, 16 insertions(+), 11 deletions(-)
2387 
2388  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
2389  Author: Brian Warner <warner@lothar.com>
2390  Date:   Mon Oct 3 18:10:41 2011 +0100
2391 
2392      accessors and name cleanup for servermap.Servermap.bad_shares
2393 
2394   src/allmydata/mutable/publish.py   |    2 +-
2395   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
2396   2 files changed, 18 insertions(+), 14 deletions(-)
2397 
2398  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
2399  Author: Brian Warner <warner@lothar.com>
2400  Date:   Mon Oct 3 18:10:05 2011 +0100
2401 
2402      accessors and name cleanup for servermap.Servermap.servermap .
2403 
2404   src/allmydata/mutable/publish.py   |   14 +++++----
2405   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
2406   2 files changed, 29 insertions(+), 23 deletions(-)
2407 
2408  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
2409  Author: Brian Warner <warner@lothar.com>
2410  Date:   Mon Oct 3 18:08:02 2011 +0100
2411 
2412      fix reachable_servers
2413 
2414   src/allmydata/mutable/checker.py   |    3 ++-
2415   src/allmydata/mutable/publish.py   |    4 +++-
2416   src/allmydata/mutable/servermap.py |   12 ++++++++++--
2417   3 files changed, 15 insertions(+), 4 deletions(-)
2418 
2419  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
2420  Author: Brian Warner <warner@lothar.com>
2421  Date:   Mon Oct 3 18:06:03 2011 +0100
2422 
2423      fix Servermap.unreachable_servers
2424 
2425   src/allmydata/mutable/servermap.py |   11 ++++++++---
2426   1 files changed, 8 insertions(+), 3 deletions(-)
2427 
2428  commit 2d9ea79b94bd4db674d40386fda90825785ac495
2429  Author: Brian Warner <warner@lothar.com>
2430  Date:   Mon Oct 3 18:03:48 2011 +0100
2431 
2432      give ServerMap a StorageFarmBroker, temporary
2433 
2434      this makes it possible for the ServerMap to accept bare serverids and still
2435      build data structures with IServers
2436 
2437   src/allmydata/mutable/checker.py   |    2 +-
2438   src/allmydata/mutable/filenode.py  |    2 +-
2439   src/allmydata/mutable/publish.py   |    2 +-
2440   src/allmydata/mutable/servermap.py |    5 +++--
2441   src/allmydata/test/test_mutable.py |    8 ++++----
2442   5 files changed, 10 insertions(+), 9 deletions(-)
2443 
2444  commit 718d1aeff6fded893f65397806d22ece928b0dd4
2445  Author: Brian Warner <warner@lothar.com>
2446  Date:   Mon Oct 3 13:43:30 2011 -0400
2447 
2448      add StorageFarmBroker.get_server_for_id(), temporary helper
2449 
2450      This will go away once we're passing IServers everywhere.
2451 
2452   src/allmydata/storage_client.py  |    2 ++
2453   src/allmydata/test/no_network.py |   13 +++++++++++++
2454   2 files changed, 15 insertions(+), 0 deletions(-)
2455 
2456  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
2457  Author: Brian Warner <warner@lothar.com>
2458  Date:   Sun Oct 2 01:11:50 2011 +0100
2459 
2460      add proper accessors for Servermap.connections, to make refactoring easier
2461 
2462   src/allmydata/mutable/publish.py   |    6 +++---
2463   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2464   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2465   3 files changed, 19 insertions(+), 14 deletions(-)
2466 
2467  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
2468  Author: Brian Warner <warner@lothar.com>
2469  Date:   Fri Sep 23 10:34:30 2011 -0700
2470 
2471      mutable/servermap.py and neighbors: s/peer/server/
2472 
2473   src/allmydata/mutable/checker.py   |   22 +-
2474   src/allmydata/mutable/publish.py   |  204 +++++++-------
2475   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
2476   src/allmydata/test/test_mutable.py |   18 +-
2477   4 files changed, 323 insertions(+), 323 deletions(-)
2478]
2479[TAG allmydata-tahoe-1.9.0
2480warner@lothar.com**20111031052301
2481 Ignore-this: cf598210dd1f314a1a121bf29a3d5918
2482]
2483Patch bundle hash:
24841e1eb37040d3249b52e76d1f9cf6bc25ccf0b6e6