Ticket #1658: require-python-2.5.darcs.patch

File require-python-2.5.darcs.patch, 122.0 KB (added by davidsarah, at 2012-05-16T02:51:44Z)

Require Python 2.5. Includes simplifications resulting from being able to use sqlite3 from the standard library. This also drops sqlite3 from the set of versions and paths we report.

Line 
12 patches for repository tahoe-lafs.org:/home/source/darcs/tahoe-lafs/trunk:
2
3Wed May 16 03:41:49 BST 2012  david-sarah@jacaranda.org
4  * Require Python 2.5.
5
6Wed May 16 03:47:25 BST 2012  david-sarah@jacaranda.org
7  * Simplifications resulting from requiring Python 2.5 and therefore being able to use sqlite3 from the standard library. This also drops sqlite3 from the set of versions and paths we report.
8
9New patches:
10
11[Require Python 2.5.
12david-sarah@jacaranda.org**20120516024149
13 Ignore-this: 640715ce841a7a3af92027810baf9e3
14] hunk ./src/allmydata/__init__.py 363
15 
16     errors = []
17 
18-    # we require 2.4.4 on non-UCS-2, non-Redhat builds to avoid <http://www.python.org/news/security/PSF-2006-001/>
19-    # we require 2.4.3 on non-UCS-2 Redhat, because 2.4.3 is common on Redhat-based distros and will have patched the above bug
20-    # we require at least 2.4.2 in any case to avoid a bug in the base64 module: <http://bugs.python.org/issue1171487>
21-    if sys.maxunicode == 65535:
22-        if sys.version_info < (2, 4, 2) or sys.version_info[0] > 2:
23-            errors.append("Tahoe-LAFS current requires Python v2.4.2 or greater "
24-                          "for a UCS-2 build (but less than v3), not %r" %
25-                          (sys.version_info,))
26-    elif platform.platform().lower().find('redhat') >= 0:
27-        if sys.version_info < (2, 4, 3) or sys.version_info[0] > 2:
28-            errors.append("Tahoe-LAFS current requires Python v2.4.3 or greater "
29-                          "on Redhat-based distributions (but less than v3), not %r" %
30-                          (sys.version_info,))
31-    else:
32-        if sys.version_info < (2, 4, 4) or sys.version_info[0] > 2:
33-            errors.append("Tahoe-LAFS current requires Python v2.4.4 or greater "
34-                          "for a non-UCS-2 build (but less than v3), not %r" %
35-                          (sys.version_info,))
36+    # We require at least 2.5 on all platforms.
37+    # (On Python 3, we'll have failed long before this point.)
38+    if sys.version_info < (2, 5):
39+        try:
40+            version_string = ".".join(map(str, sys.version_info))
41+        except Exception:
42+            version_string = repr(sys.version_info)
43+        errors.append("Tahoe-LAFS current requires Python v2.5 or greater (but less than v3), not %s"
44+                      % (version_string,))
45 
46     vers_and_locs = dict(_vers_and_locs_list)
47     for requirement in install_requires:
48[Simplifications resulting from requiring Python 2.5 and therefore being able to use sqlite3 from the standard library. This also drops sqlite3 from the set of versions and paths we report.
49david-sarah@jacaranda.org**20120516024725
50 Ignore-this: c9161f1a95caa85a638aee893361f2cf
51] {
52hunk ./src/allmydata/__init__.py 198
53                 trace_info = (etype, str(emsg), ([None] + traceback.extract_tb(etrace))[-1])
54                 packages.append( (pkgname, (None, None, trace_info)) )
55             else:
56-                if 'sqlite' in pkgname:
57-                    packages.append( (pkgname, (get_version(module, 'version'), package_dir(module.__file__),
58-                                               'sqlite %s' % (get_version(module, 'sqlite_version'),))) )
59-                else:
60-                    comment = None
61-                    if pkgname == 'setuptools' and hasattr(module, '_distribute'):
62-                        # distribute does not report its version in any module variables
63-                        comment = 'distribute'
64-                    packages.append( (pkgname, (get_version(module, '__version__'), package_dir(module.__file__), comment)) )
65+                comment = None
66+                if pkgname == 'setuptools' and hasattr(module, '_distribute'):
67+                    # distribute does not report its version in any module variables
68+                    comment = 'distribute'
69+                packages.append( (pkgname, (get_version(module, '__version__'), package_dir(module.__file__), comment)) )
70         elif pkgname == 'python':
71             packages.append( (pkgname, (platform.python_version(), sys.executable, None)) )
72         elif pkgname == 'platform':
73hunk ./src/allmydata/__init__.py 277
74     """This function returns a list of errors due to any failed cross-checks."""
75 
76     errors = []
77-    not_pkg_resourceable = set(['sqlite3', 'python', 'platform', __appname__.lower()])
78+    not_pkg_resourceable = set(['python', 'platform', __appname__.lower()])
79     not_import_versionable = set(['zope.interface', 'mock', 'pyasn1'])
80     ignorable = set(['argparse', 'pyutil', 'zbase32', 'distribute', 'twisted-web', 'twisted-core'])
81 
82hunk ./src/allmydata/_auto_deps.py 83
83 def require_more():
84     import sys
85 
86-    # Sqlite comes built into Python >= 2.5, and is provided by the "pysqlite"
87-    # distribution for Python 2.4.
88-    try:
89-        import sqlite3
90-        sqlite3 # hush pyflakes
91-        package_imports.append(('sqlite3', 'sqlite3'))
92-    except ImportError:
93-        # pysqlite v2.0.5 was shipped in Ubuntu 6.06 LTS "dapper" and Nexenta NCP 1.
94-        install_requires.append("pysqlite >= 2.0.5")
95-        package_imports.append(('pysqlite', 'pysqlite2.dbapi2'))
96-
97     # Don't try to get the version number of setuptools in frozen builds, because
98     # that triggers 'site' processing that causes failures. Note that frozen
99     # builds still (unfortunately) import pkg_resources in .tac files, so the
100hunk ./src/allmydata/scripts/backupdb.py 2
101 
102-# the backupdb is only available if sqlite3 is available. Python-2.5.x and
103-# beyond include sqlite3 in the standard library. For python-2.4, the
104-# "pysqlite2" "package" (or "module") (which, despite the confusing name, uses
105-# sqlite3, and which, confusingly, comes in the "pysqlite" "distribution" (or
106-# "package")) must be installed. On debian, install python-pysqlite2
107-
108 import os.path, sys, time, random, stat
109hunk ./src/allmydata/scripts/backupdb.py 3
110+
111 from allmydata.util.netstring import netstring
112 from allmydata.util.hashutil import backupdb_dirhash
113 from allmydata.util import base32
114hunk ./src/allmydata/scripts/backupdb.py 66
115                  create_version=(SCHEMA_v2, 2), just_create=False):
116     # open or create the given backupdb file. The parent directory must
117     # exist.
118-    try:
119-        import sqlite3
120-        sqlite = sqlite3 # pyflakes whines about 'import sqlite3 as sqlite' ..
121-    except ImportError:
122-        from pysqlite2 import dbapi2
123-        sqlite = dbapi2 # .. when this clause does it too
124-        # This import should never fail, because setuptools requires that the
125-        # "pysqlite" distribution is present at start time (if on Python < 2.5).
126+    import sqlite3
127 
128     must_create = not os.path.exists(dbfile)
129     try:
130hunk ./src/allmydata/scripts/backupdb.py 70
131-        db = sqlite.connect(dbfile)
132-    except (EnvironmentError, sqlite.OperationalError), e:
133+        db = sqlite3.connect(dbfile)
134+    except (EnvironmentError, sqlite3.OperationalError), e:
135         print >>stderr, "Unable to create/open backupdb file %s: %s" % (dbfile, e)
136         return None
137 
138hunk ./src/allmydata/scripts/backupdb.py 85
139     try:
140         c.execute("SELECT version FROM version")
141         version = c.fetchone()[0]
142-    except sqlite.DatabaseError, e:
143+    except sqlite3.DatabaseError, e:
144         # this indicates that the file is not a compatible database format.
145         # Perhaps it was created with an old version, or it might be junk.
146         print >>stderr, "backupdb file is unusable: %s" % e
147hunk ./src/allmydata/scripts/backupdb.py 99
148         db.commit()
149         version = 2
150     if version == 2:
151-        return BackupDB_v2(sqlite, db)
152+        return BackupDB_v2(sqlite3, db)
153     print >>stderr, "Unable to handle backupdb version %s" % version
154     return None
155 
156hunk ./src/allmydata/scripts/backupdb.py 254
157             c.execute("INSERT INTO caps (filecap) VALUES (?)", (filecap,))
158         except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError):
159             # sqlite3 on sid gives IntegrityError
160-            # pysqlite2 on dapper gives OperationalError
161+            # pysqlite2 (which we don't use, so maybe no longer relevant) on dapper gives OperationalError
162             pass
163         c.execute("SELECT fileid FROM caps WHERE filecap=?", (filecap,))
164         foundrow = c.fetchone()
165hunk ./src/allmydata/test/test_backupdb.py 12
166 from allmydata.scripts import backupdb
167 
168 class BackupDB(unittest.TestCase):
169-    def create_or_skip(self, dbfile):
170+    def create(self, dbfile):
171         stderr = StringIO()
172         bdb = backupdb.get_backupdb(dbfile, stderr=stderr)
173hunk ./src/allmydata/test/test_backupdb.py 15
174-        if not bdb:
175-            if "I was unable to import a python sqlite library" in stderr.getvalue():
176-                raise unittest.SkipTest("sqlite unavailable, skipping test")
177+        self.failUnless(bdb, "unable to create backupdb from %r" % (dbfile,))
178         return bdb
179 
180     def skip_if_cannot_represent_filename(self, u):
181hunk ./src/allmydata/test/test_backupdb.py 32
182         self.basedir = basedir = os.path.join("backupdb", "create")
183         fileutil.make_dirs(basedir)
184         dbfile = os.path.join(basedir, "dbfile")
185-        bdb = self.create_or_skip(dbfile)
186-        self.failUnless(bdb)
187+        bdb = self.create(dbfile)
188         self.failUnlessEqual(bdb.VERSION, 2)
189 
190     def test_upgrade_v1_v2(self):
191hunk ./src/allmydata/test/test_backupdb.py 43
192         created = backupdb.get_backupdb(dbfile, stderr=stderr,
193                                         create_version=(backupdb.SCHEMA_v1, 1),
194                                         just_create=True)
195-        if not created:
196-            if "I was unable to import a python sqlite library" in stderr.getvalue():
197-                raise unittest.SkipTest("sqlite unavailable, skipping test")
198-            self.fail("unable to create v1 backupdb")
199+        self.failUnless(created, "unable to create v1 backupdb")
200         # now we should have a v1 database on disk
201hunk ./src/allmydata/test/test_backupdb.py 45
202-        bdb = self.create_or_skip(dbfile)
203-        self.failUnless(bdb)
204+        bdb = self.create(dbfile)
205         self.failUnlessEqual(bdb.VERSION, 2)
206 
207     def test_fail(self):
208hunk ./src/allmydata/test/test_backupdb.py 61
209                                     stderr_f)
210         self.failUnlessEqual(bdb, None)
211         stderr = stderr_f.getvalue()
212-        if "I was unable to import a python sqlite library" in stderr:
213-            pass
214-        else:
215-            self.failUnless("backupdb file is unusable" in stderr, stderr)
216-            self.failUnless("file is encrypted or is not a database" in stderr,
217-                            stderr)
218+        self.failUnlessIn("backupdb file is unusable", stderr)
219+        self.failUnlessIn("file is encrypted or is not a database", stderr)
220 
221         # put a directory in the way, to exercise a different error path
222         where = os.path.join(basedir, "roadblock-dir")
223hunk ./src/allmydata/test/test_backupdb.py 71
224         bdb = backupdb.get_backupdb(where, stderr_f)
225         self.failUnlessEqual(bdb, None)
226         stderr = stderr_f.getvalue()
227-        if "I was unable to import a python sqlite library" in stderr:
228-            pass
229-        else:
230-            self.failUnless(("Unable to create/open backupdb file %s" % where)
231-                            in stderr, stderr)
232-            self.failUnless("unable to open database file" in stderr, stderr)
233+        self.failUnlessIn("Unable to create/open backupdb file %s" % (where,), stderr)
234+        self.failUnlessIn("unable to open database file", stderr)
235 
236 
237     def writeto(self, filename, data):
238hunk ./src/allmydata/test/test_backupdb.py 86
239         self.basedir = basedir = os.path.join("backupdb", "check")
240         fileutil.make_dirs(basedir)
241         dbfile = os.path.join(basedir, "dbfile")
242-        bdb = self.create_or_skip(dbfile)
243-        self.failUnless(bdb)
244+        bdb = self.create(dbfile)
245 
246         foo_fn = self.writeto("foo.txt", "foo.txt")
247         blah_fn = self.writeto("bar/blah.txt", "blah.txt")
248hunk ./src/allmydata/test/test_backupdb.py 151
249         fileutil.make_dirs(basedir)
250 
251         where = os.path.join(basedir, "tooold.db")
252-        bdb = self.create_or_skip(where)
253+        bdb = self.create(where)
254         # reach into the DB and make it old
255         bdb.cursor.execute("UPDATE version SET version=0")
256         bdb.connection.commit()
257hunk ./src/allmydata/test/test_backupdb.py 169
258         self.basedir = basedir = os.path.join("backupdb", "directory")
259         fileutil.make_dirs(basedir)
260         dbfile = os.path.join(basedir, "dbfile")
261-        bdb = self.create_or_skip(dbfile)
262-        self.failUnless(bdb)
263+        bdb = self.create(dbfile)
264 
265         contents = {u"file1": "URI:CHK:blah1",
266                     u"file2": "URI:CHK:blah2",
267hunk ./src/allmydata/test/test_backupdb.py 231
268         self.basedir = basedir = os.path.join("backupdb", "unicode")
269         fileutil.make_dirs(basedir)
270         dbfile = os.path.join(basedir, "dbfile")
271-        bdb = self.create_or_skip(dbfile)
272-        self.failUnless(bdb)
273+        bdb = self.create(dbfile)
274 
275         self.writeto(u"f\u00f6\u00f6.txt", "foo.txt")
276         files = [fn for fn in listdir_unicode(unicode(basedir)) if fn.endswith(".txt")]
277hunk ./src/allmydata/test/test_cli.py 2464
278         # is the backupdb available? If so, we test that a second backup does
279         # not create new directories.
280         hush = StringIO()
281-        have_bdb = backupdb.get_backupdb(os.path.join(self.basedir, "dbtest"),
282-                                         hush)
283+        bdb = backupdb.get_backupdb(os.path.join(self.basedir, "dbtest"),
284+                                    hush)
285+        self.failUnless(bdb)
286 
287         # create a small local directory with a couple of files
288         source = os.path.join(self.basedir, "home")
289hunk ./src/allmydata/test/test_cli.py 2485
290 
291         d = self.do_cli("create-alias", "tahoe")
292 
293-        if not have_bdb:
294-            d.addCallback(lambda res: self.do_cli("backup", source, "tahoe:backups"))
295-            def _should_complain((rc, out, err)):
296-                self.failUnless("I was unable to import a python sqlite library" in err, err)
297-            d.addCallback(_should_complain)
298-            d.addCallback(self.stall, 1.1) # make sure the backups get distinct timestamps
299-
300         d.addCallback(lambda res: do_backup())
301         def _check0((rc, out, err)):
302             self.failUnlessReallyEqual(err, "")
303hunk ./src/allmydata/test/test_cli.py 2545
304             # available
305             self.failUnlessReallyEqual(err, "")
306             self.failUnlessReallyEqual(rc, 0)
307-            if have_bdb:
308-                fu, fr, fs, dc, dr, ds = self.count_output(out)
309-                # foo.txt, bar.txt, blah.txt
310-                self.failUnlessReallyEqual(fu, 0)
311-                self.failUnlessReallyEqual(fr, 3)
312-                self.failUnlessReallyEqual(fs, 0)
313-                # empty, home, home/parent, home/parent/subdir
314-                self.failUnlessReallyEqual(dc, 0)
315-                self.failUnlessReallyEqual(dr, 4)
316-                self.failUnlessReallyEqual(ds, 0)
317+            fu, fr, fs, dc, dr, ds = self.count_output(out)
318+            # foo.txt, bar.txt, blah.txt
319+            self.failUnlessReallyEqual(fu, 0)
320+            self.failUnlessReallyEqual(fr, 3)
321+            self.failUnlessReallyEqual(fs, 0)
322+            # empty, home, home/parent, home/parent/subdir
323+            self.failUnlessReallyEqual(dc, 0)
324+            self.failUnlessReallyEqual(dr, 4)
325+            self.failUnlessReallyEqual(ds, 0)
326         d.addCallback(_check4a)
327 
328hunk ./src/allmydata/test/test_cli.py 2556
329-        if have_bdb:
330-            # sneak into the backupdb, crank back the "last checked"
331-            # timestamp to force a check on all files
332-            def _reset_last_checked(res):
333-                dbfile = os.path.join(self.get_clientdir(),
334-                                      "private", "backupdb.sqlite")
335-                self.failUnless(os.path.exists(dbfile), dbfile)
336-                bdb = backupdb.get_backupdb(dbfile)
337-                bdb.cursor.execute("UPDATE last_upload SET last_checked=0")
338-                bdb.cursor.execute("UPDATE directories SET last_checked=0")
339-                bdb.connection.commit()
340+        # sneak into the backupdb, crank back the "last checked"
341+        # timestamp to force a check on all files
342+        def _reset_last_checked(res):
343+            dbfile = os.path.join(self.get_clientdir(),
344+                                  "private", "backupdb.sqlite")
345+            self.failUnless(os.path.exists(dbfile), dbfile)
346+            bdb = backupdb.get_backupdb(dbfile)
347+            bdb.cursor.execute("UPDATE last_upload SET last_checked=0")
348+            bdb.cursor.execute("UPDATE directories SET last_checked=0")
349+            bdb.connection.commit()
350 
351hunk ./src/allmydata/test/test_cli.py 2567
352-            d.addCallback(_reset_last_checked)
353+        d.addCallback(_reset_last_checked)
354 
355hunk ./src/allmydata/test/test_cli.py 2569
356-            d.addCallback(self.stall, 1.1)
357-            d.addCallback(lambda res: do_backup(verbose=True))
358-            def _check4b((rc, out, err)):
359-                # we should check all files, and re-use all of them. None of
360-                # the directories should have been changed, so we should
361-                # re-use all of them too.
362-                self.failUnlessReallyEqual(err, "")
363-                self.failUnlessReallyEqual(rc, 0)
364-                fu, fr, fs, dc, dr, ds = self.count_output(out)
365-                fchecked, dchecked = self.count_output2(out)
366-                self.failUnlessReallyEqual(fchecked, 3)
367-                self.failUnlessReallyEqual(fu, 0)
368-                self.failUnlessReallyEqual(fr, 3)
369-                self.failUnlessReallyEqual(fs, 0)
370-                self.failUnlessReallyEqual(dchecked, 4)
371-                self.failUnlessReallyEqual(dc, 0)
372-                self.failUnlessReallyEqual(dr, 4)
373-                self.failUnlessReallyEqual(ds, 0)
374-            d.addCallback(_check4b)
375+        d.addCallback(self.stall, 1.1)
376+        d.addCallback(lambda res: do_backup(verbose=True))
377+        def _check4b((rc, out, err)):
378+            # we should check all files, and re-use all of them. None of
379+            # the directories should have been changed, so we should
380+            # re-use all of them too.
381+            self.failUnlessReallyEqual(err, "")
382+            self.failUnlessReallyEqual(rc, 0)
383+            fu, fr, fs, dc, dr, ds = self.count_output(out)
384+            fchecked, dchecked = self.count_output2(out)
385+            self.failUnlessReallyEqual(fchecked, 3)
386+            self.failUnlessReallyEqual(fu, 0)
387+            self.failUnlessReallyEqual(fr, 3)
388+            self.failUnlessReallyEqual(fs, 0)
389+            self.failUnlessReallyEqual(dchecked, 4)
390+            self.failUnlessReallyEqual(dc, 0)
391+            self.failUnlessReallyEqual(dr, 4)
392+            self.failUnlessReallyEqual(ds, 0)
393+        d.addCallback(_check4b)
394 
395         d.addCallback(lambda res: self.do_cli("ls", "tahoe:backups/Archives"))
396         def _check5((rc, out, err)):
397hunk ./src/allmydata/test/test_cli.py 2594
398             self.failUnlessReallyEqual(err, "")
399             self.failUnlessReallyEqual(rc, 0)
400             self.new_archives = out.split()
401-            expected_new = 2
402-            if have_bdb:
403-                expected_new += 1
404-            self.failUnlessReallyEqual(len(self.new_archives), expected_new, out)
405+            self.failUnlessReallyEqual(len(self.new_archives), 3, out)
406             # the original backup should still be the oldest (i.e. sorts
407             # alphabetically towards the beginning)
408             self.failUnlessReallyEqual(sorted(self.new_archives)[0],
409hunk ./src/allmydata/test/test_cli.py 2619
410             # and upload the rest. None of the directories can be reused.
411             self.failUnlessReallyEqual(err, "")
412             self.failUnlessReallyEqual(rc, 0)
413-            if have_bdb:
414-                fu, fr, fs, dc, dr, ds = self.count_output(out)
415-                # new foo.txt, surprise file, subfile, empty
416-                self.failUnlessReallyEqual(fu, 4)
417-                # old bar.txt
418-                self.failUnlessReallyEqual(fr, 1)
419-                self.failUnlessReallyEqual(fs, 0)
420-                # home, parent, subdir, blah.txt, surprisedir
421-                self.failUnlessReallyEqual(dc, 5)
422-                self.failUnlessReallyEqual(dr, 0)
423-                self.failUnlessReallyEqual(ds, 0)
424+            fu, fr, fs, dc, dr, ds = self.count_output(out)
425+            # new foo.txt, surprise file, subfile, empty
426+            self.failUnlessReallyEqual(fu, 4)
427+            # old bar.txt
428+            self.failUnlessReallyEqual(fr, 1)
429+            self.failUnlessReallyEqual(fs, 0)
430+            # home, parent, subdir, blah.txt, surprisedir
431+            self.failUnlessReallyEqual(dc, 5)
432+            self.failUnlessReallyEqual(dr, 0)
433+            self.failUnlessReallyEqual(ds, 0)
434         d.addCallback(_check5a)
435         d.addCallback(lambda res: self.do_cli("ls", "tahoe:backups/Archives"))
436         def _check6((rc, out, err)):
437hunk ./src/allmydata/test/test_cli.py 2635
438             self.failUnlessReallyEqual(err, "")
439             self.failUnlessReallyEqual(rc, 0)
440             self.new_archives = out.split()
441-            expected_new = 3
442-            if have_bdb:
443-                expected_new += 1
444-            self.failUnlessReallyEqual(len(self.new_archives), expected_new)
445+            self.failUnlessReallyEqual(len(self.new_archives), 4)
446             self.failUnlessReallyEqual(sorted(self.new_archives)[0],
447                                  self.old_archives[0])
448         d.addCallback(_check6)
449hunk ./src/allmydata/test/test_version.py 61
450         res = cross_check({}, [])
451         self.failUnlessEqual(res, [])
452 
453-        res = cross_check({}, [("sqlite3", ("1.0", "", "blah"))])
454+        res = cross_check({}, [("allmydata-tahoe", ("1.0", "", "blah"))])
455         self.failUnlessEqual(res, [])
456 
457         res = cross_check({"foo": ("unparseable", "")}, [])
458}
459
460Context:
461
462[Improve a comment in __init__.py.
463david-sarah@jacaranda.org**20120514163431
464 Ignore-this: bbdce3d50dce46e497eba71f9146079e
465]
466[Suppress the PowmInsecureWarning from PyCrypto. refs #1586
467david-sarah@jacaranda.org**20120514032352
468 Ignore-this: 9cfd6936bc31e320d1ea9d52a495dbaa
469]
470[Clarify an ambiguity about which version number is meant in quickstart.rst.
471david-sarah@jacaranda.org**20120514002637
472 Ignore-this: afac742bcfb4aba9021b07e7505d4de0
473]
474[performance.rst: small updates, mention (lack of) MDMF
475Brian Warner <warner@lothar.com>**20120513210739
476 Ignore-this: 8c8beb98b6be5f6b4697cf507798957f
477 
478 refs #1398
479]
480[CREDITS: add amiller, zooko, rearrange a bit
481Brian Warner <warner@lothar.com>**20120513173217
482 Ignore-this: 4db3b71cdaf52e1596532ac9133186ae
483]
484[Doc updates and cosmetic fixes for #1115 patch.
485Brian Warner <warner@lothar.com>**20120513081550
486 Ignore-this: 87721ec10d0aee1124f2f24bdaea3007
487 
488 Removes the caveat from webapi.txt about count-good-share-hosts being wrong.
489 
490 This series should close #1115.
491]
492[Fixed an error in previous commit where an empty servermap would throw an exception in 'count-good-share-hosts'. Augmented unit test.
493Brian Warner <warner@lothar.com>**20120513075930
494 Ignore-this: 8c8937b3b3e15c63d9386628493f394e
495 
496 Signed-off-by: Andrew Miller <amiller@dappervision.com>
497]
498[Added tests for count-good-share-hosts under check and repair conditions. Patched the incorrect computation in immutable/filenode.py
499Brian Warner <warner@lothar.com>**20120513075930
500 Ignore-this: 6a77a5058adf18bca0a3517a77cf6190
501 
502 Signed-off-by: Andrew Miller <amiller@dappervision.com>
503 
504 Fixed missing import statements
505 
506 Signed-off-by: Andrew Miller <amiller@dappervision.com>
507]
508[test_web: fix use of headers= that's been wrong for a while
509Brian Warner <warner@lothar.com>**20120513074512
510 Ignore-this: 681e1ac6eafd23a0babfe8f182e3ca8
511]
512[webapi: don't allow ETags in t=info or t=rename-form, both are variable
513Brian Warner <warner@lothar.com>**20120513074511
514 Ignore-this: 40387e1534c9a5c202280d604eddfdcc
515 
516 t=info contains randomly-generated ophandles, and t=rename-form contains the
517 name of the child being renamed, so neither is eligible for a
518 short-circuiting ETag. Enhanced test_web to exercise this. Had to improve
519 FakeCHKFileNode slightly to let it participate. Refs #443.
520]
521[test_web: improve ETag tests, add If-None-Match test
522Brian Warner <warner@lothar.com>**20120513074511
523 Ignore-this: 72702e3237430441a4c98a084ae63df4
524]
525[Added unit tests covering #466:comment-15. Refactored the 'etag' behavior for immutable files to respond to all GET '?t=' flags, not just t=None
526Brian Warner <warner@lothar.com>**20120513074511
527 Ignore-this: fc3ba31b5678c08752b60fa3dd77fa83
528 
529 Signed-off-by: Andrew Miller <amiller@dappervision.com>
530]
531[Short circuit GET on ETags match
532Brian Warner <warner@lothar.com>**20120513074511
533 Ignore-this: 33d540fbc702c6b43e30d957107ba0b4
534 
535 When client does a conditional GET/HEAD with If-none-match:, if the condition
536 fails (ie, the client's ETag matches the file's) then we can short-circuit
537 the whole process and immediately return an empty body.
538]
539[Add ETags for immutable directories
540Brian Warner <warner@lothar.com>**20120513074511
541 Ignore-this: b173e8a1219e5fe906d49edc006da993
542 
543 Like immutable files, the ETag is based on the storage index. However, since
544 a directory is a special interpretation of a file, it is distinguished from
545 the file by prepending "DIR:" onto the start of the ETag, and adding
546 -representation on the end (where -representation is the ?t= argument, json,
547 info, etc).
548 
549 It also checks the return of setETag and avoids generating a representation
550 if the client already has it.
551]
552[test-dont-use-too-old-dep.py: fix tarfile timestamps
553Brian Warner <warner@lothar.com>**20120513063403
554 Ignore-this: b7acb8e369d768e072f3658b2de9af03
555 
556 It turns out that TarFile.addfile() doesn't provide a reasonable default
557 timestamp, resulting in files dated to 1970 (they're probably wearing
558 bell-bottoms and listening to disco too). Then, when the bdist_egg command
559 tries to create a *zip*file with those files, it explodes because zipfiles
560 cannot handle timestamps before 1980 (it prefers boomboxes and jackets with
561 straps on the shoulders, thank you very much).
562 
563 This puts a modern time.time() on the members of the tarfile, allowing future
564 cryptocoderarchaeologists the opportunity to make fun of fashion trends from
565 the user's chosen era, rather than an artificially older one.
566 
567 refs #1342
568]
569[Add 'tahoe debug flogtool' command, test for --help, and docs. This version gets the help synopses more correct, and changes the doc to say that this command is added in 1.10.0 rather than 1.9.2. fixes #1693
570david-sarah@jacaranda.org**20120331224122
571 Ignore-this: 9c2bc2f7b684323515690d658060c3fc
572]
573[modify build_helpers files
574Brian Warner <warner@lothar.com>**20120513034724
575 Ignore-this: 7f02472b3fbc2bfba4c02acce7d728e7
576 
577 Should close #1342. This makes the actual changes to the two test
578 files (separated from the 'rename' patch to avoid VC complications).
579]
580[rename build_helpers files
581Brian Warner <warner@lothar.com>**20120513034701
582 Ignore-this: c1e7257dc66d0d35dcbc830fbe04ab9b
583 
584 This is from the darcs patch for #1342, which failed to apply on my darcs
585 tree, so I'm landing it from git. I'm landing the rename-files part
586 separately from the modify-those-files part to avoid VC complications.
587]
588[webapi: remove undocumented t=mkdir-p operation
589Brian Warner <warner@lothar.com>**20120513021943
590 Ignore-this: 10bc56cc8bef468881fc7dd5a586bdf9
591 
592 Closes #380
593]
594[Improve webapi t=move docs.
595Brian Warner <warner@lothar.com>**20120509234653
596 Ignore-this: a9342b5cef162c12efec04e2d21ec777
597]
598[webui: merge 'move' form with 'rename' form
599Brian Warner <warner@lothar.com>**20120509212137
600 Ignore-this: a073958075eb1d041546f68342ec2ba2
601]
602[test_web: improve shouldFail2() error reporting
603Brian Warner <warner@lothar.com>**20120509211837
604 Ignore-this: 2ab6738d46fead5b49496ba379fd1d98
605]
606[webapi 'move'-button cleanups
607Brian Warner <warner@lothar.com>**20120509211827
608 Ignore-this: dc3bfe40150969222923f0abcf0ad691
609 
610 test_web.py: use shouldFail2(), safer than old shouldFail()
611 directory.py: forbid slashes in from_name=, return BAD_REQUEST instead of
612               GONE when trying to move into a non-directory
613]
614[Add unit test for moving a directory
615Brian Warner <warner@lothar.com>**20120509200714
616 Ignore-this: a915d7ddf007abf8b7d69c8e441d21dd
617 
618 My gut tells me this case sould be tested. The rename suite tests it, so
619 move's will too.
620]
621[Change the arbitrary URI support from implied to explicit
622Brian Warner <warner@lothar.com>**20120509200714
623 Ignore-this: 1117c90c8f5ea4e4155d3f0ac50e50d9
624 
625 The move webapi function now takes a target_type argument which lets it
626 know whether the target is a subdirectory name or URI. This is an
627 improvement over the old system in which the move handler tried to guess
628 whether the target was a name or a URI. Also fixed a little docs
629 copypaste problem and tweaked some line wrapping.
630]
631[Adding 'move' button to web UI, closes #1579
632Brian Warner <warner@lothar.com>**20120509200713
633 Ignore-this: d58ce02d31c0683c6859065b8c36f5d6
634 
635 This adds "move file" capability to the web UI's directory display. The
636 support and test framework is heavily based on the similar "rename file"
637 feature. Unit tests and documentation are included. Multiple in-progress
638 versions of this patch may be found in ticket 1579. This version
639 includes arbitrary URI target support and is compatible with the change
640 from tahoe_css to tahoe.css.
641]
642[CREDITS: lebek
643zooko@zooko.com**20120503173033
644 Ignore-this: 6c0ff786ce67697f7af7b861593992e3
645]
646[Make sure that foolscap.logging.log.setLogDir is called with a str (not unicode) path, v2. Includes test. fixes #1725
647david-sarah@jacaranda.org**20120429022844
648 Ignore-this: 1e94ed0c092c5c93c0a4031f8b8df092
649]
650[introweb announcements: show serverid, not tubid
651Brian Warner <warner@lothar.com>**20120424053728
652 Ignore-this: 4de5d89b06f4f067ec23f879582fdfaa
653 
654 'serverid' is the pubkey (for V2 clients), falling back to the tubid (for V1
655 clients). This also required cleaning up the way the index is created for the
656 old V1 introducer.
657]
658[Fix introweb display for mixed V1/V2 clients. Closes #1721.
659Brian Warner <warner@lothar.com>**20120423223053
660 Ignore-this: 766a34730dfce5b2d8c4ee1a411f50fb
661 
662 This significantly cleans up the IntroducerServer web-status renderers.
663 Instead of poking around in the introducer's internals, now the web-status
664 renderers get clean AnnouncementDescriptor and SubscriberDescriptor
665 objects. They are still somewhat foolscap-centric, but will provide a clean
666 abstraction boundary for future improvements.
667 
668 The specific #1721 bug was that old (V1) subscribers were handled by
669 wrapping their RemoteReference in a special WrapV1SubscriberInV2Interface
670 object, but the web-status display was trying to peek inside the object to
671 learn what host+port it was associated with, and the wrapper did not proxy
672 those extra attributes.
673 
674 A test was added to test_introducer to make sure the introweb page renders
675 properly and at least contains the nicknames of both the V1 and V2 clients.
676]
677[Updated webapi.rst to list /cap as a synonym for /uri
678Brian Warner <warner@lothar.com>**20120417184111
679 Ignore-this: c7dfb12987d883c94948f3fede254fe4
680]
681[Adding jg71 to CREDITS
682markus reichelt <mr@mareichelt.com>**20120414140107
683 Ignore-this: b69a4c4b5248a7092c550de395192afb
684]
685[Fix for ticket #1662
686Brian Warner <warner@lothar.com>**20120410183314
687 Ignore-this: b2164418fb1a24cef2bddf1ec3c42eed
688]
689[docs/frontends/drop-upload.rst: document more known issues and link to new ticket for an existing one.
690david-sarah@jacaranda.org**20120406043946
691 Ignore-this: 72e0a821961fb9137bb6f53742e4ba43
692]
693[test/common.py: remove ununsed 'is_bad' mechanism
694Brian Warner <warner@lothar.com>**20120404191103
695 Ignore-this: 15b5d8d66e8ee902831b8171a9069763
696 
697 This was a premature feature addition to the mock filenode, and gets in the
698 way of the IServer refactoring I'm trying to do. Best to remove it now and
699 re-introduce it in a better form later when it's actually needed.
700]
701[checker.py: minor simplifications
702Brian Warner <warner@lothar.com>**20120404190531
703 Ignore-this: 170f3e70dccd61c1ddb6ea6995ad09ca
704]
705[make IServer instances retain identity in copy() and deepcopy()
706Brian Warner <warner@lothar.com>**20120404181409
707 Ignore-this: ff39267d0e967cc76591ba5166f63fc7
708]
709[move IServer from storage_client.py to interfaces.py
710Brian Warner <warner@lothar.com>**20120404181359
711 Ignore-this: 7713ad62faa2841659ce5ed287d0837b
712]
713[Change capitalization of WUI and introducer welcome page headings; add test for introducer welcome page. Also fix a typo in a CSS class name. fixes #1708
714david-sarah@jacaranda.org**20120405235723
715 Ignore-this: 9b0055847a793528a028679847ab493c
716]
717[Rename web CheckResults to -Renderer, to avoid confusion. Closes #1705.
718Brian Warner <warner@lothar.com>**20120403030451
719 Ignore-this: 4c3e20d804e70a27d2464f770aec0c2c
720 
721 This avoids the name collision between the actual results
722 objects (defined in allmydata.check_results) and the code that renders
723 these objects into HTML (defined in allmydata.web.check_results). Only
724 the web-side objects were renamed.
725]
726[webapi.rst: de-tabify
727Brian Warner <warner@lothar.com>**20120402233205
728 Ignore-this: 6436168d9073b12e95ff410239bf133f
729]
730[servermap.py: oops, fix _done() condition, good catch by davidsarah
731Brian Warner <warner@lothar.com>**20120401221034
732 Ignore-this: a5b0f61d83606ebf3493917e69ad4edf
733]
734[doc: cross-link known_issues.rst and cautions.rst with one another
735zooko@zooko.com**20120401214039
736 Ignore-this: 3873f8807826cb21761cfe65a93955f8
737]
738[docs: FTP-and-SFTP.rst: recommend SFTP
739zooko@zooko.com**20120401212002
740 Ignore-this: 6459edd6dd0a62a82d3adc62c5656c63
741 
742 Add an explicit recommendation of SFTP over FTP. Separate the known issues of
743 FTP from SFTP. List "SFTP" first in all lists of the two. Use unicode bullet
744 points and prepend a utf-8 BOM. Use out-of-line rst hyperlinks.
745 
746]
747[interfaces.py: ensure that NoSuchChildError can be converted to str even when it is for a non-ASCII name. fixes #1483
748david-sarah@jacaranda.org**20110814225959
749 Ignore-this: d0069952ac7f5a13bdf5e957c7ae78a8
750]
751[misc/build_helpers/show-tool-versions.py: s/print_stderr/print_stdout/
752david-sarah@jacaranda.org**20120401022826
753 Ignore-this: c69d01081308a8144c9fdb34c4ab40b0
754]
755[bin/tahoe-script.template: fix the error message that is displayed when a runner script cannot be found. fixes #1488
756david-sarah@jacaranda.org**20110817222651
757 Ignore-this: b92c562e4da9adf63e642512c96eee89
758]
759[docs: quickstart: edits
760zooko@zooko.com**20120401015717
761 Ignore-this: cb56a1ffedb20d687133ad2ecfd7f8f7
762 
763 • use out-of-line links to avoid a warning from rst2html --verbose (fixes #1704)
764 • reflow to 77 fill-column and prepend utf-8 BOM (fixes #1703)
765 • recommend Python 2.7 (fixes #1702)
766 • remove link to wiki:AdvancedInstall (fixes #1701)
767 
768]
769[Spelling error in a comment.
770david-sarah@jacaranda.org**20120401013655
771 Ignore-this: 3a5a30be4be27bcfb1fecfd22ccf5327
772]
773[test_node.py: test that we tolerate a UTF-8 BOM at the start of tahoe.cfg, and can read UTF-8 option values. refs #1470
774david-sarah@jacaranda.org**20110808180552
775 Ignore-this: b4dd630857d192c02acaa6d8b163d5ca
776]
777[node.py: tolerate a UTF-8 BOM at the start of tahoe.cfg. fixes #1470
778david-sarah@jacaranda.org**20110808180204
779 Ignore-this: 9c859adce5668d7315d0d6e2ed9ddca7
780]
781[mutable/layout.py: improve confusing documentation of layout. fixes #1534
782david-sarah@jacaranda.org**20110914143947
783 Ignore-this: c5fbd3809ee3f7fc2b46cd23dad6b1c0
784]
785[setup: show-tool-versions: report cl only on windows, report buildslave, git, openssl, and lzip, but not 7za
786zooko@zooko.com**20120401005925
787 Ignore-this: 2f8d90893271d2f1c2d1185f95d95e86
788]
789[Document PYTHONPATH problem when running flogtool. refs #1693
790david-sarah@jacaranda.org**20120331223934
791 Ignore-this: 3edb13077119aaee76c1dcc46370e62
792]
793[Mutable repair: use new MODE_REPAIR to query all servers *and* get privkey
794Brian Warner <warner@lothar.com>**20120331183902
795 Ignore-this: e518c5372afe27331e09f8d70c63764d
796 
797 This fixes bug #1689. Repair was using MODE_READ to build the servermap,
798 which doesn't try hard enough to grab the privkey, and also doesn't guarantee
799 sending queries to all servers. This patch adds a new MODE_REPAIR which does
800 both, and does a separate, distinct mapupdate to start wth repair cycle,
801 instead of relying upon the (MODE_CHECK) mapupdate leftover from the
802 filecheck that triggered the repair.
803]
804[Add test for bug #1689: repairing empty file hits no-privkey assertion
805Brian Warner <warner@lothar.com>**20120331183902
806 Ignore-this: e84ead8eb2bfee9c65285b7f9a3a9237
807]
808[FTP-and-SFTP.rst: there were two more instances of 'rootcap'. Also made the wording tweak from ticket:1487#comment:4 . fixes #1487
809david-sarah@jacaranda.org**20120331023247
810 Ignore-this: 9ce9c37d9aa2b9629b14a001989d51b0
811]
812[test_ftp.py: fix a couple of unused imports. refs #1668
813david-sarah@jacaranda.org**20120331021725
814 Ignore-this: fc4f24fbc707efe86de9f35b782384ce
815]
816[FTP-and-SFTP.rst: directories containing mutable files should now be listable via FTP. refs #680
817david-sarah@jacaranda.org**20120331013730
818 Ignore-this: 78e507bd857623e78b32dd0e4da3c59
819]
820[ftpd file `size' attribute must be an integer
821Peter Le Bek <peter@hyperplex.net>**20120322131806
822 Ignore-this: bcf0047f19226e8dc00cb4995584761a
823]
824[unit test for ftpd LIST
825Peter Le Bek <peter@hyperplex.net>**20120330234139
826 Ignore-this: dfbb45a030be9840858df6047f21666c
827]
828[fix ftpd mtime retrieval
829Peter Le Bek <peter@hyperplex.net>**20120330234119
830 Ignore-this: 873cf8d1c28817d7e64565dda43a2ecb
831]
832[test_introducer.SystemTest: fix race condition
833Brian Warner <warner@lothar.com>**20120331002906
834 Ignore-this: d5cec29c09aca766634b6332c798436f
835 
836 SystemTest has a couple of different phases, separated by a poller which
837 waits for everything to be idle (all messages delivered, none in flight). It
838 does this by watching some internal "_debug_outstanding" counters in the
839 server and in each client, and waiting for them to hit zero.
840 
841 Just before the last phase, we replace the server with a new one (to make
842 sure clients re-send their messages properly). Unfortunately, the polling
843 function closed over the variable holding the original server, and didn't see
844 the replacement. It kept polling the old server, and failed to notice the
845 outstanding messages for the new server. The last phase of the test (check3)
846 was started too early, which failed (since some messages had not yet been
847 delivered), and then exploded in a flurry of dirty-reactor errors (because
848 some messages were delivered after test shutdown).
849 
850 This replaces the closed-over-variable with a "self.the_introducer", which
851 seems to fix the race.
852 
853 One additional place to look at in the future: the client
854 announcement-receive path (remote_announce) uses an eventually(). If the
855 message has been received and the eventual-send posted (but not yet executed)
856 when the poller sees it, the poller might erroneously conclude that the
857 client is idle and cause the same problem as above. To fix this, the poller
858 (probably all pollers) could be enhanced to do a flushEventualQueue before
859 querying the are-we-done-yet predicate function.
860]
861[Cosmetic formatting in docs.
862david-sarah@jacaranda.org**20120322220534
863 Ignore-this: 2e3ddb170f45035c4655ce25aaa09977
864]
865[Put SFTP before FTP in various docs. fixes #1692
866david-sarah@jacaranda.org**20120322220453
867 Ignore-this: 6759fbe5d58a965120b55cf3c1578970
868]
869[Correct a link to frontends/drop-upload.rst. fixes #1690
870david-sarah@jacaranda.org**20120322220118
871 Ignore-this: dafc6205151545e8095f908dd57c213
872]
873[Fix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids
874Brian Warner <warner@lothar.com>**20120318000135
875 Ignore-this: 79354457b77fe2d8534fc0b792b6eb0c
876 
877 This still leaves immutable-publish results incorrectly using tubids instead
878 of serverids. That will need some more work, since it might change the Helper
879 interface.
880]
881[IServer.get_name(): remove v0- prefix from displayed server names
882Brian Warner <warner@lothar.com>**20120318000135
883 Ignore-this: f3dc25be3ecca5935a4320ca53b70cad
884 
885 Don't remove the prefix if it isn't there: that avoids the need to fix tests
886 which use a bogus key (usually all-zeros).
887]
888[Fix a missing comma in the last patch. refs #1295
889david-sarah@jacaranda.org**20120314235040
890 Ignore-this: 34327ffeabed65759ad511760f925e47
891]
892[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
893david-sarah@jacaranda.org**20120314234729
894 Ignore-this: 2ab43c7893ed305a9d40023ec176d179
895]
896[minor: hush pyflakes, move pycryptopp dep to unconditional section
897Brian Warner <warner@lothar.com>**20120314062035
898 Ignore-this: 786fae44ad106c7924f8c9644ee0e48d
899 
900 Also change Makefile's "pyflakes" rule to emit less output, so buildbot will
901 count errors properly.
902]
903[Update find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a doc change; look out for compatibility problems.
904david-sarah@jacaranda.org**20120313203041
905 Ignore-this: fd18113695c2a524972c389e8b52e2e8
906]
907[Minor updates to URLs.
908david-sarah@jacaranda.org**20120313202853
909 Ignore-this: 2e5719e8cf19d7be73fbcba98dc1e5dd
910]
911[Update more links from http: to https: in documentation and comments.
912david-sarah@jacaranda.org**20120313202654
913 Ignore-this: 2c11cef35639b101412c024896256529
914]
915[new introducer: signed extensible dictionary-based messages! refs #466
916Brian Warner <warner@lothar.com>**20120314012432
917 Ignore-this: e87de488a26c11711cf6978c9fb1175c
918 
919 This introduces new client and server halves to the Introducer (renaming the
920 old one with a _V1 suffix). Both have fallbacks to accomodate talking to a
921 different version: the publishing client switches on whether the server's
922 .get_version() advertises V2 support, the server switches on which
923 subscription method was invoked by the subscribing client.
924 
925 The V2 protocol sends a three-tuple of (serialized announcement dictionary,
926 signature, pubkey) for each announcement. The V2 server dispatches messages
927 to subscribers according to the service-name, and throws errors for invalid
928 signatures, but does not otherwise examine the messages. The V2 receiver's
929 subscription callback will receive a (serverid, ann_dict) pair. The
930 'serverid' will be equal to the pubkey if all of the following are true:
931 
932   the originating client is V2, and was told a privkey to use
933   the announcement went through a V2 server
934   the signature is valid
935 
936 If not, 'serverid' will be equal to the tubid portion of the announced FURL,
937 as was the case for V1 receivers.
938 
939 Servers will create a keypair if one does not exist yet, stored in
940 private/server.privkey .
941 
942 The signed announcement dictionary puts the server FURL in a key named
943 "anonymous-storage-FURL", which anticipates upcoming Accounting-related
944 changes in the server advertisements. It also provides a key named
945 "permutation-seed-base32" to tell clients what permutation seed to use. This
946 is computed at startup, using tubid if there are existing shares, otherwise
947 the pubkey, to retain share-order compatibility for existing servers.
948]
949['tahoe admin generate-keypair/derive-pubkey': add Ed25519 keypair commands
950Brian Warner <warner@lothar.com>**20120314012432
951 Ignore-this: 6dff9c61d97f746de338027b72cf1912
952 
953 Also add parse_privkey/parse_pubkey tools to util.keyutil
954]
955[bump pycryptopp dependency to >=0.6.0, to get ed25519 signatures
956Brian Warner <warner@lothar.com>**20120314012432
957 Ignore-this: 6c1cf12a30567880ab2cc53c4282be11
958 
959 This is for the upcoming #466 signed-introducer code.
960]
961[Update copyright notices. refs #1686
962david-sarah@jacaranda.org**20120313205057
963 Ignore-this: a6a4904001412248c4164f002b52f79a
964]
965[Make the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes a test. fixes #1682
966david-sarah@jacaranda.org**20120308231758
967 Ignore-this: b639c3da453b95ee7edca8090ea1b9aa
968]
969[Update various references to allmydata.org or http://tahoe-lafs.org in comments, to https://tahoe-lafs.org. refs #1682
970david-sarah@jacaranda.org**20120308231719
971 Ignore-this: a71d00ea46af0a44e5c957df56d02adf
972]
973[Suppress a warning from win32eventreactor on Windows (patch v2). fixes #1681
974david-sarah@jacaranda.org**20120227190317
975 Ignore-this: c7efe1065d45a00caf182a1de812f4bb
976]
977[Add nickname/nodeid to storage-status web page. Closes #1204.
978Brian Warner <warner@lothar.com>**20120313025736
979 Ignore-this: 78e533e06c390221edd66c45ec96e34a
980 
981 Also add tahoe.css to the page, to make it look slightly prettier.
982]
983[add some quick tests of the introducer/web improvements
984Brian Warner <warner@lothar.com>**20120312193536
985 Ignore-this: 9e31f368b1dfa586ab6e3f17707d9ec
986]
987[introducer web page: add CSS styling, roughly match client Welcome page
988Brian Warner <warner@lothar.com>**20120307022505
989 Ignore-this: bfc450f394578a3463f31acc1019862
990 
991 Also add /static and the top-level /tahoe.css -type stuff to the introducer's
992 web server.
993]
994[tahoe.css: fix #section typo, update welcome.xhtml to match
995Brian Warner <warner@lothar.com>**20120307022241
996 Ignore-this: 4e8a8382234aad017b093f8896b329d6
997 
998 The "#section" declaration (which matches id="section") should have been
999 ".section" (which matches class="section").
1000 
1001 The welcome page has a feature that I actually liked: the little "This
1002 Client" sidebar sits just to the right of the start of the Controls block.
1003 Fixing .section broke that (the clear:both introduces a gap, forcing the
1004 Controls block to start strictly below the bottom of the This Client block).
1005 So I also removed class="section" from the Controls block to allow them to
1006 share the horizontal space again.
1007]
1008[make provisioning/reliability work in the new location, fix tests
1009Brian Warner <warner@lothar.com>**20120216222905
1010 Ignore-this: 8a2923a54ca224fe69fe404e819aaaac
1011]
1012[remove 'provisioning'/'reliability' from WUI, add to misc/operations_helpers
1013Brian Warner <warner@lothar.com>**20120216222905
1014 Ignore-this: 4090c8ac99f139393d9573b65cbbfe0c
1015 
1016 Also remove docs related to reliability/provisioning pages
1017]
1018[provisioning.py: update disk sizes and usage numbers
1019Brian Warner <warner@lothar.com>**20120213155708
1020 Ignore-this: e47ee282bfba4beb2598b227add5250a
1021]
1022[configuration.rst: another attempt to fix formatting of sample tahoe.cfg.
1023david-sarah@jacaranda.org**20120131000949
1024 Ignore-this: bb67b6c9bb191a1335eaadfe9594fa4f
1025]
1026[configuration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg. Also fix the RST formatting of blank lines in the file.
1027david-sarah@jacaranda.org**20120131000643
1028 Ignore-this: 9c5327edf031d8578c19383d950b17b9
1029]
1030[Add a Python 3 blocker to setup.py, to display a better error message when it is run under Python 3.
1031david-sarah@jacaranda.org**20120127015525
1032 Ignore-this: 5f032794ecc8cd6c512a7ab9efffed2
1033]
1034[Ensure that verification proceeds and stops when appropriate.
1035Brian Warner <warner@lothar.com>**20120124205209
1036 Ignore-this: 88278bbd6a3b33cf3b286feaa162ad02
1037 
1038 The removed assertions are appropriate for a download that seeks to
1039 return plaintext to a caller; if we don't have at least k active remote
1040 shares, then we can't hope to do that. They're not appropriate for a
1041 verification operation; a user can try to verify a file that has fewer
1042 than k shares available, so that shouldn't be treated as an error.
1043 Instead, we proceed with fewer than k shares, and ensure that we
1044 terminate the download if we have no shares at all and we're verifying.
1045]
1046[Add test_verify_mdmf_all_bad_sharedata
1047Brian Warner <warner@lothar.com>**20120124205209
1048 Ignore-this: 52acb4f0256af764acb038f7c8344367
1049 
1050 test_verify_mdmf_all_bad_sharedata tests for the regression described
1051 in ticket 1648. In particular, it will trigger the misplaced assertion
1052 in the share activation code. It also tests to make sure that
1053 verification continues with fewer than k shares.
1054]
1055[Added clarification on how interface= works
1056Brian Warner <warner@lothar.com>**20120124203821
1057 Ignore-this: 57f86d178c8e4f3c62d15bf99dec7d0d
1058]
1059[FTP-and-SFTP.rst: minor edits
1060Brian Warner <warner@lothar.com>**20120124203654
1061 Ignore-this: ec21fadb85cf7b3192d32b02c03c3656
1062]
1063[Updated accounts.url directive per warner's suggestions
1064Brian Warner <warner@lothar.com>**20120124203126
1065 Ignore-this: 9297ec6406e11d4e1fe24ba3a06725e3
1066]
1067[Added information on accounts.url directive
1068Brian Warner <warner@lothar.com>**20120124203126
1069 Ignore-this: 6d6142418eabdad789a2fc68f26b3ba1
1070]
1071[docs: an extra newline to separate utf-8 BOF from comment for the sake of trac's rst renderer
1072zooko@zooko.com**20120122212002
1073 Ignore-this: 5c6d0dbfa1430681fa00494937537956
1074]
1075[docs: a newline between the utf-8 BOF and the comment in order to prevent trac from misrendering the comment
1076zooko@zooko.com**20120122211856
1077 Ignore-this: 5e92cb88ba46b82227338522b834b90d
1078 sheesh
1079]
1080[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
1081zooko@zooko.com**20120122211731
1082 Ignore-this: f7912a13ffba60408ec901a9586ce8a4
1083]
1084[docs: insert another newline between utf-8 BOF and title
1085zooko@zooko.com**20120122211427
1086 Ignore-this: 1b3861ef7d4531acfa61fac31e14fe98
1087]
1088[docs: insert newline after utf-8 BOF and before restructuredtext title
1089zooko@zooko.com**20120122182127
1090 Ignore-this: f947afe5bdfc9f44ba9bf7f0e585da7c
1091]
1092[docs: remove utf-8 "BOM" which confuses trac's rst renderer
1093zooko@zooko.com**20120122140052
1094 Ignore-this: ba58c59a314f23c65de5443bd7b6ffcb
1095]
1096[docs: try again to change RestructuredText titles to a format that trac will render
1097zooko@zooko.com**20120122135613
1098 Ignore-this: 588bbb627a95cd8317c809567cfa3e78
1099]
1100[docs: backdoors.rst: fix title formatting
1101zooko@zooko.com**20120122135125
1102 Ignore-this: 5bf980c1a8703ee353cd747ae343176a
1103]
1104[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
1105zooko@zooko.com**20120122134319
1106 Ignore-this: e1b5b3d2809040cfd7f13bb88ee8313d
1107]
1108[update release process: git, not darcs, etc
1109Brian Warner <warner@lothar.com>**20120113071257
1110 Ignore-this: 2eaa1f0e93dc545989bb1e62b2446e1e
1111]
1112[prepare to Org-ify how_to_make_a_tahoe-lafs_release: rename the file
1113Brian Warner <warner@lothar.com>**20120113070153
1114 Ignore-this: d9bb83dfd6c3b4c0ca0efd2adacdf63c
1115]
1116[.gitignore: ignore generated test-coverage files too
1117Brian Warner <warner@lothar.com>**20120113065629
1118 Ignore-this: 4411c7d620f5865b8c4dedef7e5a8c33
1119]
1120[merge relnotes, quickstart.rst from 1.9.1 release
1121Brian Warner <warner@lothar.com>**20120112232420
1122 Ignore-this: 6b535bb1a3bd5ea87ee12cc6b17eeb5c
1123]
1124[retrieve.py: unconditionally check share-hash-tree. Fixes #1654.
1125Brian Warner <warner@lothar.com>**20120112213553
1126 Ignore-this: 7ddc903a382b52bc014262b3b4099165
1127 
1128 Add Kevan's unit test, update known_issues.rst
1129]
1130[.gitignore: also ignore tahoe-deps and .tgz, to fix 'make tarballs'
1131Brian Warner <warner@lothar.com>**20120112210925
1132 Ignore-this: e8a7d942f123ee6bf4f2966ddc2742a3
1133 
1134 Otherwise, the get-version-from-git code thinks the tree is dirty, and
1135 creates SUMO tarballs with -dirty in the name.
1136]
1137[Makefile: fix 'make-version' to use git-or-darcs, not just darcs
1138Brian Warner <warner@lothar.com>**20120112210654
1139 Ignore-this: ae32660458b5ab036ab98f0d1cf4e414
1140]
1141[_auto_deps.py: don't allow pycrypto 2.0.1. fixes #1631
1142david-sarah@jacaranda.org**20120110195758
1143 Ignore-this: de409a745c93a78b095dc72edd13a15d
1144]
1145[MANIFEST.in: make git-based 'setup.py sdist' match darcs
1146Brian Warner <warner@lothar.com>**20120109234637
1147 Ignore-this: 92bf7d679e9d5696994efe39c40ae216
1148 
1149 Previously, tarballs generated from a git tree were lacking a lot of
1150 important non-code files, like docs/
1151]
1152[restore .gitignore, stop .darcs-boringfile it
1153warner@lothar.com**20120109025243
1154 Ignore-this: b37efcdab8662fe85660d68e3662b4b9
1155]
1156[remove setuptools_darcs.egg
1157warner@lothar.com**20120108225545
1158 Ignore-this: 39711cf7a9856acd5a136038d58ca5ff
1159]
1160[fix bundled data under git, remove setuptools_darcs
1161Brian Warner <warner@lothar.com>**20120108221250
1162 Ignore-this: ebfc0b267961523edd7e26c761b2554f
1163 
1164 This uses explicitly enumerated packages= and package_data= arguments to
1165 setup(), rather than relying upon the convenient (but darcs-specific)
1166 functions which would determine these values by asking the revision-control
1167 system.
1168 
1169 Note that darcsver is still used, when building from a darcs tree.
1170]
1171[mutable/retrieve.py: clean up control flow to avoid dropping errors
1172Brian Warner <warner@lothar.com>**20120108221248
1173 Ignore-this: 4e991bdf6399439d2cee3d743814a327
1174 
1175 * replace DeferredList with gatherResults, simplify result handling
1176 * use BadShareError to signal recoverable problems in either fetch or
1177   validate, catch after _validate_block
1178 * _validate_block is thus not responsible for noticing fetch problems
1179 * rename _validation_or_decoding_failed() to _handle_bad_share()
1180 * _get_needed_hashes() returns two Deferreds, instead of a hard-to-unpack
1181   DeferredList
1182]
1183[mutable/layout.py: raise BadShareError instead of assert()
1184Brian Warner <warner@lothar.com>**20120108221247
1185 Ignore-this: 129891a807315f657b80576025135df8
1186]
1187[mutable: don't tell server about corruption unless it's really CorruptShareError
1188Brian Warner <warner@lothar.com>**20120108221245
1189 Ignore-this: 90da01af1008477c45d333a0f74f1c5b
1190]
1191[mutable: simplify Retrieve._process_segment() to use a gatherDeferred
1192Brian Warner <warner@lothar.com>**20120108221244
1193 Ignore-this: cfc7a56414889d02bffd747f1abad8ef
1194]
1195[Retrieve.decode(): simplify setup of DeferredList-like argument
1196Brian Warner <warner@lothar.com>**20120108221240
1197 Ignore-this: c92d377bf4d65251240e59c8db5452af
1198 
1199 make it more obviously match the expectations of _decode_blocks() and
1200 _maybe_decode_and_decrypt_segment()
1201]
1202[mutable: add comments about the tricky DeferredList structures in retrieve
1203Brian Warner <warner@lothar.com>**20120108221238
1204 Ignore-this: da47db692fbdf11a3ce01a952a60d1a0
1205]
1206[add test-git-ignore.py, to port the 'clean' buildbot test to git
1207Brian Warner <warner@lothar.com>**20120108221232
1208 Ignore-this: 442efa1eacc27b7ae2690645ed997894
1209 
1210 add .gitignore to match .darcs-boringfile, mostly
1211]
1212[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
1213david-sarah@jacaranda.org**20111120232426
1214 Ignore-this: d4ea9154e98902c5de055b6de23c48f9
1215]
1216[test_mutable: don't use 75 shares (slow), now that the bug is fixed
1217Brian Warner <warner@lothar.com>**20111228223819
1218 Ignore-this: 930f1a24ebe9ed2ab25e4b2a16e36352
1219 
1220 I missed this part of Kevan's fix-1628.darcs.2.patch .
1221]
1222[mutable publish: fix not-enough-shares detection. Refs #1628.
1223Brian Warner <warner@lothar.com>**20111228055018
1224 Ignore-this: 23db08d8d630268e208e1755509adf92
1225 
1226 This should match the "fix-1628.darcs.2.patch" attachment on that ticket.
1227]
1228[mutable publish: track multiple servers-per-share. Fixes some of #1628.
1229Brian Warner <warner@lothar.com>**20111228053358
1230 Ignore-this: 6e8cb92e70273b81098f73ebf23164bd
1231 
1232 The remaining work is to write additional tests.
1233 
1234 src/allmydata/test/no_network.py:
1235 
1236  This supports tests in which servers leave the grid only to return with
1237  their shares intact at a later time.
1238 
1239 src/allmydata/test/test_mutable.py:
1240 
1241  The UCWEs in the incident reports associated with #1628 all seem to be
1242  associated with shares that the servermap knows about, but which aren't
1243  accounted for during the publish process for whatever reason. Specifically,
1244  it looks like the publisher is only capable of keeping track of a single
1245  storage server for a given share. This makes the repair process worse than
1246  it was pre-MDMF at updating all of the shares of a particular file to the
1247  newest version, and can also cause spurious UCWEs. This test simulates such
1248  a layout and fails if an UCWE is thrown. We need to write another test to
1249  ensure that all copies of a share are updated to the latest version (or
1250  alter this test to do that), so that the test suite doesn't pass unless both
1251  regressions are fixed.
1252 
1253  We want the publisher to follow the existing share placement when uploading
1254  a new version of a mutable file, and we don't want this test to pass unless
1255  it does.
1256 
1257 src/allmydata/mutable/publish.py:
1258 
1259  Before this commit, the publisher only kept track of a single writer for
1260  each share. This is insufficient to handle updates in which a single share
1261  may live on multiple servers. In the best case, an update will only update
1262  one of the existing shares instead of all of them. In some cases, the update
1263  will encounter the existing shares when publishing some other share,
1264  interpret it as a sign of an uncoordinated update, and fail. Keeping track
1265  of all of the writers helps ensure that all existing shares are updated, and
1266  helps avoid spurious uncoordinated write errors.
1267]
1268[docs: how_to_make_a_tahoe-lafs_release.rst add Google+ page to publicity list, change to cute unicode checkboxes
1269zooko@zooko.com**20111226151905
1270 Ignore-this: c7c1e67761df48fa11c0dad1847c2d8
1271]
1272[doc: about.rst: use unicode emdash, use non-embedded URIs, add clarificaiton of when a file gets its mutable-or-immutable nature
1273zooko@zooko.com**20111206171908
1274 Ignore-this: 61bc3f1582c68dcc9867da964fc9bb3a
1275 embedded URIs, although documented here:
1276 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris
1277 generate messages like this from rst2html --verbose:
1278 
1279 quickstart.rst:3: (INFO/1) Duplicate explicit target name: "the tahoe-dev mailing list".
1280 
1281 Also this patch prepends a "utf-8 BOM" to the beginning of the file.
1282]
1283[minor cleanup: remove trailing spaces in misc/
1284Brian Warner <warner@lothar.com>**20111218201841
1285 Ignore-this: 69a8904c17d8fd930442d00e24b7b188
1286]
1287[Tests for ref #1592.
1288david-sarah@jacaranda.org**20111217043130
1289 Ignore-this: a6713500ebe2d686581c6743b8a88f60
1290]
1291[test_web.py cleanup: use failUnlessIn/failIfIn in preference to 'in' operator.
1292david-sarah@jacaranda.org**20111217042710
1293 Ignore-this: c351f4b1d162eca545ba657dc3c70c19
1294]
1295[Marcus Wanner's favicon patch. fixes #1592
1296david-sarah@jacaranda.org**20111217033201
1297 Ignore-this: 3528c920379fe0d157441dafe9a7c5a8
1298]
1299[setup.py: stop putting pyutil.version_class/etc in _version.py
1300Brian Warner <warner@lothar.com>**20111205055049
1301 Ignore-this: 926fa9a8a34a04f24ee6e006423e9c1
1302 
1303 allmydata.__version__ can just be a string, it doesn't need to be an instance
1304 of some fancy NormalizedVersion class. Everything inside Tahoe uses
1305 str(__version__) anyways.
1306 
1307 Also add .dev0 when a git tree is dirty.
1308 
1309 Closes #1466
1310]
1311[setup.py: get version from git or darcs
1312Brian Warner <warner@lothar.com>**20111205044001
1313 Ignore-this: 5a406b33000446d85edc722298391220
1314 
1315 This replaces the setup.cfg aliases that run "darcsver" before each major
1316 command with the new "update_version". update_version is defined in setup.py,
1317 and tries to get a version string from either darcs or git (or leaves the
1318 existing _version.py alone if neither VC metadata is available).
1319 
1320 Also clean up a tiny typo in verlib.py that messed up syntax hilighting.
1321]
1322[docs/known_issues.rst: describe when the unauthorized access attack is known to be possible, and fix a link.
1323david-sarah@jacaranda.org**20111118002013
1324 Ignore-this: d89b1f1040a0a7ee0bde893d23612049
1325]
1326[more tiny buildbot-testing whitespace changes
1327warner@lothar.com**20111118002041
1328 Ignore-this: e816e2a5ab939e2f7a89ef12b8a157d8
1329]
1330[more tiny buildbot-testing whitespace changes
1331warner@lothar.com**20111118001828
1332 Ignore-this: 57bb52cba83ea9a19728ba0a8ffadb69
1333]
1334[tiny change to exercise the buildbot hook
1335warner@lothar.com**20111118001511
1336 Ignore-this: 7220b7790b39f19f9721d9e93b755030
1337]
1338[Strengthen description of unauthorized access attack in known_issues.rst.
1339david-sarah@jacaranda.org**20111118000030
1340 Ignore-this: e2f68f621fe666b6201542623aa4d182
1341]
1342[remove remaining uses of nevow's "formless" module
1343Brian Warner <warner@lothar.com>**20111117225423
1344 Ignore-this: a128dea91a1c63b3bbefa34729344d69
1345 
1346 We're slowly moving away from Nevow, and marcusw's previous patch removed
1347 uses of the formless CSS file, so now we can stop testing that nevow can find
1348 that file, and remove the lingering unused "import formless" call.
1349]
1350[1585-webui.darcs.patch
1351Marcus Wanner <marcus@wanners.net>**20111117214923
1352 Ignore-this: 23cf2a06c545be5f821c071d652178ee
1353]
1354[Remove duplicate tahoe_css links from manifest.xhtml and rename-form.xhtml
1355Brian Warner <warner@lothar.com>**20111116224225
1356 Ignore-this: 12024fff17964607799928928b9aadf3
1357 
1358 They were probably meant to be links to webform_css, but we aren't really
1359 using Nevow's form-generation code anyways, so they can just be removed.
1360 Thanks to 'marcusw' for the catch.
1361]
1362[iputil: handle openbsd5 (just like openbsd4)
1363Brian Warner <warner@lothar.com>**20111115220423
1364 Ignore-this: 64b28bd2fd06eb5230ea41d91540dd05
1365 
1366 Patch by 'sickness'. Closes #1584
1367]
1368[Makefile count-lines: let it work on OS-X (-l not --lines), add XXX
1369Brian Warner <warner@lothar.com>**20111109184227
1370 Ignore-this: 204ace1dadc9ed27543c62965b4e6757
1371 
1372 OS-X's simple-minded /usr/bin/wc doesn't understand --lines, but everyone
1373 understands -l .
1374]
1375[setup.py: umask=022 for 'sdist', to avoid depending on environment
1376Brian Warner <warner@lothar.com>**20111109183632
1377 Ignore-this: acd5db88ba8f1972d618b14f9e5b803c
1378 
1379 The new tarball-building buildslave had a bogus umask set, causing the 1.9.0
1380 tarballs to be non-other-user-readable (go-rwx), which is a hassle for
1381 packaging. (The umask was correct on the old buildslave, but it was moved to
1382 a new host shortly before the release). This should make sure tarballs are
1383 correct despite the host's setting.
1384 
1385 Note to others: processes run under twistd get umask=077 unless you arrange
1386 otherwise.
1387]
1388[_auto_deps.py: blacklist PyCrypto 2.4.
1389david-sarah@jacaranda.org**20111105022457
1390 Ignore-this: 876cb24bc71589e735f48bf449cad81e
1391]
1392[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
1393david-sarah@jacaranda.org**20111009050301
1394 Ignore-this: 62ee03f4b8a96c292e75c097ad87d52e
1395]
1396[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
1397david-sarah@jacaranda.org**20111009045023
1398 Ignore-this: f49ece515620081da1d745ae6da19d21
1399]
1400[check-miscaptures.py: Python doesn't really have declarations; report the topmost assignment. refs #1555
1401david-sarah@jacaranda.org**20111009044800
1402 Ignore-this: 4905c9dfe7726f433333e216a6760a4b
1403]
1404[check-miscaptures.py: handle destructuring function arguments correctly. refs #1555
1405david-sarah@jacaranda.org**20111009044710
1406 Ignore-this: f9de7d95e94446507a206c88d3f98a23
1407]
1408[check-miscaptures.py: check while loops and list comprehensions as well as for loops. Also fix a pyflakes warning. refs #1555
1409david-sarah@jacaranda.org**20111009044022
1410 Ignore-this: 6526e4e315ca6461b1fbc2da5568e444
1411]
1412[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
1413david-sarah@jacaranda.org**20111007074121
1414 Ignore-this: 51318e9678d132c374ea557ab955e79e
1415]
1416[Fix pyflakes warnings in misc/ directories other than misc/build_helpers. refs #1557
1417david-sarah@jacaranda.org**20111007033031
1418 Ignore-this: 7daf5862469732d8cabc355266622b74
1419]
1420[Makefile: include misc/ directories other than misc/build_helpers in SOURCES. refs #1557
1421david-sarah@jacaranda.org**20111007032958
1422 Ignore-this: 31376ec01401df7972e83341dc65aa05
1423]
1424[show-tool-versions: tolerate missing setuptools
1425Brian Warner <warner@lothar.com>**20111101080010
1426 Ignore-this: 72d4e440565273992beb4f010cbca699
1427]
1428[show-tool-versions.py: condense output, hide file-not-found exceptions
1429Brian Warner <warner@lothar.com>**20111101074532
1430 Ignore-this: a15381a76077ef46a74a4ac40c9ae956
1431]
1432[relnotes.txt: fix footnotes
1433Brian Warner <warner@lothar.com>**20111101071935
1434 Ignore-this: 668c1bd8618e21beed9bc6b23f048189
1435]
1436[Rewrite download-status-timeline visualizer ('viz') with d3.js
1437Brian Warner <warner@lothar.com>**20111101061821
1438 Ignore-this: 6149b027bbae52c559ef5a8167240cab
1439 
1440 * use d3.js v2.4.6
1441 * add a "toggle misc events" button, to get hash/bitmap-checking details
1442 * only draw data that's on screen, for speed
1443 * add fragment-arg to fetch timeline data.json from somewhere else
1444]
1445[IServer refactoring: pass IServer instances around, instead of peerids
1446Brian Warner <warner@lothar.com>**20111101040319
1447 Ignore-this: 35e4698a0273a0311fe0ccedcc7881b5
1448 
1449 refs #1363
1450 
1451 This collapses 88 small incremental changes (each of which passes all tests)
1452 into one big patch. The development process for the long path started with
1453 adding some temporary scaffolding, changing one method at a time, then
1454 removing the scaffolding. The individual pieces are as follows, in reverse
1455 chronological order (the first patch is at the end of this comment):
1456 
1457  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
1458  Author: Brian Warner <warner@lothar.com>
1459  Date:   Tue Oct 4 16:05:00 2011 -0400
1460 
1461      immutable/downloader/status.py: correct comment
1462 
1463   src/allmydata/immutable/downloader/status.py |    2 +-
1464   1 files changed, 1 insertions(+), 1 deletions(-)
1465 
1466  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
1467  Author: Brian Warner <warner@lothar.com>
1468  Date:   Tue Oct 4 15:46:20 2011 -0400
1469 
1470      remove temporary ServerMap._storage_broker
1471 
1472   src/allmydata/mutable/checker.py   |    2 +-
1473   src/allmydata/mutable/filenode.py  |    2 +-
1474   src/allmydata/mutable/publish.py   |    2 +-
1475   src/allmydata/mutable/servermap.py |    5 ++---
1476   src/allmydata/test/test_mutable.py |    8 ++++----
1477   5 files changed, 9 insertions(+), 10 deletions(-)
1478 
1479  commit d703096b41632c47d76414b12672e076a422ff5c
1480  Author: Brian Warner <warner@lothar.com>
1481  Date:   Tue Oct 4 15:37:05 2011 -0400
1482 
1483      remove temporary storage_broker.get_server_for_id()
1484 
1485   src/allmydata/storage_client.py  |    3 ---
1486   src/allmydata/test/no_network.py |   13 -------------
1487   2 files changed, 0 insertions(+), 16 deletions(-)
1488 
1489  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
1490  Author: Brian Warner <warner@lothar.com>
1491  Date:   Tue Oct 4 12:50:06 2011 -0400
1492 
1493      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
1494 
1495   src/allmydata/mutable/retrieve.py |   10 +++++-----
1496   1 files changed, 5 insertions(+), 5 deletions(-)
1497 
1498  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
1499  Author: Brian Warner <warner@lothar.com>
1500  Date:   Tue Oct 4 12:48:08 2011 -0400
1501 
1502      API of Retrieve._validate_block(), trying to remove reader.server
1503 
1504   src/allmydata/mutable/retrieve.py |   14 +++++++-------
1505   1 files changed, 7 insertions(+), 7 deletions(-)
1506 
1507  commit 572d5070761861a2190349d1ed8d85dbc25698a5
1508  Author: Brian Warner <warner@lothar.com>
1509  Date:   Tue Oct 4 12:36:58 2011 -0400
1510 
1511      API of Retrieve._mark_bad_share(), trying to remove reader.server
1512 
1513   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
1514   1 files changed, 9 insertions(+), 12 deletions(-)
1515 
1516  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
1517  Author: Brian Warner <warner@lothar.com>
1518  Date:   Tue Oct 4 12:06:13 2011 -0400
1519 
1520      remove now-unused get_rref_for_serverid()
1521 
1522   src/allmydata/mutable/servermap.py |    3 ---
1523   1 files changed, 0 insertions(+), 3 deletions(-)
1524 
1525  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
1526  Author: Brian Warner <warner@lothar.com>
1527  Date:   Tue Oct 4 12:03:09 2011 -0400
1528 
1529      Retrieve: stop adding .serverid attributes to readers
1530 
1531   src/allmydata/mutable/retrieve.py |    1 -
1532   1 files changed, 0 insertions(+), 1 deletions(-)
1533 
1534  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
1535  Author: Brian Warner <warner@lothar.com>
1536  Date:   Tue Oct 4 12:03:34 2011 -0400
1537 
1538      return value of Retrieve(verify=True)
1539 
1540   src/allmydata/mutable/checker.py  |   11 ++++++-----
1541   src/allmydata/mutable/retrieve.py |    3 +--
1542   2 files changed, 7 insertions(+), 7 deletions(-)
1543 
1544  commit e9ab7978c384e1f677cb7779dc449b1044face82
1545  Author: Brian Warner <warner@lothar.com>
1546  Date:   Tue Oct 4 11:54:23 2011 -0400
1547 
1548      Retrieve._bad_shares (but not return value, used by Verifier)
1549 
1550   src/allmydata/mutable/retrieve.py |    7 ++++---
1551   1 files changed, 4 insertions(+), 3 deletions(-)
1552 
1553  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
1554  Author: Brian Warner <warner@lothar.com>
1555  Date:   Tue Oct 4 11:51:23 2011 -0400
1556 
1557      Publish: stop adding .serverid attributes to writers
1558 
1559   src/allmydata/mutable/publish.py |    9 ++-------
1560   1 files changed, 2 insertions(+), 7 deletions(-)
1561 
1562  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
1563  Author: Brian Warner <warner@lothar.com>
1564  Date:   Tue Oct 4 11:56:33 2011 -0400
1565 
1566      API of get_write_enabler()
1567 
1568   src/allmydata/mutable/filenode.py |    7 ++++---
1569   src/allmydata/mutable/publish.py  |    4 ++--
1570   src/allmydata/test/no_network.py  |    3 +++
1571   3 files changed, 9 insertions(+), 5 deletions(-)
1572 
1573  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
1574  Author: Brian Warner <warner@lothar.com>
1575  Date:   Tue Oct 4 11:46:24 2011 -0400
1576 
1577      API of get_(renewal|cancel)_secret()
1578 
1579   src/allmydata/mutable/filenode.py  |   14 ++++++++------
1580   src/allmydata/mutable/publish.py   |    8 ++++----
1581   src/allmydata/mutable/servermap.py |    5 ++---
1582   3 files changed, 14 insertions(+), 13 deletions(-)
1583 
1584  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
1585  Author: Brian Warner <warner@lothar.com>
1586  Date:   Tue Oct 4 11:41:52 2011 -0400
1587 
1588      API of CorruptShareError. Also comment out some related+unused test_web.py code
1589 
1590   src/allmydata/mutable/common.py    |   13 +++++--------
1591   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1592   src/allmydata/mutable/servermap.py |    8 +++-----
1593   src/allmydata/test/common.py       |   13 ++++++++-----
1594   4 files changed, 21 insertions(+), 23 deletions(-)
1595 
1596  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
1597  Author: Brian Warner <warner@lothar.com>
1598  Date:   Tue Oct 4 12:01:46 2011 -0400
1599 
1600      API of ServerMap.mark_bad_share()
1601 
1602   src/allmydata/mutable/publish.py   |    2 +-
1603   src/allmydata/mutable/retrieve.py  |    6 +++---
1604   src/allmydata/mutable/servermap.py |    6 ++----
1605   src/allmydata/test/test_mutable.py |    3 +--
1606   4 files changed, 7 insertions(+), 10 deletions(-)
1607 
1608  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
1609  Author: Brian Warner <warner@lothar.com>
1610  Date:   Tue Oct 4 11:11:17 2011 -0400
1611 
1612      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
1613 
1614   src/allmydata/mutable/servermap.py |    7 ++-----
1615   src/allmydata/test/test_mutable.py |    6 +++---
1616   2 files changed, 5 insertions(+), 8 deletions(-)
1617 
1618  commit 2d32e448677d6b818692e801045d4115b29abf21
1619  Author: Brian Warner <warner@lothar.com>
1620  Date:   Tue Oct 4 11:07:10 2011 -0400
1621 
1622      API of ServerMap.all_servers_for_version()
1623 
1624   src/allmydata/mutable/servermap.py |    4 ++--
1625   1 files changed, 2 insertions(+), 2 deletions(-)
1626 
1627  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
1628  Author: Brian Warner <warner@lothar.com>
1629  Date:   Tue Oct 4 11:04:50 2011 -0400
1630 
1631      internals of ServerMap methods that use make_versionmap(), remove temp copy
1632 
1633   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
1634   1 files changed, 10 insertions(+), 18 deletions(-)
1635 
1636  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
1637  Author: Brian Warner <warner@lothar.com>
1638  Date:   Tue Oct 4 11:01:28 2011 -0400
1639 
1640      API of ServerMap.make_versionmap()
1641 
1642   src/allmydata/mutable/checker.py   |    4 ++--
1643   src/allmydata/mutable/retrieve.py  |    5 ++---
1644   src/allmydata/mutable/servermap.py |    4 ++--
1645   src/allmydata/test/test_mutable.py |    7 ++++---
1646   4 files changed, 10 insertions(+), 10 deletions(-)
1647 
1648  commit b6882ece49afb4c507d118af2db346fa329209dc
1649  Author: Brian Warner <warner@lothar.com>
1650  Date:   Tue Oct 4 10:53:38 2011 -0400
1651 
1652      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
1653 
1654   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
1655   1 files changed, 13 insertions(+), 5 deletions(-)
1656 
1657  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
1658  Author: Brian Warner <warner@lothar.com>
1659  Date:   Tue Oct 4 00:45:58 2011 -0400
1660 
1661      API of RetrieveStatus.add_problem()
1662 
1663   src/allmydata/mutable/retrieve.py |    5 +++--
1664   1 files changed, 3 insertions(+), 2 deletions(-)
1665 
1666  commit 4976d29ffae565a048851601c29013bbae2976d8
1667  Author: Brian Warner <warner@lothar.com>
1668  Date:   Tue Oct 4 00:45:05 2011 -0400
1669 
1670      API of RetrieveStatus.add_fetch_timing()
1671 
1672   src/allmydata/mutable/retrieve.py |    5 +++--
1673   1 files changed, 3 insertions(+), 2 deletions(-)
1674 
1675  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
1676  Author: Brian Warner <warner@lothar.com>
1677  Date:   Tue Oct 4 00:44:04 2011 -0400
1678 
1679      API of Retrieve.notify_server_corruption()
1680 
1681   src/allmydata/mutable/retrieve.py |    6 +++---
1682   1 files changed, 3 insertions(+), 3 deletions(-)
1683 
1684  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
1685  Author: Brian Warner <warner@lothar.com>
1686  Date:   Tue Oct 4 00:42:32 2011 -0400
1687 
1688      remove unused _outstanding_queries
1689 
1690   src/allmydata/mutable/retrieve.py |    1 -
1691   1 files changed, 0 insertions(+), 1 deletions(-)
1692 
1693  commit 56d12cc9968d03ccd53764455c671122c4f391d1
1694  Author: Brian Warner <warner@lothar.com>
1695  Date:   Tue Oct 4 00:40:57 2011 -0400
1696 
1697      change Retrieve.remaining_sharemap
1698 
1699   src/allmydata/mutable/retrieve.py |    4 ++--
1700   1 files changed, 2 insertions(+), 2 deletions(-)
1701 
1702  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
1703  Author: Brian Warner <warner@lothar.com>
1704  Date:   Tue Oct 4 10:40:18 2011 -0400
1705 
1706      accessor for PublishStatus._problems
1707 
1708   src/allmydata/mutable/publish.py |    4 +++-
1709   src/allmydata/web/status.py      |    2 +-
1710   2 files changed, 4 insertions(+), 2 deletions(-)
1711 
1712  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
1713  Author: Brian Warner <warner@lothar.com>
1714  Date:   Tue Oct 4 10:36:39 2011 -0400
1715 
1716      accessor for RetrieveStatus._problems
1717 
1718   src/allmydata/mutable/retrieve.py |    8 ++++++--
1719   src/allmydata/web/status.py       |    2 +-
1720   2 files changed, 7 insertions(+), 3 deletions(-)
1721 
1722  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1723  Author: Brian Warner <warner@lothar.com>
1724  Date:   Tue Oct 4 00:35:32 2011 -0400
1725 
1726      add .server to "reader", so we can get at it later
1727 
1728   src/allmydata/mutable/retrieve.py |    5 +++--
1729   1 files changed, 3 insertions(+), 2 deletions(-)
1730 
1731  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1732  Author: Brian Warner <warner@lothar.com>
1733  Date:   Tue Oct 4 00:32:32 2011 -0400
1734 
1735      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1736 
1737   src/allmydata/mutable/checker.py   |    3 ++-
1738   src/allmydata/mutable/filenode.py  |    6 ++++--
1739   src/allmydata/mutable/retrieve.py  |    5 +++--
1740   src/allmydata/test/test_mutable.py |    4 ++--
1741   4 files changed, 11 insertions(+), 7 deletions(-)
1742 
1743  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1744  Author: Brian Warner <warner@lothar.com>
1745  Date:   Tue Oct 4 00:21:51 2011 -0400
1746 
1747      mutable/retrieve.py: s/peer/server/
1748 
1749   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1750   src/allmydata/test/test_mutable.py |    6 +-
1751   2 files changed, 44 insertions(+), 44 deletions(-)
1752 
1753  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1754  Author: Brian Warner <warner@lothar.com>
1755  Date:   Tue Oct 4 00:16:01 2011 -0400
1756 
1757      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1758 
1759   src/allmydata/web/status.py |    2 ++
1760   1 files changed, 2 insertions(+), 0 deletions(-)
1761 
1762  commit 311466dd8c931bbba40d590ade867704282e7f1a
1763  Author: Brian Warner <warner@lothar.com>
1764  Date:   Mon Oct 3 23:48:16 2011 -0400
1765 
1766      API of PublishStatus.add_per_server_time()
1767 
1768   src/allmydata/mutable/publish.py |    5 +++--
1769   1 files changed, 3 insertions(+), 2 deletions(-)
1770 
1771  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1772  Author: Brian Warner <warner@lothar.com>
1773  Date:   Mon Oct 3 23:46:37 2011 -0400
1774 
1775      more simplifications
1776 
1777   src/allmydata/mutable/publish.py |    4 +---
1778   1 files changed, 1 insertions(+), 3 deletions(-)
1779 
1780  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1781  Author: Brian Warner <warner@lothar.com>
1782  Date:   Mon Oct 3 23:44:08 2011 -0400
1783 
1784      API of ServerMap.version_on_server()
1785 
1786   src/allmydata/mutable/publish.py   |    2 +-
1787   src/allmydata/mutable/servermap.py |    4 ++--
1788   src/allmydata/test/test_mutable.py |    5 ++---
1789   3 files changed, 5 insertions(+), 6 deletions(-)
1790 
1791  commit 3e187e322511072e4683329df6b2c6c733a66dba
1792  Author: Brian Warner <warner@lothar.com>
1793  Date:   Tue Oct 4 00:16:32 2011 -0400
1794 
1795      API of ServerMap.make_sharemap()
1796 
1797   src/allmydata/mutable/servermap.py |    4 ++--
1798   src/allmydata/test/test_mutable.py |    7 ++++---
1799   src/allmydata/web/status.py        |    4 ++--
1800   3 files changed, 8 insertions(+), 7 deletions(-)
1801 
1802  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1803  Author: Brian Warner <warner@lothar.com>
1804  Date:   Mon Oct 3 23:36:19 2011 -0400
1805 
1806      small cleanups
1807 
1808   src/allmydata/mutable/publish.py |    4 ++--
1809   1 files changed, 2 insertions(+), 2 deletions(-)
1810 
1811  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1812  Author: Brian Warner <warner@lothar.com>
1813  Date:   Mon Oct 3 23:33:39 2011 -0400
1814 
1815      API of ServerMap.add_new_share()
1816 
1817   src/allmydata/mutable/publish.py   |    4 ++--
1818   src/allmydata/mutable/servermap.py |    6 ++----
1819   2 files changed, 4 insertions(+), 6 deletions(-)
1820 
1821  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1822  Author: Brian Warner <warner@lothar.com>
1823  Date:   Mon Oct 3 23:30:26 2011 -0400
1824 
1825      API of ServerMap.get_bad_shares()
1826 
1827   src/allmydata/mutable/publish.py   |    3 +--
1828   src/allmydata/mutable/servermap.py |    9 ++++-----
1829   2 files changed, 5 insertions(+), 7 deletions(-)
1830 
1831  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1832  Author: Brian Warner <warner@lothar.com>
1833  Date:   Mon Oct 3 23:26:58 2011 -0400
1834 
1835      more small cleanups
1836 
1837   src/allmydata/mutable/publish.py |    6 +++---
1838   1 files changed, 3 insertions(+), 3 deletions(-)
1839 
1840  commit 38020da34f034f8889947dd3dc05e087ffff7106
1841  Author: Brian Warner <warner@lothar.com>
1842  Date:   Mon Oct 3 23:18:47 2011 -0400
1843 
1844      change Publish.bad_share_checkstrings
1845 
1846   src/allmydata/mutable/publish.py |    6 +++---
1847   1 files changed, 3 insertions(+), 3 deletions(-)
1848 
1849  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
1850  Author: Brian Warner <warner@lothar.com>
1851  Date:   Mon Oct 3 23:16:31 2011 -0400
1852 
1853      change internals of Publish.update_goal()
1854 
1855   src/allmydata/mutable/publish.py |    8 +++-----
1856   1 files changed, 3 insertions(+), 5 deletions(-)
1857 
1858  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
1859  Author: Brian Warner <warner@lothar.com>
1860  Date:   Mon Oct 3 23:11:42 2011 -0400
1861 
1862      get rid of Publish.connections
1863 
1864   src/allmydata/mutable/publish.py |   27 +++++----------------------
1865   1 files changed, 5 insertions(+), 22 deletions(-)
1866 
1867  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1868  Author: Brian Warner <warner@lothar.com>
1869  Date:   Mon Oct 3 23:05:32 2011 -0400
1870 
1871      change Publish.bad_servers
1872 
1873   src/allmydata/mutable/publish.py |   10 +++++-----
1874   1 files changed, 5 insertions(+), 5 deletions(-)
1875 
1876  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1877  Author: Brian Warner <warner@lothar.com>
1878  Date:   Mon Oct 3 23:03:07 2011 -0400
1879 
1880      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1881 
1882   src/allmydata/mutable/publish.py |    2 +-
1883   1 files changed, 1 insertions(+), 1 deletions(-)
1884 
1885  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1886  Author: Brian Warner <warner@lothar.com>
1887  Date:   Mon Oct 3 23:00:21 2011 -0400
1888 
1889      change .placed
1890 
1891   src/allmydata/mutable/publish.py |    6 +++---
1892   1 files changed, 3 insertions(+), 3 deletions(-)
1893 
1894  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1895  Author: Brian Warner <warner@lothar.com>
1896  Date:   Mon Oct 3 22:59:22 2011 -0400
1897 
1898      temporarily stash IServer as .server on the "writer" object
1899 
1900   src/allmydata/mutable/publish.py |    2 ++
1901   1 files changed, 2 insertions(+), 0 deletions(-)
1902 
1903  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
1904  Author: Brian Warner <warner@lothar.com>
1905  Date:   Mon Oct 3 22:48:18 2011 -0400
1906 
1907      change Publish.goal and API of log_goal() to use IServer, not serverid
1908 
1909   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1910   1 files changed, 24 insertions(+), 24 deletions(-)
1911 
1912  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1913  Author: Brian Warner <warner@lothar.com>
1914  Date:   Mon Oct 3 15:27:02 2011 -0400
1915 
1916      API of ServerMap.get_known_shares()
1917 
1918   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1919   src/allmydata/mutable/servermap.py |    7 ++-----
1920   2 files changed, 12 insertions(+), 11 deletions(-)
1921 
1922  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1923  Author: Brian Warner <warner@lothar.com>
1924  Date:   Mon Oct 3 15:20:29 2011 -0400
1925 
1926      Publish.full_serverlist
1927 
1928   src/allmydata/mutable/publish.py |   10 +++++-----
1929   1 files changed, 5 insertions(+), 5 deletions(-)
1930 
1931  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1932  Author: Brian Warner <warner@lothar.com>
1933  Date:   Mon Oct 3 15:12:31 2011 -0400
1934 
1935      API of ServerMap.all_servers()
1936 
1937   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1938   1 files changed, 6 insertions(+), 13 deletions(-)
1939 
1940  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1941  Author: Brian Warner <warner@lothar.com>
1942  Date:   Mon Oct 3 15:10:18 2011 -0400
1943 
1944      remove ServerMap.connections, set_rref_for_serverid()
1945 
1946   src/allmydata/mutable/servermap.py |   11 +----------
1947   1 files changed, 1 insertions(+), 10 deletions(-)
1948 
1949  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1950  Author: Brian Warner <warner@lothar.com>
1951  Date:   Mon Oct 3 15:04:06 2011 -0400
1952 
1953      API of ServerMap.mark_server_reachable()
1954 
1955   src/allmydata/mutable/servermap.py |    7 ++-----
1956   1 files changed, 2 insertions(+), 5 deletions(-)
1957 
1958  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1959  Author: Brian Warner <warner@lothar.com>
1960  Date:   Mon Oct 3 15:03:21 2011 -0400
1961 
1962      API of ServerMap.mark_server_unreachable()
1963 
1964   src/allmydata/mutable/servermap.py |    9 +++------
1965   1 files changed, 3 insertions(+), 6 deletions(-)
1966 
1967  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1968  Author: Brian Warner <warner@lothar.com>
1969  Date:   Mon Oct 3 15:02:03 2011 -0400
1970 
1971      API of status.set_privkey_from()
1972 
1973   src/allmydata/mutable/servermap.py |    7 +++----
1974   1 files changed, 3 insertions(+), 4 deletions(-)
1975 
1976  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1977  Author: Brian Warner <warner@lothar.com>
1978  Date:   Mon Oct 3 15:01:15 2011 -0400
1979 
1980      API of status.add_per_server_time()
1981 
1982   src/allmydata/mutable/servermap.py |    7 ++++---
1983   1 files changed, 4 insertions(+), 3 deletions(-)
1984 
1985  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1986  Author: Brian Warner <warner@lothar.com>
1987  Date:   Mon Oct 3 14:59:02 2011 -0400
1988 
1989      remove unused .versionmap
1990 
1991   src/allmydata/mutable/servermap.py |    7 -------
1992   1 files changed, 0 insertions(+), 7 deletions(-)
1993 
1994  commit 2816562e090d2294179db3588dafcca18de1bc2b
1995  Author: Brian Warner <warner@lothar.com>
1996  Date:   Mon Oct 3 14:57:51 2011 -0400
1997 
1998      remove serverid from all log messages. Also one unused lambda.
1999 
2000   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2001   1 files changed, 15 insertions(+), 15 deletions(-)
2002 
2003  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2004  Author: Brian Warner <warner@lothar.com>
2005  Date:   Mon Oct 3 14:54:30 2011 -0400
2006 
2007      removed unused _readers
2008 
2009   src/allmydata/mutable/servermap.py |    3 ---
2010   1 files changed, 0 insertions(+), 3 deletions(-)
2011 
2012  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2013  Author: Brian Warner <warner@lothar.com>
2014  Date:   Mon Oct 3 14:54:16 2011 -0400
2015 
2016      remove unused _sharemap
2017 
2018   src/allmydata/mutable/servermap.py |    1 -
2019   1 files changed, 0 insertions(+), 1 deletions(-)
2020 
2021  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2022  Author: Brian Warner <warner@lothar.com>
2023  Date:   Mon Oct 3 14:49:03 2011 -0400
2024 
2025      _must_query
2026 
2027   src/allmydata/mutable/servermap.py |    8 ++++----
2028   1 files changed, 4 insertions(+), 4 deletions(-)
2029 
2030  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
2031  Author: Brian Warner <warner@lothar.com>
2032  Date:   Mon Oct 3 14:48:05 2011 -0400
2033 
2034      _queries_outstanding
2035 
2036   src/allmydata/mutable/servermap.py |   16 +++++++---------
2037   1 files changed, 7 insertions(+), 9 deletions(-)
2038 
2039  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2040  Author: Brian Warner <warner@lothar.com>
2041  Date:   Mon Oct 3 14:46:17 2011 -0400
2042 
2043      _empty_servers
2044 
2045   src/allmydata/mutable/servermap.py |    5 ++---
2046   1 files changed, 2 insertions(+), 3 deletions(-)
2047 
2048  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2049  Author: Brian Warner <warner@lothar.com>
2050  Date:   Mon Oct 3 14:45:39 2011 -0400
2051 
2052      _good_servers
2053 
2054   src/allmydata/mutable/servermap.py |    4 ++--
2055   1 files changed, 2 insertions(+), 2 deletions(-)
2056 
2057  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2058  Author: Brian Warner <warner@lothar.com>
2059  Date:   Mon Oct 3 14:44:59 2011 -0400
2060 
2061      _bad_servers
2062 
2063   src/allmydata/mutable/servermap.py |   14 +++++++-------
2064   1 files changed, 7 insertions(+), 7 deletions(-)
2065 
2066  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2067  Author: Brian Warner <warner@lothar.com>
2068  Date:   Mon Oct 3 14:41:54 2011 -0400
2069 
2070      API of _try_to_set_pubkey()
2071 
2072   src/allmydata/mutable/servermap.py |    7 ++++---
2073   1 files changed, 4 insertions(+), 3 deletions(-)
2074 
2075  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2076  Author: Brian Warner <warner@lothar.com>
2077  Date:   Mon Oct 3 14:35:02 2011 -0400
2078 
2079      API of notify_server_corruption()
2080 
2081   src/allmydata/mutable/servermap.py |    6 +++---
2082   1 files changed, 3 insertions(+), 3 deletions(-)
2083 
2084  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2085  Author: Brian Warner <warner@lothar.com>
2086  Date:   Mon Oct 3 14:34:09 2011 -0400
2087 
2088      API of _got_signature_one_share()
2089 
2090   src/allmydata/mutable/servermap.py |    9 +++++----
2091   1 files changed, 5 insertions(+), 4 deletions(-)
2092 
2093  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2094  Author: Brian Warner <warner@lothar.com>
2095  Date:   Mon Oct 3 14:32:33 2011 -0400
2096 
2097      API of _try_to_validate_privkey()
2098 
2099   src/allmydata/mutable/servermap.py |    9 +++++----
2100   1 files changed, 5 insertions(+), 4 deletions(-)
2101 
2102  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2103  Author: Brian Warner <warner@lothar.com>
2104  Date:   Mon Oct 3 14:31:48 2011 -0400
2105 
2106      API and internals of _add_lease_failed()
2107 
2108   src/allmydata/mutable/servermap.py |    8 ++++----
2109   1 files changed, 4 insertions(+), 4 deletions(-)
2110 
2111  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2112  Author: Brian Warner <warner@lothar.com>
2113  Date:   Mon Oct 3 14:30:37 2011 -0400
2114 
2115      API of _privkey_query_failed()
2116 
2117   src/allmydata/mutable/servermap.py |    5 +++--
2118   1 files changed, 3 insertions(+), 2 deletions(-)
2119 
2120  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2121  Author: Brian Warner <warner@lothar.com>
2122  Date:   Mon Oct 3 14:29:43 2011 -0400
2123 
2124      fix bug in call to _privkey_query_failed, unrelated to refactoring
2125 
2126   src/allmydata/mutable/servermap.py |    2 +-
2127   1 files changed, 1 insertions(+), 1 deletions(-)
2128 
2129  commit ae615bec7d0d1b269710b6902797b12f9592ad62
2130  Author: Brian Warner <warner@lothar.com>
2131  Date:   Mon Oct 3 14:27:17 2011 -0400
2132 
2133      API of _got_corrupt_share()
2134 
2135   src/allmydata/mutable/servermap.py |   17 +++++++++--------
2136   1 files changed, 9 insertions(+), 8 deletions(-)
2137 
2138  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
2139  Author: Brian Warner <warner@lothar.com>
2140  Date:   Mon Oct 3 14:23:16 2011 -0400
2141 
2142      API of _got_results()
2143 
2144   src/allmydata/mutable/servermap.py |    9 +++++----
2145   1 files changed, 5 insertions(+), 4 deletions(-)
2146 
2147  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
2148  Author: Brian Warner <warner@lothar.com>
2149  Date:   Mon Oct 3 14:19:19 2011 -0400
2150 
2151      API of _query_failed()
2152 
2153   src/allmydata/mutable/servermap.py |    5 +++--
2154   1 files changed, 3 insertions(+), 2 deletions(-)
2155 
2156  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
2157  Author: Brian Warner <warner@lothar.com>
2158  Date:   Mon Oct 3 14:17:20 2011 -0400
2159 
2160      API of _do_read()
2161 
2162   src/allmydata/mutable/servermap.py |    6 ++++--
2163   1 files changed, 4 insertions(+), 2 deletions(-)
2164 
2165  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
2166  Author: Brian Warner <warner@lothar.com>
2167  Date:   Mon Oct 3 14:20:21 2011 -0400
2168 
2169      API of _do_query()
2170 
2171   src/allmydata/mutable/servermap.py |   15 +++++++--------
2172   1 files changed, 7 insertions(+), 8 deletions(-)
2173 
2174  commit 330625b9dac4cdbe72a11464a893065b9aeed453
2175  Author: Brian Warner <warner@lothar.com>
2176  Date:   Mon Oct 3 14:43:05 2011 -0400
2177 
2178      next step: first batch of updates to ServermapUpdater
2179 
2180      updates:
2181       most method-local variables in update()
2182       API of _build_initial_querylist()
2183       API of _send_initial_requests()
2184       .full_serverlist
2185       .extra_servers
2186 
2187   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
2188   1 files changed, 21 insertions(+), 18 deletions(-)
2189 
2190  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
2191  Author: Brian Warner <warner@lothar.com>
2192  Date:   Mon Oct 3 15:07:00 2011 -0400
2193 
2194      internal change: index _bad_shares with IServer
2195 
2196   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
2197   1 files changed, 10 insertions(+), 10 deletions(-)
2198 
2199  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
2200  Author: Brian Warner <warner@lothar.com>
2201  Date:   Mon Oct 3 18:20:47 2011 +0100
2202 
2203      internal change: index _known_shares with IServer instead of serverid
2204 
2205      callers are unchanged
2206 
2207   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
2208   1 files changed, 25 insertions(+), 17 deletions(-)
2209 
2210  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
2211  Author: Brian Warner <warner@lothar.com>
2212  Date:   Mon Oct 3 18:11:43 2011 +0100
2213 
2214      accessors and name cleanup for servermap.Servermap.last_update_mode/time
2215 
2216   src/allmydata/mutable/filenode.py  |    6 +++---
2217   src/allmydata/mutable/publish.py   |    4 ++--
2218   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2219   3 files changed, 16 insertions(+), 11 deletions(-)
2220 
2221  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
2222  Author: Brian Warner <warner@lothar.com>
2223  Date:   Mon Oct 3 18:11:14 2011 +0100
2224 
2225      accessors and name cleanup for servermap.Servermap.problems
2226 
2227   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
2228   src/allmydata/test/test_mutable.py |    6 +++---
2229   2 files changed, 16 insertions(+), 11 deletions(-)
2230 
2231  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
2232  Author: Brian Warner <warner@lothar.com>
2233  Date:   Mon Oct 3 18:10:41 2011 +0100
2234 
2235      accessors and name cleanup for servermap.Servermap.bad_shares
2236 
2237   src/allmydata/mutable/publish.py   |    2 +-
2238   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
2239   2 files changed, 18 insertions(+), 14 deletions(-)
2240 
2241  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
2242  Author: Brian Warner <warner@lothar.com>
2243  Date:   Mon Oct 3 18:10:05 2011 +0100
2244 
2245      accessors and name cleanup for servermap.Servermap.servermap .
2246 
2247   src/allmydata/mutable/publish.py   |   14 +++++----
2248   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
2249   2 files changed, 29 insertions(+), 23 deletions(-)
2250 
2251  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
2252  Author: Brian Warner <warner@lothar.com>
2253  Date:   Mon Oct 3 18:08:02 2011 +0100
2254 
2255      fix reachable_servers
2256 
2257   src/allmydata/mutable/checker.py   |    3 ++-
2258   src/allmydata/mutable/publish.py   |    4 +++-
2259   src/allmydata/mutable/servermap.py |   12 ++++++++++--
2260   3 files changed, 15 insertions(+), 4 deletions(-)
2261 
2262  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
2263  Author: Brian Warner <warner@lothar.com>
2264  Date:   Mon Oct 3 18:06:03 2011 +0100
2265 
2266      fix Servermap.unreachable_servers
2267 
2268   src/allmydata/mutable/servermap.py |   11 ++++++++---
2269   1 files changed, 8 insertions(+), 3 deletions(-)
2270 
2271  commit 2d9ea79b94bd4db674d40386fda90825785ac495
2272  Author: Brian Warner <warner@lothar.com>
2273  Date:   Mon Oct 3 18:03:48 2011 +0100
2274 
2275      give ServerMap a StorageFarmBroker, temporary
2276 
2277      this makes it possible for the ServerMap to accept bare serverids and still
2278      build data structures with IServers
2279 
2280   src/allmydata/mutable/checker.py   |    2 +-
2281   src/allmydata/mutable/filenode.py  |    2 +-
2282   src/allmydata/mutable/publish.py   |    2 +-
2283   src/allmydata/mutable/servermap.py |    5 +++--
2284   src/allmydata/test/test_mutable.py |    8 ++++----
2285   5 files changed, 10 insertions(+), 9 deletions(-)
2286 
2287  commit 718d1aeff6fded893f65397806d22ece928b0dd4
2288  Author: Brian Warner <warner@lothar.com>
2289  Date:   Mon Oct 3 13:43:30 2011 -0400
2290 
2291      add StorageFarmBroker.get_server_for_id(), temporary helper
2292 
2293      This will go away once we're passing IServers everywhere.
2294 
2295   src/allmydata/storage_client.py  |    2 ++
2296   src/allmydata/test/no_network.py |   13 +++++++++++++
2297   2 files changed, 15 insertions(+), 0 deletions(-)
2298 
2299  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
2300  Author: Brian Warner <warner@lothar.com>
2301  Date:   Sun Oct 2 01:11:50 2011 +0100
2302 
2303      add proper accessors for Servermap.connections, to make refactoring easier
2304 
2305   src/allmydata/mutable/publish.py   |    6 +++---
2306   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2307   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2308   3 files changed, 19 insertions(+), 14 deletions(-)
2309 
2310  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
2311  Author: Brian Warner <warner@lothar.com>
2312  Date:   Fri Sep 23 10:34:30 2011 -0700
2313 
2314      mutable/servermap.py and neighbors: s/peer/server/
2315 
2316   src/allmydata/mutable/checker.py   |   22 +-
2317   src/allmydata/mutable/publish.py   |  204 +++++++-------
2318   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
2319   src/allmydata/test/test_mutable.py |   18 +-
2320   4 files changed, 323 insertions(+), 323 deletions(-)
2321 IServer refactoring: pass IServer instances around, instead of peerids
2322 
2323 refs #1363
2324 
2325 This collapses 88 small incremental changes (each of which passes all tests)
2326 into one big patch. The development process for the long path started with
2327 adding some temporary scaffolding, changing one method at a time, then
2328 removing the scaffolding. The individual pieces are as follows, in reverse
2329 chronological order (the first patch is at the end of this comment):
2330 
2331  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
2332  Author: Brian Warner <warner@lothar.com>
2333  Date:   Tue Oct 4 16:05:00 2011 -0400
2334 
2335      immutable/downloader/status.py: correct comment
2336 
2337   src/allmydata/immutable/downloader/status.py |    2 +-
2338   1 files changed, 1 insertions(+), 1 deletions(-)
2339 
2340  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
2341  Author: Brian Warner <warner@lothar.com>
2342  Date:   Tue Oct 4 15:46:20 2011 -0400
2343 
2344      remove temporary ServerMap._storage_broker
2345 
2346   src/allmydata/mutable/checker.py   |    2 +-
2347   src/allmydata/mutable/filenode.py  |    2 +-
2348   src/allmydata/mutable/publish.py   |    2 +-
2349   src/allmydata/mutable/servermap.py |    5 ++---
2350   src/allmydata/test/test_mutable.py |    8 ++++----
2351   5 files changed, 9 insertions(+), 10 deletions(-)
2352 
2353  commit d703096b41632c47d76414b12672e076a422ff5c
2354  Author: Brian Warner <warner@lothar.com>
2355  Date:   Tue Oct 4 15:37:05 2011 -0400
2356 
2357      remove temporary storage_broker.get_server_for_id()
2358 
2359   src/allmydata/storage_client.py  |    3 ---
2360   src/allmydata/test/no_network.py |   13 -------------
2361   2 files changed, 0 insertions(+), 16 deletions(-)
2362 
2363  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
2364  Author: Brian Warner <warner@lothar.com>
2365  Date:   Tue Oct 4 12:50:06 2011 -0400
2366 
2367      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
2368 
2369   src/allmydata/mutable/retrieve.py |   10 +++++-----
2370   1 files changed, 5 insertions(+), 5 deletions(-)
2371 
2372  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
2373  Author: Brian Warner <warner@lothar.com>
2374  Date:   Tue Oct 4 12:48:08 2011 -0400
2375 
2376      API of Retrieve._validate_block(), trying to remove reader.server
2377 
2378   src/allmydata/mutable/retrieve.py |   14 +++++++-------
2379   1 files changed, 7 insertions(+), 7 deletions(-)
2380 
2381  commit 572d5070761861a2190349d1ed8d85dbc25698a5
2382  Author: Brian Warner <warner@lothar.com>
2383  Date:   Tue Oct 4 12:36:58 2011 -0400
2384 
2385      API of Retrieve._mark_bad_share(), trying to remove reader.server
2386 
2387   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
2388   1 files changed, 9 insertions(+), 12 deletions(-)
2389 
2390  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
2391  Author: Brian Warner <warner@lothar.com>
2392  Date:   Tue Oct 4 12:06:13 2011 -0400
2393 
2394      remove now-unused get_rref_for_serverid()
2395 
2396   src/allmydata/mutable/servermap.py |    3 ---
2397   1 files changed, 0 insertions(+), 3 deletions(-)
2398 
2399  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
2400  Author: Brian Warner <warner@lothar.com>
2401  Date:   Tue Oct 4 12:03:09 2011 -0400
2402 
2403      Retrieve: stop adding .serverid attributes to readers
2404 
2405   src/allmydata/mutable/retrieve.py |    1 -
2406   1 files changed, 0 insertions(+), 1 deletions(-)
2407 
2408  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
2409  Author: Brian Warner <warner@lothar.com>
2410  Date:   Tue Oct 4 12:03:34 2011 -0400
2411 
2412      return value of Retrieve(verify=True)
2413 
2414   src/allmydata/mutable/checker.py  |   11 ++++++-----
2415   src/allmydata/mutable/retrieve.py |    3 +--
2416   2 files changed, 7 insertions(+), 7 deletions(-)
2417 
2418  commit e9ab7978c384e1f677cb7779dc449b1044face82
2419  Author: Brian Warner <warner@lothar.com>
2420  Date:   Tue Oct 4 11:54:23 2011 -0400
2421 
2422      Retrieve._bad_shares (but not return value, used by Verifier)
2423 
2424   src/allmydata/mutable/retrieve.py |    7 ++++---
2425   1 files changed, 4 insertions(+), 3 deletions(-)
2426 
2427  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
2428  Author: Brian Warner <warner@lothar.com>
2429  Date:   Tue Oct 4 11:51:23 2011 -0400
2430 
2431      Publish: stop adding .serverid attributes to writers
2432 
2433   src/allmydata/mutable/publish.py |    9 ++-------
2434   1 files changed, 2 insertions(+), 7 deletions(-)
2435 
2436  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
2437  Author: Brian Warner <warner@lothar.com>
2438  Date:   Tue Oct 4 11:56:33 2011 -0400
2439 
2440      API of get_write_enabler()
2441 
2442   src/allmydata/mutable/filenode.py |    7 ++++---
2443   src/allmydata/mutable/publish.py  |    4 ++--
2444   src/allmydata/test/no_network.py  |    3 +++
2445   3 files changed, 9 insertions(+), 5 deletions(-)
2446 
2447  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
2448  Author: Brian Warner <warner@lothar.com>
2449  Date:   Tue Oct 4 11:46:24 2011 -0400
2450 
2451      API of get_(renewal|cancel)_secret()
2452 
2453   src/allmydata/mutable/filenode.py  |   14 ++++++++------
2454   src/allmydata/mutable/publish.py   |    8 ++++----
2455   src/allmydata/mutable/servermap.py |    5 ++---
2456   3 files changed, 14 insertions(+), 13 deletions(-)
2457 
2458  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
2459  Author: Brian Warner <warner@lothar.com>
2460  Date:   Tue Oct 4 11:41:52 2011 -0400
2461 
2462      API of CorruptShareError. Also comment out some related+unused test_web.py code
2463 
2464   src/allmydata/mutable/common.py    |   13 +++++--------
2465   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2466   src/allmydata/mutable/servermap.py |    8 +++-----
2467   src/allmydata/test/common.py       |   13 ++++++++-----
2468   4 files changed, 21 insertions(+), 23 deletions(-)
2469 
2470  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
2471  Author: Brian Warner <warner@lothar.com>
2472  Date:   Tue Oct 4 12:01:46 2011 -0400
2473 
2474      API of ServerMap.mark_bad_share()
2475 
2476   src/allmydata/mutable/publish.py   |    2 +-
2477   src/allmydata/mutable/retrieve.py  |    6 +++---
2478   src/allmydata/mutable/servermap.py |    6 ++----
2479   src/allmydata/test/test_mutable.py |    3 +--
2480   4 files changed, 7 insertions(+), 10 deletions(-)
2481 
2482  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
2483  Author: Brian Warner <warner@lothar.com>
2484  Date:   Tue Oct 4 11:11:17 2011 -0400
2485 
2486      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
2487 
2488   src/allmydata/mutable/servermap.py |    7 ++-----
2489   src/allmydata/test/test_mutable.py |    6 +++---
2490   2 files changed, 5 insertions(+), 8 deletions(-)
2491 
2492  commit 2d32e448677d6b818692e801045d4115b29abf21
2493  Author: Brian Warner <warner@lothar.com>
2494  Date:   Tue Oct 4 11:07:10 2011 -0400
2495 
2496      API of ServerMap.all_servers_for_version()
2497 
2498   src/allmydata/mutable/servermap.py |    4 ++--
2499   1 files changed, 2 insertions(+), 2 deletions(-)
2500 
2501  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
2502  Author: Brian Warner <warner@lothar.com>
2503  Date:   Tue Oct 4 11:04:50 2011 -0400
2504 
2505      internals of ServerMap methods that use make_versionmap(), remove temp copy
2506 
2507   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
2508   1 files changed, 10 insertions(+), 18 deletions(-)
2509 
2510  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
2511  Author: Brian Warner <warner@lothar.com>
2512  Date:   Tue Oct 4 11:01:28 2011 -0400
2513 
2514      API of ServerMap.make_versionmap()
2515 
2516   src/allmydata/mutable/checker.py   |    4 ++--
2517   src/allmydata/mutable/retrieve.py  |    5 ++---
2518   src/allmydata/mutable/servermap.py |    4 ++--
2519   src/allmydata/test/test_mutable.py |    7 ++++---
2520   4 files changed, 10 insertions(+), 10 deletions(-)
2521 
2522  commit b6882ece49afb4c507d118af2db346fa329209dc
2523  Author: Brian Warner <warner@lothar.com>
2524  Date:   Tue Oct 4 10:53:38 2011 -0400
2525 
2526      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
2527 
2528   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
2529   1 files changed, 13 insertions(+), 5 deletions(-)
2530 
2531  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
2532  Author: Brian Warner <warner@lothar.com>
2533  Date:   Tue Oct 4 00:45:58 2011 -0400
2534 
2535      API of RetrieveStatus.add_problem()
2536 
2537   src/allmydata/mutable/retrieve.py |    5 +++--
2538   1 files changed, 3 insertions(+), 2 deletions(-)
2539 
2540  commit 4976d29ffae565a048851601c29013bbae2976d8
2541  Author: Brian Warner <warner@lothar.com>
2542  Date:   Tue Oct 4 00:45:05 2011 -0400
2543 
2544      API of RetrieveStatus.add_fetch_timing()
2545 
2546   src/allmydata/mutable/retrieve.py |    5 +++--
2547   1 files changed, 3 insertions(+), 2 deletions(-)
2548 
2549  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
2550  Author: Brian Warner <warner@lothar.com>
2551  Date:   Tue Oct 4 00:44:04 2011 -0400
2552 
2553      API of Retrieve.notify_server_corruption()
2554 
2555   src/allmydata/mutable/retrieve.py |    6 +++---
2556   1 files changed, 3 insertions(+), 3 deletions(-)
2557 
2558  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
2559  Author: Brian Warner <warner@lothar.com>
2560  Date:   Tue Oct 4 00:42:32 2011 -0400
2561 
2562      remove unused _outstanding_queries
2563 
2564   src/allmydata/mutable/retrieve.py |    1 -
2565   1 files changed, 0 insertions(+), 1 deletions(-)
2566 
2567  commit 56d12cc9968d03ccd53764455c671122c4f391d1
2568  Author: Brian Warner <warner@lothar.com>
2569  Date:   Tue Oct 4 00:40:57 2011 -0400
2570 
2571      change Retrieve.remaining_sharemap
2572 
2573   src/allmydata/mutable/retrieve.py |    4 ++--
2574   1 files changed, 2 insertions(+), 2 deletions(-)
2575 
2576  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
2577  Author: Brian Warner <warner@lothar.com>
2578  Date:   Tue Oct 4 10:40:18 2011 -0400
2579 
2580      accessor for PublishStatus._problems
2581 
2582   src/allmydata/mutable/publish.py |    4 +++-
2583   src/allmydata/web/status.py      |    2 +-
2584   2 files changed, 4 insertions(+), 2 deletions(-)
2585 
2586  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
2587  Author: Brian Warner <warner@lothar.com>
2588  Date:   Tue Oct 4 10:36:39 2011 -0400
2589 
2590      accessor for RetrieveStatus._problems
2591 
2592   src/allmydata/mutable/retrieve.py |    8 ++++++--
2593   src/allmydata/web/status.py       |    2 +-
2594   2 files changed, 7 insertions(+), 3 deletions(-)
2595 
2596  commit ca7dea81f03801b1c7353fc00ecba689268109cf
2597  Author: Brian Warner <warner@lothar.com>
2598  Date:   Tue Oct 4 00:35:32 2011 -0400
2599 
2600      add .server to "reader", so we can get at it later
2601 
2602   src/allmydata/mutable/retrieve.py |    5 +++--
2603   1 files changed, 3 insertions(+), 2 deletions(-)
2604 
2605  commit 6ef516e24908ec195af084a7550d1921a5e983b0
2606  Author: Brian Warner <warner@lothar.com>
2607  Date:   Tue Oct 4 00:32:32 2011 -0400
2608 
2609      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
2610 
2611   src/allmydata/mutable/checker.py   |    3 ++-
2612   src/allmydata/mutable/filenode.py  |    6 ++++--
2613   src/allmydata/mutable/retrieve.py  |    5 +++--
2614   src/allmydata/test/test_mutable.py |    4 ++--
2615   4 files changed, 11 insertions(+), 7 deletions(-)
2616 
2617  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
2618  Author: Brian Warner <warner@lothar.com>
2619  Date:   Tue Oct 4 00:21:51 2011 -0400
2620 
2621      mutable/retrieve.py: s/peer/server/
2622 
2623   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
2624   src/allmydata/test/test_mutable.py |    6 +-
2625   2 files changed, 44 insertions(+), 44 deletions(-)
2626 
2627  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
2628  Author: Brian Warner <warner@lothar.com>
2629  Date:   Tue Oct 4 00:16:01 2011 -0400
2630 
2631      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
2632 
2633   src/allmydata/web/status.py |    2 ++
2634   1 files changed, 2 insertions(+), 0 deletions(-)
2635 
2636  commit 311466dd8c931bbba40d590ade867704282e7f1a
2637  Author: Brian Warner <warner@lothar.com>
2638  Date:   Mon Oct 3 23:48:16 2011 -0400
2639 
2640      API of PublishStatus.add_per_server_time()
2641 
2642   src/allmydata/mutable/publish.py |    5 +++--
2643   1 files changed, 3 insertions(+), 2 deletions(-)
2644 
2645  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
2646  Author: Brian Warner <warner@lothar.com>
2647  Date:   Mon Oct 3 23:46:37 2011 -0400
2648 
2649      more simplifications
2650 
2651   src/allmydata/mutable/publish.py |    4 +---
2652   1 files changed, 1 insertions(+), 3 deletions(-)
2653 
2654  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
2655  Author: Brian Warner <warner@lothar.com>
2656  Date:   Mon Oct 3 23:44:08 2011 -0400
2657 
2658      API of ServerMap.version_on_server()
2659 
2660   src/allmydata/mutable/publish.py   |    2 +-
2661   src/allmydata/mutable/servermap.py |    4 ++--
2662   src/allmydata/test/test_mutable.py |    5 ++---
2663   3 files changed, 5 insertions(+), 6 deletions(-)
2664 
2665  commit 3e187e322511072e4683329df6b2c6c733a66dba
2666  Author: Brian Warner <warner@lothar.com>
2667  Date:   Tue Oct 4 00:16:32 2011 -0400
2668 
2669      API of ServerMap.make_sharemap()
2670 
2671   src/allmydata/mutable/servermap.py |    4 ++--
2672   src/allmydata/test/test_mutable.py |    7 ++++---
2673   src/allmydata/web/status.py        |    4 ++--
2674   3 files changed, 8 insertions(+), 7 deletions(-)
2675 
2676  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
2677  Author: Brian Warner <warner@lothar.com>
2678  Date:   Mon Oct 3 23:36:19 2011 -0400
2679 
2680      small cleanups
2681 
2682   src/allmydata/mutable/publish.py |    4 ++--
2683   1 files changed, 2 insertions(+), 2 deletions(-)
2684 
2685  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
2686  Author: Brian Warner <warner@lothar.com>
2687  Date:   Mon Oct 3 23:33:39 2011 -0400
2688 
2689      API of ServerMap.add_new_share()
2690 
2691   src/allmydata/mutable/publish.py   |    4 ++--
2692   src/allmydata/mutable/servermap.py |    6 ++----
2693   2 files changed, 4 insertions(+), 6 deletions(-)
2694 
2695  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
2696  Author: Brian Warner <warner@lothar.com>
2697  Date:   Mon Oct 3 23:30:26 2011 -0400
2698 
2699      API of ServerMap.get_bad_shares()
2700 
2701   src/allmydata/mutable/publish.py   |    3 +--
2702   src/allmydata/mutable/servermap.py |    9 ++++-----
2703   2 files changed, 5 insertions(+), 7 deletions(-)
2704 
2705  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
2706  Author: Brian Warner <warner@lothar.com>
2707  Date:   Mon Oct 3 23:26:58 2011 -0400
2708 
2709      more small cleanups
2710 
2711   src/allmydata/mutable/publish.py |    6 +++---
2712   1 files changed, 3 insertions(+), 3 deletions(-)
2713 
2714  commit 38020da34f034f8889947dd3dc05e087ffff7106
2715  Author: Brian Warner <warner@lothar.com>
2716  Date:   Mon Oct 3 23:18:47 2011 -0400
2717 
2718      change Publish.bad_share_checkstrings
2719 
2720   src/allmydata/mutable/publish.py |    6 +++---
2721   1 files changed, 3 insertions(+), 3 deletions(-)
2722 
2723  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
2724  Author: Brian Warner <warner@lothar.com>
2725  Date:   Mon Oct 3 23:16:31 2011 -0400
2726 
2727      change internals of Publish.update_goal()
2728 
2729   src/allmydata/mutable/publish.py |    8 +++-----
2730   1 files changed, 3 insertions(+), 5 deletions(-)
2731 
2732  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
2733  Author: Brian Warner <warner@lothar.com>
2734  Date:   Mon Oct 3 23:11:42 2011 -0400
2735 
2736      get rid of Publish.connections
2737 
2738   src/allmydata/mutable/publish.py |   27 +++++----------------------
2739   1 files changed, 5 insertions(+), 22 deletions(-)
2740 
2741  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
2742  Author: Brian Warner <warner@lothar.com>
2743  Date:   Mon Oct 3 23:05:32 2011 -0400
2744 
2745      change Publish.bad_servers
2746 
2747   src/allmydata/mutable/publish.py |   10 +++++-----
2748   1 files changed, 5 insertions(+), 5 deletions(-)
2749 
2750  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
2751  Author: Brian Warner <warner@lothar.com>
2752  Date:   Mon Oct 3 23:03:07 2011 -0400
2753 
2754      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
2755 
2756   src/allmydata/mutable/publish.py |    2 +-
2757   1 files changed, 1 insertions(+), 1 deletions(-)
2758 
2759  commit 605ea15ec15ed671513819003ccd211cdb9761e0
2760  Author: Brian Warner <warner@lothar.com>
2761  Date:   Mon Oct 3 23:00:21 2011 -0400
2762 
2763      change .placed
2764 
2765   src/allmydata/mutable/publish.py |    6 +++---
2766   1 files changed, 3 insertions(+), 3 deletions(-)
2767 
2768  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
2769  Author: Brian Warner <warner@lothar.com>
2770  Date:   Mon Oct 3 22:59:22 2011 -0400
2771 
2772      temporarily stash IServer as .server on the "writer" object
2773 
2774   src/allmydata/mutable/publish.py |    2 ++
2775   1 files changed, 2 insertions(+), 0 deletions(-)
2776 
2777  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
2778  Author: Brian Warner <warner@lothar.com>
2779  Date:   Mon Oct 3 22:48:18 2011 -0400
2780 
2781      change Publish.goal and API of log_goal() to use IServer, not serverid
2782 
2783   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
2784   1 files changed, 24 insertions(+), 24 deletions(-)
2785 
2786  commit 75f20616558e4900b8b1f685dd99aa838de6d452
2787  Author: Brian Warner <warner@lothar.com>
2788  Date:   Mon Oct 3 15:27:02 2011 -0400
2789 
2790      API of ServerMap.get_known_shares()
2791 
2792   src/allmydata/mutable/publish.py   |   16 ++++++++++------
2793   src/allmydata/mutable/servermap.py |    7 ++-----
2794   2 files changed, 12 insertions(+), 11 deletions(-)
2795 
2796  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
2797  Author: Brian Warner <warner@lothar.com>
2798  Date:   Mon Oct 3 15:20:29 2011 -0400
2799 
2800      Publish.full_serverlist
2801 
2802   src/allmydata/mutable/publish.py |   10 +++++-----
2803   1 files changed, 5 insertions(+), 5 deletions(-)
2804 
2805  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
2806  Author: Brian Warner <warner@lothar.com>
2807  Date:   Mon Oct 3 15:12:31 2011 -0400
2808 
2809      API of ServerMap.all_servers()
2810 
2811   src/allmydata/mutable/servermap.py |   19 ++++++-------------
2812   1 files changed, 6 insertions(+), 13 deletions(-)
2813 
2814  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
2815  Author: Brian Warner <warner@lothar.com>
2816  Date:   Mon Oct 3 15:10:18 2011 -0400
2817 
2818      remove ServerMap.connections, set_rref_for_serverid()
2819 
2820   src/allmydata/mutable/servermap.py |   11 +----------
2821   1 files changed, 1 insertions(+), 10 deletions(-)
2822 
2823  commit 4df52db2f80eb12eefa5d57103c24893cde89553
2824  Author: Brian Warner <warner@lothar.com>
2825  Date:   Mon Oct 3 15:04:06 2011 -0400
2826 
2827      API of ServerMap.mark_server_reachable()
2828 
2829   src/allmydata/mutable/servermap.py |    7 ++-----
2830   1 files changed, 2 insertions(+), 5 deletions(-)
2831 
2832  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
2833  Author: Brian Warner <warner@lothar.com>
2834  Date:   Mon Oct 3 15:03:21 2011 -0400
2835 
2836      API of ServerMap.mark_server_unreachable()
2837 
2838   src/allmydata/mutable/servermap.py |    9 +++------
2839   1 files changed, 3 insertions(+), 6 deletions(-)
2840 
2841  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
2842  Author: Brian Warner <warner@lothar.com>
2843  Date:   Mon Oct 3 15:02:03 2011 -0400
2844 
2845      API of status.set_privkey_from()
2846 
2847   src/allmydata/mutable/servermap.py |    7 +++----
2848   1 files changed, 3 insertions(+), 4 deletions(-)
2849 
2850  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
2851  Author: Brian Warner <warner@lothar.com>
2852  Date:   Mon Oct 3 15:01:15 2011 -0400
2853 
2854      API of status.add_per_server_time()
2855 
2856   src/allmydata/mutable/servermap.py |    7 ++++---
2857   1 files changed, 4 insertions(+), 3 deletions(-)
2858 
2859  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
2860  Author: Brian Warner <warner@lothar.com>
2861  Date:   Mon Oct 3 14:59:02 2011 -0400
2862 
2863      remove unused .versionmap
2864 
2865   src/allmydata/mutable/servermap.py |    7 -------
2866   1 files changed, 0 insertions(+), 7 deletions(-)
2867 
2868  commit 2816562e090d2294179db3588dafcca18de1bc2b
2869  Author: Brian Warner <warner@lothar.com>
2870  Date:   Mon Oct 3 14:57:51 2011 -0400
2871 
2872      remove serverid from all log messages. Also one unused lambda.
2873 
2874   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2875   1 files changed, 15 insertions(+), 15 deletions(-)
2876 
2877  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2878  Author: Brian Warner <warner@lothar.com>
2879  Date:   Mon Oct 3 14:54:30 2011 -0400
2880 
2881      removed unused _readers
2882 
2883   src/allmydata/mutable/servermap.py |    3 ---
2884   1 files changed, 0 insertions(+), 3 deletions(-)
2885 
2886  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2887  Author: Brian Warner <warner@lothar.com>
2888  Date:   Mon Oct 3 14:54:16 2011 -0400
2889 
2890      remove unused _sharemap
2891 
2892   src/allmydata/mutable/servermap.py |    1 -
2893   1 files changed, 0 insertions(+), 1 deletions(-)
2894 
2895  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2896  Author: Brian Warner <warner@lothar.com>
2897  Date:   Mon Oct 3 14:49:03 2011 -0400
2898 
2899      _must_query
2900 
2901   src/allmydata/mutable/servermap.py |    8 ++++----
2902   1 files changed, 4 insertions(+), 4 deletions(-)
2903 
2904  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
2905  Author: Brian Warner <warner@lothar.com>
2906  Date:   Mon Oct 3 14:48:05 2011 -0400
2907 
2908      _queries_outstanding
2909 
2910   src/allmydata/mutable/servermap.py |   16 +++++++---------
2911   1 files changed, 7 insertions(+), 9 deletions(-)
2912 
2913  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2914  Author: Brian Warner <warner@lothar.com>
2915  Date:   Mon Oct 3 14:46:17 2011 -0400
2916 
2917      _empty_servers
2918 
2919   src/allmydata/mutable/servermap.py |    5 ++---
2920   1 files changed, 2 insertions(+), 3 deletions(-)
2921 
2922  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2923  Author: Brian Warner <warner@lothar.com>
2924  Date:   Mon Oct 3 14:45:39 2011 -0400
2925 
2926      _good_servers
2927 
2928   src/allmydata/mutable/servermap.py |    4 ++--
2929   1 files changed, 2 insertions(+), 2 deletions(-)
2930 
2931  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2932  Author: Brian Warner <warner@lothar.com>
2933  Date:   Mon Oct 3 14:44:59 2011 -0400
2934 
2935      _bad_servers
2936 
2937   src/allmydata/mutable/servermap.py |   14 +++++++-------
2938   1 files changed, 7 insertions(+), 7 deletions(-)
2939 
2940  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2941  Author: Brian Warner <warner@lothar.com>
2942  Date:   Mon Oct 3 14:41:54 2011 -0400
2943 
2944      API of _try_to_set_pubkey()
2945 
2946   src/allmydata/mutable/servermap.py |    7 ++++---
2947   1 files changed, 4 insertions(+), 3 deletions(-)
2948 
2949  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2950  Author: Brian Warner <warner@lothar.com>
2951  Date:   Mon Oct 3 14:35:02 2011 -0400
2952 
2953      API of notify_server_corruption()
2954 
2955   src/allmydata/mutable/servermap.py |    6 +++---
2956   1 files changed, 3 insertions(+), 3 deletions(-)
2957 
2958  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2959  Author: Brian Warner <warner@lothar.com>
2960  Date:   Mon Oct 3 14:34:09 2011 -0400
2961 
2962      API of _got_signature_one_share()
2963 
2964   src/allmydata/mutable/servermap.py |    9 +++++----
2965   1 files changed, 5 insertions(+), 4 deletions(-)
2966 
2967  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2968  Author: Brian Warner <warner@lothar.com>
2969  Date:   Mon Oct 3 14:32:33 2011 -0400
2970 
2971      API of _try_to_validate_privkey()
2972 
2973   src/allmydata/mutable/servermap.py |    9 +++++----
2974   1 files changed, 5 insertions(+), 4 deletions(-)
2975 
2976  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2977  Author: Brian Warner <warner@lothar.com>
2978  Date:   Mon Oct 3 14:31:48 2011 -0400
2979 
2980      API and internals of _add_lease_failed()
2981 
2982   src/allmydata/mutable/servermap.py |    8 ++++----
2983   1 files changed, 4 insertions(+), 4 deletions(-)
2984 
2985  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2986  Author: Brian Warner <warner@lothar.com>
2987  Date:   Mon Oct 3 14:30:37 2011 -0400
2988 
2989      API of _privkey_query_failed()
2990 
2991   src/allmydata/mutable/servermap.py |    5 +++--
2992   1 files changed, 3 insertions(+), 2 deletions(-)
2993 
2994  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2995  Author: Brian Warner <warner@lothar.com>
2996  Date:   Mon Oct 3 14:29:43 2011 -0400
2997 
2998      fix bug in call to _privkey_query_failed, unrelated to refactoring
2999 
3000   src/allmydata/mutable/servermap.py |    2 +-
3001   1 files changed, 1 insertions(+), 1 deletions(-)
3002 
3003  commit ae615bec7d0d1b269710b6902797b12f9592ad62
3004  Author: Brian Warner <warner@lothar.com>
3005  Date:   Mon Oct 3 14:27:17 2011 -0400
3006 
3007      API of _got_corrupt_share()
3008 
3009   src/allmydata/mutable/servermap.py |   17 +++++++++--------
3010   1 files changed, 9 insertions(+), 8 deletions(-)
3011 
3012  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
3013  Author: Brian Warner <warner@lothar.com>
3014  Date:   Mon Oct 3 14:23:16 2011 -0400
3015 
3016      API of _got_results()
3017 
3018   src/allmydata/mutable/servermap.py |    9 +++++----
3019   1 files changed, 5 insertions(+), 4 deletions(-)
3020 
3021  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
3022  Author: Brian Warner <warner@lothar.com>
3023  Date:   Mon Oct 3 14:19:19 2011 -0400
3024 
3025      API of _query_failed()
3026 
3027   src/allmydata/mutable/servermap.py |    5 +++--
3028   1 files changed, 3 insertions(+), 2 deletions(-)
3029 
3030  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
3031  Author: Brian Warner <warner@lothar.com>
3032  Date:   Mon Oct 3 14:17:20 2011 -0400
3033 
3034      API of _do_read()
3035 
3036   src/allmydata/mutable/servermap.py |    6 ++++--
3037   1 files changed, 4 insertions(+), 2 deletions(-)
3038 
3039  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
3040  Author: Brian Warner <warner@lothar.com>
3041  Date:   Mon Oct 3 14:20:21 2011 -0400
3042 
3043      API of _do_query()
3044 
3045   src/allmydata/mutable/servermap.py |   15 +++++++--------
3046   1 files changed, 7 insertions(+), 8 deletions(-)
3047 
3048  commit 330625b9dac4cdbe72a11464a893065b9aeed453
3049  Author: Brian Warner <warner@lothar.com>
3050  Date:   Mon Oct 3 14:43:05 2011 -0400
3051 
3052      next step: first batch of updates to ServermapUpdater
3053 
3054      updates:
3055       most method-local variables in update()
3056       API of _build_initial_querylist()
3057       API of _send_initial_requests()
3058       .full_serverlist
3059       .extra_servers
3060 
3061   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
3062   1 files changed, 21 insertions(+), 18 deletions(-)
3063 
3064  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
3065  Author: Brian Warner <warner@lothar.com>
3066  Date:   Mon Oct 3 15:07:00 2011 -0400
3067 
3068      internal change: index _bad_shares with IServer
3069 
3070   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
3071   1 files changed, 10 insertions(+), 10 deletions(-)
3072 
3073  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
3074  Author: Brian Warner <warner@lothar.com>
3075  Date:   Mon Oct 3 18:20:47 2011 +0100
3076 
3077      internal change: index _known_shares with IServer instead of serverid
3078 
3079      callers are unchanged
3080 
3081   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
3082   1 files changed, 25 insertions(+), 17 deletions(-)
3083 
3084  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
3085  Author: Brian Warner <warner@lothar.com>
3086  Date:   Mon Oct 3 18:11:43 2011 +0100
3087 
3088      accessors and name cleanup for servermap.Servermap.last_update_mode/time
3089 
3090   src/allmydata/mutable/filenode.py  |    6 +++---
3091   src/allmydata/mutable/publish.py   |    4 ++--
3092   src/allmydata/mutable/servermap.py |   17 +++++++++++------
3093   3 files changed, 16 insertions(+), 11 deletions(-)
3094 
3095  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
3096  Author: Brian Warner <warner@lothar.com>
3097  Date:   Mon Oct 3 18:11:14 2011 +0100
3098 
3099      accessors and name cleanup for servermap.Servermap.problems
3100 
3101   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
3102   src/allmydata/test/test_mutable.py |    6 +++---
3103   2 files changed, 16 insertions(+), 11 deletions(-)
3104 
3105  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
3106  Author: Brian Warner <warner@lothar.com>
3107  Date:   Mon Oct 3 18:10:41 2011 +0100
3108 
3109      accessors and name cleanup for servermap.Servermap.bad_shares
3110 
3111   src/allmydata/mutable/publish.py   |    2 +-
3112   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
3113   2 files changed, 18 insertions(+), 14 deletions(-)
3114 
3115  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
3116  Author: Brian Warner <warner@lothar.com>
3117  Date:   Mon Oct 3 18:10:05 2011 +0100
3118 
3119      accessors and name cleanup for servermap.Servermap.servermap .
3120 
3121   src/allmydata/mutable/publish.py   |   14 +++++----
3122   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
3123   2 files changed, 29 insertions(+), 23 deletions(-)
3124 
3125  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
3126  Author: Brian Warner <warner@lothar.com>
3127  Date:   Mon Oct 3 18:08:02 2011 +0100
3128 
3129      fix reachable_servers
3130 
3131   src/allmydata/mutable/checker.py   |    3 ++-
3132   src/allmydata/mutable/publish.py   |    4 +++-
3133   src/allmydata/mutable/servermap.py |   12 ++++++++++--
3134   3 files changed, 15 insertions(+), 4 deletions(-)
3135 
3136  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
3137  Author: Brian Warner <warner@lothar.com>
3138  Date:   Mon Oct 3 18:06:03 2011 +0100
3139 
3140      fix Servermap.unreachable_servers
3141 
3142   src/allmydata/mutable/servermap.py |   11 ++++++++---
3143   1 files changed, 8 insertions(+), 3 deletions(-)
3144 
3145  commit 2d9ea79b94bd4db674d40386fda90825785ac495
3146  Author: Brian Warner <warner@lothar.com>
3147  Date:   Mon Oct 3 18:03:48 2011 +0100
3148 
3149      give ServerMap a StorageFarmBroker, temporary
3150 
3151      this makes it possible for the ServerMap to accept bare serverids and still
3152      build data structures with IServers
3153 
3154   src/allmydata/mutable/checker.py   |    2 +-
3155   src/allmydata/mutable/filenode.py  |    2 +-
3156   src/allmydata/mutable/publish.py   |    2 +-
3157   src/allmydata/mutable/servermap.py |    5 +++--
3158   src/allmydata/test/test_mutable.py |    8 ++++----
3159   5 files changed, 10 insertions(+), 9 deletions(-)
3160 
3161  commit 718d1aeff6fded893f65397806d22ece928b0dd4
3162  Author: Brian Warner <warner@lothar.com>
3163  Date:   Mon Oct 3 13:43:30 2011 -0400
3164 
3165      add StorageFarmBroker.get_server_for_id(), temporary helper
3166 
3167      This will go away once we're passing IServers everywhere.
3168 
3169   src/allmydata/storage_client.py  |    2 ++
3170   src/allmydata/test/no_network.py |   13 +++++++++++++
3171   2 files changed, 15 insertions(+), 0 deletions(-)
3172 
3173  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
3174  Author: Brian Warner <warner@lothar.com>
3175  Date:   Sun Oct 2 01:11:50 2011 +0100
3176 
3177      add proper accessors for Servermap.connections, to make refactoring easier
3178 
3179   src/allmydata/mutable/publish.py   |    6 +++---
3180   src/allmydata/mutable/retrieve.py  |   10 +++++-----
3181   src/allmydata/mutable/servermap.py |   17 +++++++++++------
3182   3 files changed, 19 insertions(+), 14 deletions(-)
3183 
3184  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
3185  Author: Brian Warner <warner@lothar.com>
3186  Date:   Fri Sep 23 10:34:30 2011 -0700
3187 
3188      mutable/servermap.py and neighbors: s/peer/server/
3189 
3190   src/allmydata/mutable/checker.py   |   22 +-
3191   src/allmydata/mutable/publish.py   |  204 +++++++-------
3192   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
3193   src/allmydata/test/test_mutable.py |   18 +-
3194   4 files changed, 323 insertions(+), 323 deletions(-)
3195]
3196[TAG allmydata-tahoe-1.9.0
3197warner@lothar.com**20111031052301
3198 Ignore-this: cf598210dd1f314a1a121bf29a3d5918
3199]
3200Patch bundle hash:
32013bd9a6d314c770d7511167ccd54f2c834f514828