From fb4d6784ef7bff4fa9908353e7e10b26f2cc391a Mon Sep 17 00:00:00 2001 From: Daira Hopwood <daira@jacaranda.org> Date: Fri, 17 Apr 2015 21:39:01 +0100 Subject: [PATCH] Unconditionally use HTTPConnectionPool, and depend on a Twisted that provides it. (The dependency change only affects Windows.) Signed-off-by: Daira Hopwood <daira@jacaranda.org> --- src/allmydata/_auto_deps.py | 9 ++++++--- src/allmydata/storage/backends/cloud/cloud_common.py | 12 ++---------- 2 files changed, 8 insertions(+), 13 deletions(-) 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 # <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2249> and # <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2028>. +# 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 <https://twistedmatrix.com/trac/ticket/411>. + # * Twisted 10.2.0 includes the fix to <https://twistedmatrix.com/trac/ticket/411>. # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server # rekeying bug <https://twistedmatrix.com/trac/ticket/4395> # * 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. <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2028> # - "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): -- 2.45.2