From 18c5fda6700ad6b5bf71acc64dfa1e27859b75e8 Mon Sep 17 00:00:00 2001
From: Daira Hopwood <david-sarah@jacaranda.org>
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 <david-sarah@jacaranda.org>
---
 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