Ticket #1688: fix_ftpd_mtime_with_unit_test.dpatch

File fix_ftpd_mtime_with_unit_test.dpatch, 88.2 KB (added by lebek, at 2012-03-31T00:08:11Z)

Content-Disposition: form-data; name="replace"

on

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