From 18c5fda6700ad6b5bf71acc64dfa1e27859b75e8 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Mon, 15 Apr 2013 20:22:18 +0100 Subject: [PATCH] Unconditionally use HTTPConnectionPool, and depend on a Twisted that provides it. Signed-off-by: Daira Hopwood --- src/allmydata/_auto_deps.py | 4 +++- src/allmydata/storage/backends/cloud/cloud_common.py | 12 ++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index 61ad3aef..ab3d948f 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -28,8 +28,10 @@ install_requires = [ # https://twistedmatrix.com/trac/ticket/411 # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server # rekeying bug http://twistedmatrix.com/trac/ticket/4395 + # * The cloud backend depends on Twisted 12.1.0 for HTTPConnectionPool. + # * IPv6 support will also depend on Twisted 12.1.0. # - "Twisted >= 11.0.0", + "Twisted >= 12.1.0", # * foolscap < 0.5.1 had a performance bug which spent O(N**2) CPU for # transferring large mutable files of size N. 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