switch all foolscap imports to use foolscap.api or foolscap.logging
authorBrian Warner <warner@lothar.com>
Fri, 22 May 2009 00:38:23 +0000 (17:38 -0700)
committerBrian Warner <warner@lothar.com>
Fri, 22 May 2009 00:38:23 +0000 (17:38 -0700)
45 files changed:
src/allmydata/__init__.py
src/allmydata/client.py
src/allmydata/control.py
src/allmydata/dirnode.py
src/allmydata/gui/confwiz.py
src/allmydata/immutable/checker.py
src/allmydata/immutable/download.py
src/allmydata/immutable/encode.py
src/allmydata/immutable/filenode.py
src/allmydata/immutable/offloaded.py
src/allmydata/immutable/upload.py
src/allmydata/interfaces.py
src/allmydata/introducer/client.py
src/allmydata/introducer/interfaces.py
src/allmydata/introducer/old.py
src/allmydata/introducer/server.py
src/allmydata/key_generator.py
src/allmydata/mutable/filenode.py
src/allmydata/mutable/publish.py
src/allmydata/mutable/retrieve.py
src/allmydata/mutable/servermap.py
src/allmydata/node.py
src/allmydata/stats.py
src/allmydata/storage/immutable.py
src/allmydata/storage/server.py
src/allmydata/test/check_memory.py
src/allmydata/test/check_speed.py
src/allmydata/test/common.py
src/allmydata/test/no_network.py
src/allmydata/test/test_client.py
src/allmydata/test/test_crawler.py
src/allmydata/test/test_encode.py
src/allmydata/test/test_helper.py
src/allmydata/test/test_introducer.py
src/allmydata/test/test_keygen.py
src/allmydata/test/test_mutable.py
src/allmydata/test/test_node.py
src/allmydata/test/test_storage.py
src/allmydata/test/test_system.py
src/allmydata/test/test_upload.py
src/allmydata/util/limiter.py
src/allmydata/util/observer.py
src/allmydata/util/rrefutil.py
src/allmydata/web/directory.py
src/allmydata/web/introweb.py

index f86e2703fa384f5d335baaa73f243738b091c565..2e2d8b1dbf82048b010cc5e06d34c4a36923f60e 100644 (file)
@@ -136,12 +136,12 @@ def get_package_versions_and_locations():
     # because there are a few dependencies that are outside setuptools's ken (Python and
     # platform), and because setuptools might fail to find something even though import finds
     # it:
-    import OpenSSL, allmydata, foolscap, nevow, platform, pycryptopp, setuptools, simplejson, twisted, zfec, zope.interface
+    import OpenSSL, allmydata, foolscap.api, nevow, platform, pycryptopp, setuptools, simplejson, twisted, zfec, zope.interface
 
     d1 = {
         'pyOpenSSL': (OpenSSL.__version__, os.path.dirname(OpenSSL.__file__)),
         'allmydata-tahoe': (allmydata.__version__, os.path.dirname(allmydata.__file__)),
-        'foolscap': (foolscap.__version__, os.path.dirname(foolscap.__file__)),
+        'foolscap': (foolscap.api.__version__, os.path.dirname(foolscap.__file__)),
         'Nevow': (nevow.__version__, os.path.dirname(nevow.__file__)),
         'pycryptopp': (pycryptopp.__version__, os.path.dirname(pycryptopp.__file__)),
         'setuptools': (setuptools.__version__, os.path.dirname(setuptools.__file__)),
index 04401a3ba70fe861e4fc7d123ee9b42dcfd80889..99dfa09b1c712425db2a1ca64717d99e7e97fb93 100644 (file)
@@ -5,7 +5,7 @@ from allmydata import node
 from zope.interface import implements
 from twisted.internet import reactor
 from twisted.application.internet import TimerService
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 from foolscap.logging import log
 from pycryptopp.publickey import rsa
 
index 73756605e449dcc471d9e7b373689e97c86775da..01eb7c3726afcfadb34310ac4c94aee0258ce808 100644 (file)
@@ -3,7 +3,7 @@ import os, time
 from zope.interface import implements
 from twisted.application import service
 from twisted.internet import defer
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 from allmydata.interfaces import RIControlClient
 from allmydata.util import fileutil, mathutil
 from allmydata.immutable import upload, download
index 4bfaeb7017ca10d6b2ac47016583642d9e6adb0d..cba72b236ca4be5fabcd928ef809791894c43ff2 100644 (file)
@@ -3,7 +3,7 @@ import os, time, math
 
 from zope.interface import implements
 from twisted.internet import defer
-from foolscap.eventual import fireEventually
+from foolscap.api import fireEventually
 import simplejson
 from allmydata.mutable.common import NotMutableError
 from allmydata.mutable.filenode import MutableFileNode
index ae48af11cd8fd5f1d4a9cdcdf5683772e6763042..3f47fb058cca9a9b5e2522f6da4a5dbd2767e17e 100644 (file)
@@ -28,7 +28,7 @@ import allmydata
 #import amdicon
 import amdlogo
 
-import foolscap
+from foolscap.api import Tub
 from twisted.python import usage
 
 class AuthError(Exception):
@@ -124,7 +124,7 @@ def write_root_cap(root_cap):
 def get_nodeid():
     CERTFILE = "node.pem"
     certfile = os.path.join(get_basedir(), "private", CERTFILE)
-    tub = foolscap.Tub(certFile=certfile)
+    tub = Tub(certFile=certfile)
     return tub.getTubID()
 
 def get_nickname():
index bbcd2ee9645a2a0b0d5a352147ecbd2bb35d99e1..88d7b17103f0a619229296b9cdc134bc7ed7859d 100644 (file)
@@ -1,4 +1,4 @@
-from foolscap import DeadReferenceError
+from foolscap.api import DeadReferenceError
 from twisted.internet import defer
 from allmydata import hashtree
 from allmydata.check_results import CheckResults
index 70907bc5f9163ca30f2e47e74c85e67273b38044..2d544ad6c20d2c19732e579043715fb2017619e5 100644 (file)
@@ -3,8 +3,7 @@ from zope.interface import implements
 from twisted.internet import defer
 from twisted.internet.interfaces import IPushProducer, IConsumer
 from twisted.application import service
-from foolscap import DeadReferenceError
-from foolscap.eventual import eventually
+from foolscap.api import DeadReferenceError, eventually
 
 from allmydata.util import base32, deferredutil, hashutil, log, mathutil
 from allmydata.util.assertutil import _assert, precondition
index 310e446e4e338e407c43c9a4ef7061f01f4d2697..785e42d1dced2723978d9f1425003ba6eb979f6b 100644 (file)
@@ -3,7 +3,7 @@
 import time
 from zope.interface import implements
 from twisted.internet import defer
-from foolscap import eventual
+from foolscap.api import fireEventually
 from allmydata import uri
 from allmydata.storage.server import si_b2a
 from allmydata.hashtree import HashTree
@@ -220,7 +220,7 @@ class Encoder(object):
             }
         self._start_total_timestamp = time.time()
 
-        d = eventual.fireEventually()
+        d = fireEventually()
 
         d.addCallback(lambda res: self.start_all_shareholders())
 
@@ -278,7 +278,7 @@ class Encoder(object):
         # consistency will cause objects to live for longer than you might
         # normally expect.
 
-        return eventual.fireEventually(res)
+        return fireEventually(res)
 
 
     def start_all_shareholders(self):
index 202609800aa3c4cefc3989c52f43af92ed85b9dd..bace435704b1be70ed8224a4fd4ae37316cecd8f 100644 (file)
@@ -4,7 +4,7 @@ from zope.interface import implements
 from twisted.internet import defer
 from twisted.internet.interfaces import IPushProducer, IConsumer
 from twisted.protocols import basic
-from foolscap.eventual import eventually
+from foolscap.api import eventually
 from allmydata.interfaces import IFileNode, IFileURI, ICheckable, \
      IDownloadTarget, IUploadResults
 from allmydata.util import dictutil, log, base32
index bbbc5c85c223dca85fef522c88a89fe523804488..c8da456de6098b4b7c9d2a7134817a16cbb226e8 100644 (file)
@@ -3,8 +3,7 @@ import os, stat, time, weakref
 from zope.interface import implements
 from twisted.application import service
 from twisted.internet import defer
-from foolscap import Referenceable, DeadReferenceError
-from foolscap.eventual import eventually
+from foolscap.api import Referenceable, DeadReferenceError, eventually
 import allmydata # for __full_version__
 from allmydata import interfaces, uri
 from allmydata.storage.server import si_b2a
index ec3619f67f1fa0c4d41a86b12f421c2d7843cc80..d7a4d7adab0b5e2c4dc72ce9f7d8f1589c2c7376 100644 (file)
@@ -3,8 +3,7 @@ from zope.interface import implements
 from twisted.python import failure
 from twisted.internet import defer
 from twisted.application import service
-from foolscap import Referenceable, Copyable, RemoteCopy
-from foolscap import eventual
+from foolscap.api import Referenceable, Copyable, RemoteCopy, fireEventually
 
 from allmydata.util.hashutil import file_renewal_secret_hash, \
      file_cancel_secret_hash, bucket_renewal_secret_hash, \
@@ -529,7 +528,7 @@ class EncryptAnUploadable:
         # actually synchronous too, we'd blow the stack unless we stall for a
         # tick. Once you accept a Deferred from IUploadable.read(), you must
         # be prepared to have it fire immediately too.
-        d.addCallback(eventual.fireEventually)
+        d.addCallback(fireEventually)
         def _good(plaintext):
             # and encrypt it..
             # o/' over the fields we go, hashing all the way, sHA! sHA! sHA! o/'
index abfeb1cc954fdffb877e96951d25228a20267e01..a123afed902b5f611f1ceaa9ae6efc5e5cc0dae7 100644 (file)
@@ -1,8 +1,7 @@
 
 from zope.interface import Interface
-from foolscap.schema import StringConstraint, ListOf, TupleOf, SetOf, DictOf, \
-     ChoiceOf, IntegerConstraint, Any
-from foolscap import RemoteInterface, Referenceable
+from foolscap.api import StringConstraint, ListOf, TupleOf, SetOf, DictOf, \
+     ChoiceOf, IntegerConstraint, Any, RemoteInterface, Referenceable
 
 HASH_SIZE=32
 
index 5781abce6fd077579a2593771f1be0be8b7f9850..bd45f6e818ce1a3b9a5db0a413d6a5e3319ba6f3 100644 (file)
@@ -3,7 +3,7 @@ import re, time, sha
 from base64 import b32decode
 from zope.interface import implements
 from twisted.application import service
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 from allmydata.interfaces import InsufficientVersionError
 from allmydata.introducer.interfaces import RIIntroducerSubscriberClient, \
      IIntroducerClient
index 56b87b16fe059dec0250b9cda1c5637430a93d97..b02bb3556d6cb501a4869926e5e2971cbd01a7c3 100644 (file)
@@ -1,7 +1,7 @@
 
 from zope.interface import Interface
-from foolscap.schema import StringConstraint, TupleOf, SetOf, DictOf, Any
-from foolscap import RemoteInterface
+from foolscap.api import StringConstraint, TupleOf, SetOf, DictOf, Any, \
+    RemoteInterface
 FURL = StringConstraint(1000)
 
 # Announcements are (FURL, service_name, remoteinterface_name,
index d3440dac8a2f1e88741c970915059fac80e5d8b9..2f6fa18ade84580b4b74304cecc2f8cf180579f1 100644 (file)
@@ -7,7 +7,7 @@ import re, time, sha
 from base64 import b32decode
 from zope.interface import implements
 from twisted.application import service
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 from allmydata.util import log, idlib
 from allmydata.introducer.interfaces import RIIntroducerSubscriberClient, \
      IIntroducerClient, RIIntroducerPublisherAndSubscriberService
index d0ed6412f87241f4781af34187fc2b5372bc12ed..de511e745f595cee7363017cb8b69bbfd4aa3a53 100644 (file)
@@ -2,7 +2,7 @@
 import time, os.path
 from zope.interface import implements
 from twisted.application import service
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 import allmydata
 from allmydata import node
 from allmydata.util import log
index 57a3fd1cfaa7952b424d42df2c02dc802618867d..7d0ecdb7eb015cb173faa71939953838b2938544 100644 (file)
@@ -2,7 +2,7 @@
 import os
 import time
 
-import foolscap
+from foolscap.api import Referenceable, Tub
 from zope.interface import implements
 from twisted.internet import reactor
 from twisted.application import service
@@ -11,7 +11,7 @@ from allmydata.util import log
 from pycryptopp.publickey import rsa
 from allmydata.interfaces import RIKeyGenerator
 
-class KeyGenerator(service.MultiService, foolscap.Referenceable):
+class KeyGenerator(service.MultiService, Referenceable):
     implements(RIKeyGenerator)
 
     pool_size = 16 # no. keys to keep on hand in the pool
@@ -79,7 +79,7 @@ class KeyGeneratorService(service.MultiService):
     def __init__(self, basedir='.', display_furl=True, default_key_size=2048):
         service.MultiService.__init__(self)
         self.basedir = basedir
-        self.tub = foolscap.Tub(certFile=os.path.join(self.basedir, 'key_generator.pem'))
+        self.tub = Tub(certFile=os.path.join(self.basedir, 'key_generator.pem'))
         self.tub.setServiceParent(self)
         self.key_generator = KeyGenerator(default_key_size=default_key_size)
         self.key_generator.setServiceParent(self)
index d7b5365ce612a34b777dc90e135d94f02ac16066..e3f5a67559d75079870d7a2a4d00f51571033c7c 100644 (file)
@@ -3,7 +3,7 @@ import random
 
 from zope.interface import implements
 from twisted.internet import defer, reactor
-from foolscap.eventual import eventually
+from foolscap.api import eventually
 from allmydata.interfaces import IMutableFileNode, IMutableFileURI, \
      ICheckable, ICheckResults, NotEnoughSharesError
 from allmydata.util import hashutil, log
index 819f8bd76ff76b023ebb60d87e7fa2e91ea7c6dc..34fad3b885befe26f6ea0013f33b0932d4465d29 100644 (file)
@@ -10,7 +10,7 @@ from allmydata.util import base32, hashutil, mathutil, idlib, log
 from allmydata import hashtree, codec
 from allmydata.storage.server import si_b2a
 from pycryptopp.cipher.aes import AES
-from foolscap.eventual import eventually
+from foolscap.api import eventually
 
 from common import MODE_WRITE, MODE_CHECK, DictOfSets, \
      UncoordinatedWriteError, NotEnoughServersError
index 0a6c0ea6e79bb97b99980dceaec1e7f1d35e581c..935ec50fbcd70df5fe75228bfed0521d215be554 100644 (file)
@@ -4,8 +4,7 @@ from itertools import count
 from zope.interface import implements
 from twisted.internet import defer
 from twisted.python import failure
-from foolscap import DeadReferenceError
-from foolscap.eventual import eventually, fireEventually
+from foolscap.api import DeadReferenceError, eventually, fireEventually
 from allmydata.interfaces import IRetrieveStatus, NotEnoughSharesError
 from allmydata.util import hashutil, idlib, log
 from allmydata import hashtree, codec
index e56be7464dad93fdf25ec430562f2d017fb74c90..12cf4ff018c26c5eb4e67489a504ca3d72cf4b0d 100644 (file)
@@ -4,8 +4,7 @@ from zope.interface import implements
 from itertools import count
 from twisted.internet import defer
 from twisted.python import failure
-from foolscap import DeadReferenceError
-from foolscap.eventual import eventually
+from foolscap.api import DeadReferenceError, eventually
 from allmydata.util import base32, hashutil, idlib, log, rrefutil
 from allmydata.storage.server import si_b2a
 from allmydata.interfaces import IServermapUpdaterStatus
index e9dd3b7e2039bd88aec9d5c25f55c928a861dd9a..b582d923a8af4e37384f57625a5d96e49fa10c87 100644 (file)
@@ -5,15 +5,13 @@ from base64 import b32decode, b32encode
 from twisted.python import log as twlog
 from twisted.application import service
 from twisted.internet import defer, reactor
-from foolscap import Tub, eventual
+from foolscap.api import Tub, eventually, app_versions
 import foolscap.logging.log
 from allmydata import get_package_versions, get_package_versions_string
 from allmydata.util import log
 from allmydata.util import fileutil, iputil, observer
 from allmydata.util.assertutil import precondition, _assert
 
-from foolscap.logging import app_versions
-
 # Add our application versions to the data that Foolscap's LogPublisher
 # reports.
 for thing, things_version in get_package_versions().iteritems():
@@ -243,7 +241,7 @@ class Node(service.MultiService):
         except EnvironmentError:
             pass
         # Delay until the reactor is running.
-        eventual.eventually(self._startService)
+        eventually(self._startService)
 
     def _startService(self):
         precondition(reactor.running)
index fc9ca9e7b0f1aa9961f374a3f2aa7591767c0dd9..685aa3d0b56a35103da130377ad88c6f50ce053a 100644 (file)
@@ -9,10 +9,8 @@ from twisted.internet import reactor
 from twisted.application import service
 from twisted.application.internet import TimerService
 from zope.interface import implements
-import foolscap
-from foolscap.eventual import eventually
+from foolscap.api import eventually, DeadReferenceError, Referenceable, Tub
 from twisted.internet.error import ConnectionDone, ConnectionLost
-from foolscap import DeadReferenceError
 
 from allmydata.util import log
 from allmydata.interfaces import RIStatsProvider, RIStatsGatherer, IStatsProducer
@@ -124,7 +122,7 @@ class CPUUsageMonitor(service.MultiService):
         return s
 
 
-class StatsProvider(foolscap.Referenceable, service.MultiService):
+class StatsProvider(Referenceable, service.MultiService):
     implements(RIStatsProvider)
 
     def __init__(self, node, gatherer_furl):
@@ -180,7 +178,7 @@ class StatsProvider(foolscap.Referenceable, service.MultiService):
         gatherer.callRemoteOnly('provide', self, nickname or '')
 
 
-class StatsGatherer(foolscap.Referenceable, service.MultiService):
+class StatsGatherer(Referenceable, service.MultiService):
     implements(RIStatsGatherer)
 
     poll_interval = 60
@@ -196,7 +194,7 @@ class StatsGatherer(foolscap.Referenceable, service.MultiService):
         self.timer.setServiceParent(self)
 
     def get_tubid(self, rref):
-        return foolscap.SturdyRef(rref.tracker.getURL()).getTubRef().getTubID()
+        return rref.getRemoteTubID()
 
     def remote_provide(self, provider, nickname):
         tubid = self.get_tubid(provider)
@@ -282,8 +280,8 @@ class StatsGathererService(service.MultiService):
     def __init__(self, basedir=".", verbose=False):
         service.MultiService.__init__(self)
         self.basedir = basedir
-        self.tub = foolscap.Tub(certFile=os.path.join(self.basedir,
-                                                      "stats_gatherer.pem"))
+        self.tub = Tub(certFile=os.path.join(self.basedir,
+                                             "stats_gatherer.pem"))
         self.tub.setServiceParent(self)
         self.tub.setOption("logLocalFailures", True)
         self.tub.setOption("logRemoteFailures", True)
index cc58d44f6ffce7f8aad1afaa031c04601a08d3f4..0b43b59861ab38fa41c85b81bd84da92ad253be0 100644 (file)
@@ -1,6 +1,6 @@
 import os, stat, struct, time
 
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 
 from zope.interface import implements
 from allmydata.interfaces import RIBucketWriter, RIBucketReader
index 1ea8e1edc17100f353cf9ac79c34bb4da4bad743..2b0f8af645fb740f90aab077fa31684d6fe42d9b 100644 (file)
@@ -1,6 +1,6 @@
 import os, re, weakref, struct, time
 
-from foolscap import Referenceable
+from foolscap.api import Referenceable
 from twisted.application import service
 
 from zope.interface import implements
index 8994cb6639ed9ddd73cd73cf6df56a94c2b898eb..bfc6b91a136183be501736ecd0e641b8bf09f9c5 100644 (file)
@@ -9,8 +9,7 @@ from allmydata import client, introducer
 from allmydata.immutable import upload
 from allmydata.scripts import create_node
 from allmydata.util import fileutil, pollmixin
-import foolscap
-from foolscap import eventual
+from foolscap.api import Tub, fireEventually, flushEventualQueue
 from twisted.python import log
 
 class StallableHTTPGetterDiscarder(tw_client.HTTPPageGetter):
@@ -74,7 +73,7 @@ class SystemFramework(pollmixin.PollMixin):
         self.sparent = service.MultiService()
         self.sparent.startService()
         self.proc = None
-        self.tub = foolscap.Tub()
+        self.tub = Tub()
         self.tub.setServiceParent(self.sparent)
         self.mode = mode
         self.failed = False
@@ -87,7 +86,7 @@ class SystemFramework(pollmixin.PollMixin):
         #logfile = open(os.path.join(self.testdir, "log"), "w")
         #flo = log.FileLogObserver(logfile)
         #log.startLoggingWithObserver(flo.emit, setStdout=False)
-        d = eventual.fireEventually()
+        d = fireEventually()
         d.addCallback(lambda res: self.setUp())
         d.addCallback(lambda res: self.record_initial_memusage())
         d.addCallback(lambda res: self.make_nodes())
@@ -154,7 +153,7 @@ class SystemFramework(pollmixin.PollMixin):
         if self.proc:
             d.addCallback(lambda res: self.kill_client())
         d.addCallback(lambda res: self.sparent.stopService())
-        d.addCallback(lambda res: eventual.flushEventualQueue())
+        d.addCallback(lambda res: flushEventualQueue())
         def _close_statsfile(res):
             self.statsfile.close()
         d.addCallback(_close_statsfile)
index 42cfe07a943c4f079c5a2688f809d186514ed94b..f8d0fc1d63b0a9a03ff9f2d0f6a6f83f4d5c219a 100644 (file)
@@ -4,7 +4,7 @@ import os, sys
 from twisted.internet import reactor, defer
 from twisted.python import log
 from twisted.application import service
-from foolscap import Tub, eventual
+from foolscap.api import Tub, fireEventually
 
 MB = 1000000
 
@@ -26,7 +26,7 @@ class SpeedTest:
 
     def run(self):
         print "STARTING"
-        d = eventual.fireEventually()
+        d = fireEventually()
         d.addCallback(lambda res: self.setUp())
         d.addCallback(lambda res: self.do_test())
         d.addBoth(self.tearDown)
index 03d5a2ddd75bf8f10c818fa631e4bafb357668ef..ee5c2650a139a8de003dd248f82386bf9232c40a 100644 (file)
@@ -5,7 +5,7 @@ from twisted.internet.interfaces import IConsumer
 from twisted.python import failure
 from twisted.application import service
 from twisted.web.error import Error as WebError
-from foolscap.eventual import flushEventualQueue, fireEventually
+from foolscap.api import flushEventualQueue, fireEventually
 from allmydata import uri, dirnode, client
 from allmydata.introducer.server import IntroducerNode
 from allmydata.interfaces import IURI, IMutableFileNode, IFileNode, \
index 421bd2a02c5bc795a32406b22c328820f04747f5..d417f60a0d5c22cf39875853f348feee3f8a4983 100644 (file)
@@ -17,8 +17,7 @@ import os.path
 import sha
 from twisted.application import service
 from twisted.internet import reactor
-from foolscap import Referenceable
-from foolscap.eventual import fireEventually
+from foolscap.api import Referenceable, fireEventually
 from base64 import b32encode
 from allmydata import uri as tahoe_uri
 from allmydata.client import Client
index f878101ab37ae241215d4452afdd86fa4991cd08..5865edc5799f60d052fe4e8f958ec73ebd74acb1 100644 (file)
@@ -8,7 +8,7 @@ import allmydata
 from allmydata import client
 from allmydata.introducer.client import IntroducerClient
 from allmydata.util import base32
-from foolscap.eventual import flushEventualQueue
+from foolscap.api import flushEventualQueue
 import common_util as testutil
 
 class FakeIntroducerClient(IntroducerClient):
index b4cf56e7434d73f85a9e0c5cacb970d6a37bcbd8..4caa29064b06c430f68bc49c25de010ede5cc659 100644 (file)
@@ -4,7 +4,7 @@ import os.path
 from twisted.trial import unittest
 from twisted.application import service
 from twisted.internet import defer
-from foolscap import eventual
+from foolscap.api import eventually, fireEventually
 
 from allmydata.util import fileutil, hashutil, pollmixin
 from allmydata.storage.server import StorageServer, si_b2a
@@ -23,7 +23,7 @@ class BucketEnumeratingCrawler(ShareCrawler):
     def process_bucket(self, cycle, prefix, prefixdir, storage_index_b32):
         self.all_buckets.append(storage_index_b32)
     def finished_cycle(self, cycle):
-        eventual.eventually(self.finished_d.callback, None)
+        eventually(self.finished_d.callback, None)
 
 class PacedCrawler(ShareCrawler):
     cpu_slice = 500 # make sure it can complete in a single slice
@@ -45,7 +45,7 @@ class PacedCrawler(ShareCrawler):
         if self.yield_cb:
             self.yield_cb()
     def finished_cycle(self, cycle):
-        eventual.eventually(self.finished_d.callback, None)
+        eventually(self.finished_d.callback, None)
 
 class ConsumingCrawler(ShareCrawler):
     cpu_slice = 0.5
@@ -420,7 +420,7 @@ class Basic(unittest.TestCase, StallMixin, pollmixin.PollMixin):
 
         d = c.finished_d
         def _finished_first_cycle(ignored):
-            return eventual.fireEventually(c.counter)
+            return fireEventually(c.counter)
         d.addCallback(_finished_first_cycle)
         def _check(old_counter):
             # the crawler should do any work after it's been stopped
index 0e2e2a8f9dafd97670c20a83817160f064381340..b3461f357ccd4be1ebaa51eae18c94947ed8e60a 100644 (file)
@@ -3,7 +3,7 @@ from twisted.trial import unittest
 from twisted.internet import defer, reactor
 from twisted.internet.interfaces import IConsumer
 from twisted.python.failure import Failure
-from foolscap import eventual
+from foolscap.api import fireEventually
 from allmydata import hashtree, uri
 from allmydata.immutable import encode, upload, download
 from allmydata.util import hashutil
@@ -40,7 +40,7 @@ class FakeBucketReaderWriterProxy:
     def _start(self):
         if self.mode == "lost-early":
             f = Failure(LostPeerError("I went away early"))
-            return eventual.fireEventually(f)
+            return fireEventually(f)
         return defer.succeed(self)
 
     def put_header(self):
@@ -49,7 +49,7 @@ class FakeBucketReaderWriterProxy:
     def put_block(self, segmentnum, data):
         if self.mode == "lost-early":
             f = Failure(LostPeerError("I went away early"))
-            return eventual.fireEventually(f)
+            return fireEventually(f)
         def _try():
             assert not self.closed
             assert segmentnum not in self.blocks
index 33cfe35191e617c5055159d401d6a5cc7bb49cdd..e9cd0c3765b0568e50b7c6d64961f18ed36a9af7 100644 (file)
@@ -2,7 +2,7 @@ import os
 from twisted.trial import unittest
 from twisted.application import service
 
-from foolscap import Tub, eventual
+from foolscap.api import Tub, fireEventually, flushEventualQueue
 from foolscap.logging import log
 
 from allmydata.storage.server import si_b2a
@@ -70,19 +70,19 @@ class FakeClient(service.MultiService):
         return []
 
 def flush_but_dont_ignore(res):
-    d = eventual.flushEventualQueue()
+    d = flushEventualQueue()
     def _done(ignored):
         return res
     d.addCallback(_done)
     return d
 
 def wait_a_few_turns(ignored=None):
-    d = eventual.fireEventually()
-    d.addCallback(eventual.fireEventually)
-    d.addCallback(eventual.fireEventually)
-    d.addCallback(eventual.fireEventually)
-    d.addCallback(eventual.fireEventually)
-    d.addCallback(eventual.fireEventually)
+    d = fireEventually()
+    d.addCallback(fireEventually)
+    d.addCallback(fireEventually)
+    d.addCallback(fireEventually)
+    d.addCallback(fireEventually)
+    d.addCallback(fireEventually)
     return d
 
 def upload_data(uploader, data, convergence):
@@ -110,7 +110,7 @@ class AssistedUpload(unittest.TestCase):
 
     def tearDown(self):
         d = self.s.stopService()
-        d.addCallback(eventual.fireEventually)
+        d.addCallback(fireEventually)
         d.addBoth(flush_but_dont_ignore)
         return d
 
index b0e54afe414f0d7d92319ccb943a469c91c99916..6650bf2700af1f7dd523cc122ea30ad19fbfd554 100644 (file)
@@ -6,8 +6,7 @@ from twisted.trial import unittest
 from twisted.internet import defer
 from twisted.python import log
 
-from foolscap import Tub, Referenceable
-from foolscap.eventual import fireEventually, flushEventualQueue
+from foolscap.api import Tub, Referenceable, fireEventually, flushEventualQueue
 from twisted.application import service
 from allmydata.interfaces import InsufficientVersionError
 from allmydata.introducer.client import IntroducerClient
index 11b8f7dec4264d1ae674e83b5f05502e350e9a21..34282b58b8174d8ae034edbf123e27760ae9ebde 100644 (file)
@@ -3,14 +3,14 @@ import os
 from twisted.trial import unittest
 from twisted.application import service
 
-from foolscap import Tub, eventual
+from foolscap.api import Tub, fireEventually, flushEventualQueue
 
 from allmydata import key_generator
 from allmydata.util import pollmixin
 from pycryptopp.publickey import rsa
 
 def flush_but_dont_ignore(res):
-    d = eventual.flushEventualQueue()
+    d = flushEventualQueue()
     def _done(ignored):
         return res
     d.addCallback(_done)
@@ -25,11 +25,11 @@ class KeyGenService(unittest.TestCase, pollmixin.PollMixin):
         t.setServiceParent(self.parent)
         t.listenOn("tcp:0")
         t.setLocationAutomatically()
-        return eventual.fireEventually()
+        return fireEventually()
 
     def tearDown(self):
         d = self.parent.stopService()
-        d.addCallback(eventual.fireEventually)
+        d.addCallback(fireEventually)
         d.addBoth(flush_but_dont_ignore)
         return d
 
@@ -50,7 +50,7 @@ class KeyGenService(unittest.TestCase, pollmixin.PollMixin):
             return len(kgs.key_generator.keypool) == kgs.key_generator.pool_size
 
         # first wait for key gen pool to fill up
-        d = eventual.fireEventually()
+        d = fireEventually()
         d.addCallback(p, 'waiting for pool to fill up')
         d.addCallback(lambda junk: self.poll(keypool_full))
 
index 16b632790d29ac0ecef03a6a3f6c8d8e3ab8dfe6..4810ee94ac728153405c4926db0dc94935cdc0b5 100644 (file)
@@ -15,7 +15,7 @@ from allmydata.interfaces import IURI, IMutableFileURI, IUploadable, \
      FileTooLargeError, NotEnoughSharesError, IRepairResults
 from allmydata.monitor import Monitor
 from allmydata.test.common import ShouldFailMixin
-from foolscap.eventual import eventually, fireEventually
+from foolscap.api import eventually, fireEventually
 from foolscap.logging import log
 import sha
 
index ef9b4510eba72df47e308c9694ecd1c7dbf4ca96..fb6be27a03a0cae63e56ee5b72335c4cc63d5b0d 100644 (file)
@@ -4,7 +4,7 @@ from twisted.trial import unittest
 from twisted.internet import defer
 from twisted.python import log
 
-from foolscap.eventual import flushEventualQueue
+from foolscap.api import flushEventualQueue
 from twisted.application import service
 from allmydata.node import Node, formatTimeTahoeStyle
 from allmydata.util import fileutil
index d062426bc904ef20219931a7024ffd02b5ce1c64..1caca2679cea80e9b89538c25c39498cf9e14fec 100644 (file)
@@ -5,7 +5,7 @@ from twisted.trial import unittest
 
 from twisted.internet import defer
 from twisted.application import service
-from foolscap import eventual
+from foolscap.api import fireEventually
 import itertools
 from allmydata import interfaces
 from allmydata.util import fileutil, hashutil, base32, pollmixin, time_format
@@ -1391,7 +1391,7 @@ class BucketCounter(unittest.TestCase, pollmixin.PollMixin):
         # cpu_slice=0 will force it to yield right after it processes the
         # first prefix
 
-        d = eventual.fireEventually()
+        d = fireEventually()
         def _check(ignored):
             # are we really right after the first prefix?
             state = ss.bucket_counter.get_state()
@@ -1428,7 +1428,7 @@ class BucketCounter(unittest.TestCase, pollmixin.PollMixin):
         ss.bucket_counter.cpu_slice = 0
         ss.setServiceParent(self.s)
 
-        d = eventual.fireEventually()
+        d = fireEventually()
 
         def _after_first_prefix(ignored):
             ss.bucket_counter.cpu_slice = 100.0 # finish as fast as possible
@@ -1613,7 +1613,7 @@ class LeaseCrawler(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin):
 
         DAY = 24*60*60
 
-        d = eventual.fireEventually()
+        d = fireEventually()
 
         # now examine the state right after the first bucket has been
         # processed.
@@ -1813,7 +1813,7 @@ class LeaseCrawler(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin):
 
         ss.setServiceParent(self.s)
 
-        d = eventual.fireEventually()
+        d = fireEventually()
         # examine the state right after the first bucket has been processed
         def _after_first_bucket(ignored):
             p = lc.get_progress()
@@ -1954,7 +1954,7 @@ class LeaseCrawler(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin):
 
         ss.setServiceParent(self.s)
 
-        d = eventual.fireEventually()
+        d = fireEventually()
         # examine the state right after the first bucket has been processed
         def _after_first_bucket(ignored):
             p = lc.get_progress()
@@ -2220,7 +2220,7 @@ class LeaseCrawler(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin):
 
         ss.setServiceParent(self.s)
 
-        d = eventual.fireEventually()
+        d = fireEventually()
         def _check(ignored):
             # this should fire after the first bucket is complete, but before
             # the first prefix is complete, so the progress-measurer won't
@@ -2338,7 +2338,7 @@ class LeaseCrawler(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin):
 
         ss.setServiceParent(self.s)
 
-        d = eventual.fireEventually()
+        d = fireEventually()
 
         # now examine the state right after the first bucket has been
         # processed.
index f66c4e4cb478abfc33e3a334fdcfcc20943a2e17..c1c9b08a24c58495ed436fc962303b1e438db734 100644 (file)
@@ -20,7 +20,7 @@ from allmydata.interfaces import IDirectoryNode, IFileNode, IFileURI, \
 from allmydata.monitor import Monitor
 from allmydata.mutable.common import NotMutableError
 from allmydata.mutable import layout as mutable_layout
-from foolscap import DeadReferenceError
+from foolscap.api import DeadReferenceError
 from twisted.python.failure import Failure
 from twisted.web.client import getPage
 from twisted.web.error import Error
index a0bc7984fbe94f01b4002d9a4e4fd89eb4986860..845f412d4716937498b5954baca3b6993a70485e 100644 (file)
@@ -5,7 +5,7 @@ from twisted.trial import unittest
 from twisted.python.failure import Failure
 from twisted.python import log
 from twisted.internet import defer
-from foolscap import eventual
+from foolscap.api import fireEventually
 
 import allmydata # for __full_version__
 from allmydata import uri, monitor
@@ -97,7 +97,7 @@ class FakeStorageServer:
         def _call():
             meth = getattr(self, methname)
             return meth(*args, **kwargs)
-        d = eventual.fireEventually()
+        d = fireEventually()
         d.addCallback(lambda res: _call())
         return d
 
@@ -128,7 +128,7 @@ class FakeBucketWriter:
         def _call():
             meth = getattr(self, "remote_" + methname)
             return meth(*args, **kwargs)
-        d = eventual.fireEventually()
+        d = fireEventually()
         d.addCallback(lambda res: _call())
         return d
 
index 241c1eb86d3f0522de144a6a2000d466ebb54fc4..7ba27742c7cfbfb53d9666e2d4b22abdd7a64547 100644 (file)
@@ -1,6 +1,6 @@
 
 from twisted.internet import defer
-from foolscap.eventual import eventually
+from foolscap.api import eventually
 
 class ConcurrencyLimiter:
     """I implement a basic concurrency limiter. Add work to it in the form of
index ca29f8f3c0863267623df05c90eb9c2de662f449..13e4b511a03c5d8fa3fa8eaa232c68dc57864da9 100644 (file)
@@ -1,7 +1,7 @@
 # -*- test-case-name: allmydata.test.test_observer -*-
 
 from twisted.internet import defer
-from foolscap.eventual import eventually
+from foolscap.api import eventually
 
 """The idiom we use is for the observed object to offer a method named
 'when_something', which returns a deferred.  That deferred will be fired when
index 1c037cc45d2a1624b11c63ff5e2d2ac75f7b00da..99e10774467a8163d4b3eeada6fa928248c331d7 100644 (file)
@@ -1,6 +1,6 @@
 import exceptions
 
-from foolscap.tokens import Violation
+from foolscap.api import Violation
 
 class ServerFailure(exceptions.Exception):
     # If the server returns a Failure instead of the normal response to a
index 8da7a33fe2f8918fc07335459568391c81720459..42dd271a08b042003ac56a53380b3f61ddfaff71 100644 (file)
@@ -10,7 +10,7 @@ from twisted.web import http, html
 from nevow import url, rend, inevow, tags as T
 from nevow.inevow import IRequest
 
-from foolscap.eventual import fireEventually
+from foolscap.api import fireEventually
 
 from allmydata.util import base32, time_format
 from allmydata.uri import from_string_dirnode
index 3210fda156297297a9ed128cef1bfad101a82aca..14b01266121b24e6c0f7398b205ae7f4b5553e82 100644 (file)
@@ -1,7 +1,7 @@
 
 import time
 from nevow import rend, inevow
-from foolscap.referenceable import SturdyRef
+from foolscap.api import SturdyRef
 from twisted.internet import address
 import allmydata
 import simplejson