From: Daira Hopwood Date: Fri, 17 Apr 2015 20:39:01 +0000 (+0100) Subject: Unconditionally use HTTPConnectionPool, and depend on a Twisted that provides it. X-Git-Url: https://git.rkrishnan.org/pf/content/en/footer/access.html?a=commitdiff_plain;h=197af4606c1237c145bc22c041c30b5b7e510b60;p=tahoe-lafs%2Ftahoe-lafs.git Unconditionally use HTTPConnectionPool, and depend on a Twisted that provides it. (The dependency change only affects Windows.) Signed-off-by: Daira Hopwood --- diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index 06e3d067..bc9dcaf5 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -108,6 +108,8 @@ if not hasattr(sys, 'frozen'): # Splitting the dependencies for Windows and non-Windows helps to fix # and # . +# However, this is only a short-term fix for Windows because it forces +# us to depend on a single, quite old, version of Twisted. if sys.platform == "win32": install_requires += [ @@ -115,16 +117,17 @@ if sys.platform == "win32": # dependency on pywin32. # * We also need Twisted 10.1 for the FTP frontend in order for # Twisted's FTP server to support asynchronous close. - # * When the cloud backend lands, it will depend on Twisted 10.2.0 - # which includes the fix to . + # * Twisted 10.2.0 includes the fix to . # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server # rekeying bug # * The FTP frontend depends on Twisted >=11.1.0 for # filepath.Permissions + # * The cloud backend depends on Twisted 12.1.0 for HTTPConnectionPool. + # * IPv6 support will also depend on Twisted 12.1.0. # * We don't want Twisted >= 12.2.0 to avoid a dependency of its endpoints # code on pywin32. # - "Twisted >= 11.1.0, <= 12.1.0", + "Twisted == 12.1.0", # * We need Nevow >= 0.9.33 to avoid a bug in Nevow's setup.py # which imported twisted at setup time. diff --git a/src/allmydata/storage/backends/cloud/cloud_common.py b/src/allmydata/storage/backends/cloud/cloud_common.py index 6cacbaf6..258caf7a 100644 --- a/src/allmydata/storage/backends/cloud/cloud_common.py +++ b/src/allmydata/storage/backends/cloud/cloud_common.py @@ -6,12 +6,7 @@ import urllib from twisted.internet import defer, reactor, task from twisted.python.failure import Failure from twisted.web.error import Error -from twisted.web.client import FileBodyProducer, ResponseDone, Agent -try: - from twisted.web.client import HTTPConnectionPool -except ImportError: - # Old version of Twisted - HTTPConnectionPool = None +from twisted.web.client import FileBodyProducer, ResponseDone, Agent, HTTPConnectionPool from twisted.web.http_headers import Headers from twisted.internet.protocol import Protocol @@ -708,10 +703,7 @@ class CommonContainerMixin(HTTPClientMixin, ContainerRetryMixin): def __init__(self, container_name, override_reactor=None): self._container_name = container_name self._reactor = override_reactor or reactor - if HTTPConnectionPool: - self._agent = Agent(self._reactor, pool=HTTPConnectionPool(self._reactor)) - else: - self._agent = Agent(self._reactor) + self._agent = Agent(self._reactor, pool=HTTPConnectionPool(self._reactor)) self.ServiceError = CloudServiceError def __repr__(self):